在 Ubuntu Jammy 上构建自定义内核

在 Ubuntu Jammy 上构建自定义内核

昨天 Reddit 上有人向我展示了这个

https://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git/commit/?h=next&id=9a966517a83090ee3e26e9a93a92523e2358c5b3

看起来我应该能够更改一行代码,然后我就可以实现我想要的,但这需要重建内核

我已经很长一段时间没有构建自定义内核了,也从未在基于 deb 的发行版上构建过

我在这里遵循这些说明

https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

我使用apt下载了内核,更改了thunderbolt文件并添加了代码行

我可以“更快地构建” fakeroot debian/rules binary-headers binary-generic binary-perarch

并且构建失败,错误是

Debug: /home/nick/linux-oem-6.5-6.5.0/debian/stamps/stamp-install-generic kernel_file arch/x86/boot/bzImage kernfile arch/x86/boot/bzImage install_file vmlinuz instfile vmlinuz
dh_testdir
dh_prep -plinux-image-unsigned-6.5.0-1019-generic
dh_prep: error: Requested unknown package linux-image-unsigned-6.5.0-1019-generic via -p/--package, expected one of: linux-oem-6.5-headers-6.5.0-1019 linux-oem-6.5-tools-6.5.0-1019 linux-oem-6.5-tools-host linux-image-unsigned-6.5.0-1019-oem linux-modules-6.5.0-1019-oem linux-modules-extra-6.5.0-1019-oem linux-headers-6.5.0-1019-oem linux-oem-6.5-lib-rust-6.5.0-1019-oem linux-image-unsigned-6.5.0-1019-oem-dbgsym linux-tools-6.5.0-1019-oem linux-cloud-tools-6.5.0-1019-oem linux-buildinfo-6.5.0-1019-oem linux-modules-ipu6-6.5.0-1019-oem linux-modules-ivsc-6.5.0-1019-oem linux-modules-iwlwifi-6.5.0-1019-oem linux-modules-usbio-6.5.0-1019-oem
dh_prep: error: unknown option or error during option parsing; aborting
make: *** [debian/rules.d/2-binary-arch.mk:132: /home/nick/linux-oem-6.5-6.5.0/debian/stamps/stamp-install-generic] Error 255

如果有更简单的方法来实现这一目标,或者有人可以帮助我,我将不胜感激。

即使我可以安装另一个发行版,它将使用最新的补丁或者更容易进行内核更改,我也愿意这样做。我只是暂时需要这个来进行 Thunderbolt NVM 更改。

答案1

首先安装主线ppa

sudo apt-add-repository -y ppa:cappelikan/ppa

sudo apt update

sudo apt install mainline

然后打开它,选择包含补丁的Linux内核版本,然后单击安装。然后重新启动


如果您想要一个具有最新内核的发行版,您应该考虑滚动发行版发行版,滚动发行版发行版是这样的发行版:一旦内核有更新可用,您就可以使用它,并且它在本机存储库中是最重要的常见的发行版提供的是基于开放SUSE Debian 不稳定(也称为“Sid”),如果您使用 ubuntu 后想要一些熟悉的东西,我会推荐 debian stable,因为它与 ubuntu 具有相同的架构,两者都基于 debian 并使用 apt,因此您可以轻松迁移到debian 不稳定,如果你喜欢冒险,你可以去并尝试了解 arch 及其软件包

答案2

这些说明使用“binary-generic”字符串,但如果您正在构建 oem 内核,则需要将其更改为 binary-oem,或者您尝试构建的任何其他 Ubuntu 内核。

相关内容