使用自定义版本号修补内核并将其列在 grub 中

使用自定义版本号修补内核并将其列在 grub 中

将问题更改得更具体,希望能重新开放。

在 Ubuntu 上,如何应用补丁(使用修补命令)将补丁应用到内核(这修补,让 btrfs 接受我的替换磁盘,所有事情)。我在网上找到了一些说明(Ubuntu 的 BuildYourOwnKernel),但不是我正在寻找的完整食谱。带着这个问题,我希望有人能提供一个简单的方法供所有人遵循。以下是所需要的:

  • 如何获取当前正在运行的内核的源代码。

  • 如何在其上应用补丁。

  • 如何使用我的发行版通常使用的配置来编译它。

  • 如何更改内核的版本,以便我可以安装它而无需更换当前的官方内核。如果可能的话,添加“-tmp”或一些缩写以将其与官方的区别开来。

  • 如何让 grub 识别新构建的内核并将其显示在菜单中,但默认情况下不加载它;默认情况下应该加载以前的官方内核。我想明确选择我的自定义内核。

  • 如何重新启动系统,例如重新启动时,grub 允许选择要从中启动的内核。

  • 一旦我对内核的使用完成,如何从文件系统和 grub 中删除它的所有痕迹。

答案1

您需要成为大多数/所有这些的 root 用户,所以只需使用

sudo -i

安装一些实用程序和库 -

apt-get install build-essential fakeroot kernel-package libncurses5-dev zlib1g-dev libssl-dev xz-utils

然后提取内核源代码树,对其进行修补,然后(也许)将工作配置从 /boot 复制到 /path/to/source/.config

然后配置内核

make oldconfig

或者

make menuconfig

配置完成后,然后构建它。构建命令是您附加到版本的位置 -

make-kpkg clean 
fakeroot make-kpkg --initrd --append-to-version=-MyPatchedKernel kernel_image kernel_headers

这将为您生成 2 个 deb 文件 - 一个用于内核,一个用于标头。如果您在 /usr/src/linux 中工作,那么 deb 文件将位于 /usr/src 中。使用 dpkg 安装它们,然后就可以开始了。

相关内容