![重新编译20.04 HWE内核?](https://linux22.com/image/933968/%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%9120.04%20HWE%E5%86%85%E6%A0%B8%EF%BC%9F.png)
我正在尝试重建 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
克隆仓库:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
签出分支:
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=
安装构建依赖项:
sudo apt-get build-dep linux
构建内核:
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