|
|
2026年4月重新编辑。
前言
编译内核占用磁盘空间较大,建议系统安装在独立分区。反之,个人保存文件需要4G以上,实际编译内核、模块容量约2.2G。
一、准备工作
1.更换系统内核
本坛V20版块发布的内核文件未保留/boot/config配置文件。因此,在lucky8k-20母版fossapup64-9.5.iso内核下进行编译。
链接:http://distro.ibiblio.org/puppyl ... /fossapup64-9.5.iso
系统更换内核略过......
2.内核源代码官网:https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/(下以linux-5.11.tar.xz为例)
网址: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
或者终端下载
[root@veket:~]$Wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
3.把下载的内核源代码文件移到/usr/src目录
[root@veket:~]$cd /root/下载/(假设linux-5.11.tar.xz 在该文件夹内)
[root@veket:~]$mv linux-5.11.tar.xz /usr/src
4.解压linux-5.11.tar.xz
[root@veket:~]$cd /usr/src(切换到该目录下)
[root@veket:~]$xz -d linux-5.11.tar.xz && tar xf linux-5.11.tar
5.内核补丁文件
(aufs5-standalone-aufs5.x-rcN.zip)。注意:必须与内核版本号对应,不要弄混淆了!
网址:https://github.com/sfjro/aufs5-standalone/tree/aufs5.x-rcN
链接:https://codeload.github.com/sfjr ... one/zip/aufs5.x-rcN
6.给内核源代码打补丁
为了便于操作,在/usr/src下新建一个“ patch-5.11”文件夹(可以任意文件夹名),将aufs5-standalone-aufs5.x-rcN.zip解压后。其中,将“ aufs5-base.patch、aufs5-kbuild.patch、aufs5-mmap.patch” 三个文件剪切到“ patch-5.11”文件夹内,另外的 “ Documentation、fs、include” 三个文件夹剪切到/usr/src/linux-5.11/,剩下的其他文件就不要啦!
注意:必须给“ patch-5.11”文件夹内的三个补丁分别赋予权限。
准备打补丁!此时,还有一步关键环节,必须挂载软件编译库devx-x86_64_lucky8k_20.10.sfs,切记!
链接:https://cloud.189.cn/t/nayU7nzAB3Mz
开始打补丁:
[root@veket:~]$cd /usr/src/linux-5.11/
[root@veket:~]$for i in `ls ../patch-5.11/`;do patch -p1 < ../patch-5.11/"$i";done
更健壮命令:
[root@veket:~]$for i in ../patch-5.11/*; do
[ -f "$i" ] && patch -p1 < "$i"
done
打补丁的基本步骤
确认当前内核版本
使用命令 uname -r 查看当前运行的内核版本,确保目标补丁与之兼容。
获取补丁文件
补丁文件通常由官方发布,例如从 kernel.org 下载对应版本的补丁,如 patch-5.11.xz。
解压补丁文件(如需)
若补丁为 .xz 或 .gz 压缩格式,先解压:
bash
unxz patch-5.11.xz
# 或
gunzip patch-5.11.gz
进入内核源码目录
确保当前位于 Linux 内核源码的根目录(如 linux-5.11/)。
应用补丁
使用 patch 命令应用补丁。推荐使用 -p1 参数,以正确剥离补丁中的路径前缀:
bash
patch -p1 < /path/to/patch-5.11
验证补丁是否成功
补丁应用后,若无错误提示,通常表示成功。若失败,会生成 .rej 文件,需检查路径或补丁内容是否匹配。
二、配置编译文件
这里单列写一段,说明配置编译文件非常重要。是的,用config-5.4.53的配置文件!
[root@veket:~]$cd /usr/src/linux-5.11/
[root@veket:~]$cp /boot/config-$(uname -r) .config
此时,隐藏文件.config就在/usr/src/linux-5.11/.config
继续......
[root@veket:~]$make menuconfig
执行make menuconfig之后会出现图形菜单框
注意:
1.光有上面的.config配置文件还不够,在图形菜单框内通过方向键↓
找到 File systems --->Miscellaneous filesystems --->下的一些选项编译进内核。
2.usbwifi网卡mt7601u驱动配置,相关配置路径为Device Drivers--->Network device support--->Wireless LAN--->MediaTek devices--->MediaTek MT7601U (USB) support,配置7601模块需找到Networking support--->Wireless --->下的一些选项编译进内核。
三、开始编译
[root@veket:~]$make bzImage -j(n )编译内核
[root@veket:~]$make modules -j(n )编译模板
或者[root@veket:~]$make -jn bzImage modules
以上这两步非常耗费时间, -jn指电脑线程,即-j2-8、线程越多,编译的时间越短,我编译大约用时130分钟。
[root@veket:~]$make modules_install
安装内核,/lib/modules/5.11.0/生成内核模块
[root@veket:~]$make install
/boot/下生成vmlinuz、System.map
四、内核打包
解包zdrv_veket_20.10.sfs,用/lib/modules/5.11.0/替换,并修改/etc/modules/和/boot/下的文件版本号后打包。
ok 大功告成!
编译真不易,且用且珍惜!
后记:
从国外论坛找到了内核编译的脚本
6.12.41
6.15.1
|
|