给 ubuntu 22.04 编译换上最新的 5.19.2 内核(生成 deb 包)

编译打包和其他
回复
sxgpic
帖子: 74
注册时间: 2013-12-13 6:57
送出感谢: 1 次
接收感谢: 3 次

给 ubuntu 22.04 编译换上最新的 5.19.2 内核(生成 deb 包)

#1

帖子 sxgpic » 2022-08-18 18:34

主线内核 5.19.2 于今天发布,从 https://kernel.org 下载回来,配置完毕编译成 deb 包给 22.04 系统换上。

相比于 5.15.x ,新内核有一些对新机器和新硬件支持的改进,编译配置都选上,另外顺便添加了对苹果 APFS 文件系统的支持。相比于 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 的测试内核,配置上做了细节调整,比如 zswap 和 zram 都采用 zstd 压缩,其他跟旧内核一致的配置选项基本跟 ubuntu 正式版的 5.15.x 保持一致,但将 CONFIG_CONSOLE_LOGLEVEL_DEFAULT 和 CONFIG_CONSOLE_LOGLEVEL_QUIET 都调整为1,关闭讨厌的 console 信息输出,在启动时不会出现一大堆文字滚屏,看起来更美观些。新内核配置补丁,包含 deiban 目录和 debian.master 目录以及 apfs 驱动:
linux-5.19.2-ubuntu22.04.patch.zst.txt
(1.72 MiB) 下载 18 次
去掉 .txt 后缀得到 linux-5.19.2-ubuntu22.04.patch.zst ,用 zstd 解压:

代码: 全选

zstd -d linux-5.19.2-ubuntu22.04.patch.zst
https://kernel.org 下载 linux-5.19.2.tar.xz 回来:

代码: 全选

tar Jxf linux-5.19.2.tar.xz
cd linux-5.19.2
patch -p1 <../linux-5.19.2-ubuntu22.04.patch
chmod +x debian/rules
chmod +x -R debian/scripts/*
debuild
如果提示缺什么包就用 apt-get install --no-install-recommends 临时补上,记录下包名编译结束后再 apt-get autoremove --purge 卸载掉。编译过程中有两三个无关紧要的询问,直接回车过,编译完得到以下几个包:

linux-buildinfo-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-cloud-tools-common-5.19.2_5.19.2-08.18_all.deb
linux-doc_5.19.2-08.18_all.deb
linux-headers-5.19.2-08_5.19.2-08.18_all.deb
linux-headers-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-image-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-libc-dev_5.19.2-08.18_amd64.deb
linux-modules-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-source-5.19.2_5.19.2-08.18_all.deb
linux-tools-common-5.19.2_5.19.2-08.18_all.deb
linux-tools-host-5.19.2_5.19.2-08.18_all.deb

安装以下五个即可:
linux-image-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-modules-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-headers-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-headers-5.19.2-08-generic_5.19.2-08.18_amd64.deb
linux-libc-dev_5.19.2-08.18_amd64.deb

注意 linux-image-5.19.2-08-generic_5.19.2-08.18_amd64.deb 和 linux-modules-5.19.2-08-generic_5.19.2-08.18_amd64.deb 相互依赖,得手动同时安装,执行两次

代码: 全选

dpkg -i linux-image-5.19.2-08-generic_5.19.2-08.18_amd64.deb linux-modules-5.19.2-08-generic_5.19.2-08.18_amd64.deb
然后再安装其他三个包:

代码: 全选

dpkg -i linux-headers-5.19.2-08-generic_5.19.2-08.18_amd64.deb linux-headers-5.19.2-08-generic_5.19.2-08.18_amd64.deb linux-libc-dev_5.19.2-08.18_amd64.deb
另外如果想要更新几个 meta 包到最新版,下载这个
linux-meta-5.19.2.08.18.tar.xz
(17.33 KiB) 下载 18 次
在安装好以上新内核的 deb 包后,解压进入 linux-meta-5.19.2.08.18 目录,执行 debuild 生成一大堆 deb 包,安装以下三个:
linux-image-generic-hwe-22.04_5.19.2.08.18_amd64.deb
linux-headers-generic-hwe-22.04_5.19.2.08.18_amd64.deb
linux-generic-hwe-22.04_5.19.2.08.18_amd64.deb

重启用新内核引导,一切OK,卸载掉所有 5.15.x 相关的包。
注意博通无线网卡驱动 broadcom-sta-dkms、虚拟摄像头驱动 v4l2loopback-dkms 都得手动升级到最新版才能支持 5.19 内核,在 ubuntu 仓库里下载 22.10 的包在 22.04 里装上即可。broadcom-sta-dkms 必须要更新到 6.30.223.271-20 或以上,v4l2loopback-dkms 必须要更新到 0.12.7-2ubuntu1 或以上,下载连接:

broadcom-sta-dkms_6.30.223.271-20_all.deb
v4l2loopback-dkms_0.12.7-2ubuntu1_all.deb
上次由 sxgpic 在 2022-09-10 14:46,总共编辑 1 次。
sxgpic
帖子: 74
注册时间: 2013-12-13 6:57
送出感谢: 1 次
接收感谢: 3 次

Re: 给 ubuntu 22.04 编译换上最新的 5.19.2 内核(生成 deb 包)

#2

帖子 sxgpic » 2022-09-02 16:06

主线内核小版本更新很快,但变化不大,主要是bug修复,对于这些新的小版本,直接把 linux-5.19.2-ubuntu22.04.patch 里的小版本号替换掉就可以套用,例如 5.19.x :

代码: 全选

mv linux-5.19.2-ubuntu22.04.patch linux-5.19.x-ubuntu22.04.patch
sed -i 's/5.19.2-08.18/5.19.x-xx.xx/g' linux-5.19.x-ubuntu22.04.patch
编译时可能会有少数几个新的配置项询问,手动选一下。

更新:
linux-5.19.8-debian.patch.zst.txt
(1.72 MiB) 下载 8 次
回复