重新编译20.04 HWE内核?

重新编译20.04 HWE内核?

我正在尝试重建 20.04 HWE 内核 5.8,因为我需要更改一个配置选项。我正在尝试猜测如何解决此问题,因为有关在 Ubuntu 上重建内核的大部分信息似乎已经过时了。

我做什么:

apt source linux-image-generic-hwe-20.04
cd linux-meta-hwe-5.8-5.8.0.40.45~20.04.25/
fakeroot debian/rules clean
fakeroot debian/rules binary

最终失败了:

dh_gencontrol -a -- -Vkernel-version=5.8.0 -Vkernel-abi-version=5.8.0-40 -Vdkms:zfs-modules="zfs-modules (= )," -Vdkms:virtualbox-guest-modules="virtualbox-guest-modules (= 5.8.0-40)," -Vdkms:wireguard-linux-compat-modules="wireguard-modules (= 1.0.0),"
dpkg-gencontrol: warning: can't parse dependency zfs-modules (= )
dpkg-gencontrol: warning: can't parse dependency zfs-modules (= )
dpkg-gencontrol: error: error occurred while parsing Provides field: zfs-modules (= ), virtualbox-guest-modules (= 5.8.0-40), wireguard-modules (= 1.0.0),
dh_gencontrol: error: dpkg-gencontrol -plinux-image-generic-hwe-20.04 -ldebian/changelog -Tdebian/linux-image-generic-hwe-20.04.substvars -Pdebian/linux-image-generic-hwe-20.04 -UMulti-Arch -Vkernel-version=5.8.0 -Vkernel-abi-version=5.8.0-40 "-Vdkms:zfs-modules=zfs-modules (= )," "-Vdkms:virtualbox-guest-modules=virtualbox-guest-modules (= 5.8.0-40)," "-Vdkms:wireguard-linux-compat-modules=wireguard-modules (= 1.0.0)," returned exit code 255
dh_gencontrol: error: Aborting due to earlier error
make: *** [debian/rules:101: binary-arch] Error 2

我不关心 vbox 或 ZFS,所以我很乐意以某种方式禁用它们,而 wireguard 是 5.8 的一部分。

我已经成功重建了标准 5.4 Ubuntu 内核,所以这是一个特定的 HWE 问题。

谢谢你的帮助!

答案1

  1. 克隆仓库:

     git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
    
  2. 签出分支:

     cd focal
     git checkout origin/hwe-5.8
    

如果要禁用 nvidia 驱动程序,请添加此补丁:

diff --git a/debian/rules b/debian/rules
index 8c3c71a..8742713 100755
--- a/debian/rules
+++ b/debian/rules
@@ -100,6 +100,8 @@ ifeq ($(do_mainline_build),true)
        skipretpoline=true
 endif
 
+do_dkms_nvidia=false
+
 # Disable tools build and packaging if do_tools != true
 ifneq ($(do_tools),true)
        do_linux_tools=
  1. 安装构建依赖项:

     sudo apt-get build-dep linux
    
  2. 构建内核:

     fakeroot debian/rules clean
     fakeroot debian/rules binary-headers binary-generic
    

答案2

如果你想在 Ubuntu 20.04 上编译 Linux 5.8 内核,需要下载的包源是linux-image-unsigned-$(uname -r)

跑步

apt source linux-image-unsigned-$(uname -r)

然后编译内核。您将在linux-hwe-5.8-5.8.0目录中找到源代码。

该命令将下载当前使用的内核的源代码。如果你正在使用其他内核,例如 5.4,你可以手动添加版本,例如

apt source linux-image-unsigned-5.8.0-40-generic

相关内容