LWN网站patch使用方法
如果是从LWN网站下载内核:
邮件格式的patch,直接把所有diff的部分复制下来保存在一个文档里,文档不需要有后缀,就是所谓的patch包了。
给Linux内核打patch
首先下载对应的Linux内核源码。5.x版本的内核源码下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/
首页地址:
https://www.kernel.org/
当然这个网站上也有官方版本的patch包可以下载。
解压缩后进入源码的最上级目录,将刚才准备好的patch包放在最上级目录里。输入:
patch -p1 < ./[PatchFileName]
其中[PatchFileName]为准备好的patch包文件名。如果有多个patch包就依次打过去。这样patch就打好了。下一步进行内核编译
编译内核
这部分参考资料来自LightningStar的一篇文章,我只是简单总结一下:
环境准备
安装必备的环境:
sudo apt update && sudo apt upgrade
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
配置内核
直接拷贝当前内核的配置文件:
cp /boot/config-$(uname -r) .config
可以使用menuconfig工具进行配置:
make menuconfig
如果不知道怎么配置就直接退出保存就行。
正式编译
依然是在内核源码的最高级目录下:
make -j8
其中 -j8 中的数字 8 指并发执行数量,以加快编译速度。可以自行选择,不要多于CPU核数。
这一步需要很久。
安装内核
sudo make modules_install
sudo make install
启用内核作为引导:
sudo update-initramfs -c -k 5.10.0
其中后面的数字5.10.0是刚才编译的版本号,刚才安装内核的时候也有输出信息显示。
随后更新grub:
sudo update-grub
重启即可进入新安装的内核。
启动时手动选择内核
如果启动时没有手动选择内核版本的界面则需要做一些配置修改:
sudo gedit /etc/default/grub
有几行需要修改:
- GRUB_TIMEOUT_STYLE=hidden
将该行注释掉 - GRUB_TIMEOUT=0
将0改为3,选择等待时间而已,可以自己看着设置 - GRUB_CMDLINE_LINUX_DEFAULT=“xxx”
这里的xxx每个人可能不一样,总之把后面的改成“text”
保存关闭后更新grub:
sudo update-grub
重启即可看到选择内核进入的界面。