veket官方网站论坛

veketx

 找回密码
 要注册
搜索
查看: 90900|回复: 17

微器人-26系统编译内核深探

[复制链接]
发表于 2021-2-20 07:48 | 显示全部楼层 |阅读模式
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
发表于 2021-2-20 09:03 | 显示全部楼层
有很多无线网卡的补丁要集成进去的,例如博通的无线网卡等等。
发表于 2021-2-20 09:03 | 显示全部楼层
为什么不直接最新的5.10.16呀?
 楼主| 发表于 2021-2-20 09:45 | 显示全部楼层
lin131571 发表于 2021-2-20 09:03
为什么不直接最新的5.10.16呀?

网卡类在固件内集成都很全,现最新内核是5.11.0 。
发表于 2021-2-20 10:09 | 显示全部楼层
自由飞翔 发表于 2021-2-20 09:45
网卡类在固件内集成都很全,现最新内核是5.11.0 。

这个都未加上不适合通用,你搜索下就清楚了,无线网卡驱动部分要加进去编译不然都没有。
例如博通的,你和系统集成的对比下就清楚了。
台式机有线网则基本都有。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛,veketx官方网站论坛,微器人 ( 粤ICP备 11052856 )

GMT+8, 2026-4-17 12:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表