下载并修补内核源代码

下载并修补内核源代码

我想在 Ubuntu 18.04 中编译并安装内核 4.20.17。因此我创建了一个名为 /home/build/kernel 的目录并执行以下命令:

git clone --depth 1 --single-branch --branch v4.20 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.20.17

这创建了/home/build/kernel/v4.20.17:

arch   COPYING  debian         drivers   include  Kbuild   lib          Makefile  README   security  usr
block  CREDITS  debian.master  firmware  init     Kconfig  LICENSES     mm        samples  sound     virt
certs  crypto   Documentation  fs        ipc      kernel   MAINTAINERS  net       scripts  tools

然后我创建了 v4.20.17-patch 并下载了补丁:

0001-base-packaging.patch                                        0004-debian-changelog.patch
0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch  0005-configs-based-on-Ubuntu-4.20.0-2.3.patch
0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch

为了应用补丁,我做了以下操作:

/home/build/kernel/v4.20.17
patch -p1 < ../v4.20.17-patch/0001-base-packaging.patch

patching file debian.master/abi/5.0.0-7.8/abiname
patching file debian.master/abi/5.0.0-7.8/amd64/generic
patching file debian.master/abi/5.0.0-7.8/amd64/generic.compiler
etc....

但是,这会创建名为 debian.master 和 debian 的新目录:

arch   COPYING  debian         drivers   include  Kbuild   lib          Makefile  README   security  usr
block  CREDITS  debian.master  firmware  init     Kconfig  LICENSES     mm        samples  sound     virt
certs  crypto   Documentation  fs        ipc      kernel   MAINTAINERS  net       scripts  tools

这是应该的样子吗?

很遗憾,https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.17/没有任何说明。但我想知道,新的 debian 和 debian.master 目录有什么用处?

谢谢!

答案1

事实证明一切都很好。我只需要继续使用剩下的 4 个补丁,就会发现它不仅会创建 debian 和 debian.master 目录,还会修补一些现有文件。https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel没有介绍具体步骤,但解释了如何重建 Ubuntu 内核分发包(.deb),你也可以按照以下步骤下载并安装https://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.20.17,例如。顺便说一句,运行 debian/rules 会打开常用的配置菜单(make menuinstall),因此您也可以进行一些更改。

您还可以从 kernel.ubuntu.com 下载并安装 .deb 文件...然后将 /boot/config-4.20.17-042017-generic 复制到内核源目录中的 .config,然后按照通常的步骤“make menuconfig、make modules_install、make install”。您还可以创建一个 .deb 包,例如 make deb-pkg LOCALVERSION=-mykernel。但是,如果您想构建“Ubuntu”风格的内核,请使用上述 Wiki 文档中提到的内核构建过程。

相关内容