veket官方网站论坛

自由飞翔 发表于 2021-2-20 07:48

lucky8k-20系统下编译内核初探

前言
编译内核占用磁盘空间较大,建议系统安装在独立分区。反之,个人保存文件需要4G以上,实际编译内核、模块容量约2.2G。
一、准备工作
1.更换系统内核
本坛V20版块发布的内核文件未保留/boot/config配置文件。因此,在lucky8k-20母版fossapup64-9.5.iso内核下进行编译。
链接:http://distro.ibiblio.org/puppylinux/puppy-fossa/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
或者终端下载
$Wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
3.把下载的内核源代码文件移到/usr/src目录
$cd /root/下载/(假设linux-5.11.tar.xz 在该文件夹内)
$mv linux-5.11.tar.xz /usr/src
4.解压linux-5.11.tar.xz
$cd /usr/src(切换到该目录下)
$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/sfjro/aufs5-standalone/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
开始打补丁:
$cd /usr/src/linux-5.11/
$for i in `ls ../patch-5.11/`;do patch -p1 < ../patch-5.11/"$i";done
二、配置编译文件
这里单列写一段,说明配置编译文件非常重要。是的,用config-5.4.53的配置文件!
$cd /usr/src/linux-5.11/
$cp /boot/config-$(uname -r) .config
此时,隐藏文件.config就在/usr/src/linux-5.11/.config
继续......
$make menuconfig
执行make menuconfig之后会出现图形菜单框
注意:
1.光有上面的.config配置文件还不够,在图形菜单框内通过方向键↓
找到 File systems--->Miscellaneous filesystems--->下的一些选项编译进内核。
**** Hidden Message *****
2.usbwifi网卡mt7601u驱动配置,相关配置路径为Device Drivers--->Network device support--->Wireless LAN--->MediaTek devices--->MediaTek MT7601U (USB) support,配置7601模块需找到Networking support--->Wireless--->下的一些选项编译进内核。**** Hidden Message *****
三、开始编译
$make bzImage -j(n )编译内核
$make modules -j(n )编译模板
或者$make -jn bzImage modules
以上这两步非常耗费时间, -jn指电脑线程,即-j2-8、线程越多,编译的时间越短,我编译大约用时130分钟。
$make modules_install
安装内核,/lib/modules/5.11.0/生成内核模块
$make install
/boot/下生成vmlinuz、System.map
四、内核打包
解包zdrv_veket_20.10.sfs,用/lib/modules/5.11.0/替换,并修改/etc/modules/和/boot/下的文件版本号后打包。
ok 大功告成!
附:5.11.0内核
https://cloud.189.cn/t/fmA7fiQ3Abue
5.11.2内核(稳定版)
https://cloud.189.cn/t/UrYRV3AfQJRr
5.10.21内核(长期支持版)
链接: https://pan.baidu.com/s/1levRW84X73N1g8TdzA8p9g 提取码: z9ix
5.11.22内核
https://cloud.189.cn/t/jEBRRzIVjUra
5.12.5内核
链接:https://cloud.189.cn/t/BRNBvyrqYZzi
5.13.4内核
链接:https://cloud.189.cn/web/share?code=eENRRr7BFFri
编译真不易,且用且珍惜!

后记:
从国外论坛找到了内核编译的脚本
一、编译脚本
1.K-5.10.2
http://distro.ibiblio.org/easyos/source/kernel/5.10.x/5.10.2/build-kernel.tar.gz
2.K-5.10.4
http://distro.ibiblio.org/easyos/source/kernel/5.10.x/5.10.4-rpi4/build-kernel.tar.gz
3.K-5.15.74
http://distro.ibiblio.org/easyos/source/kernel/5.15.x/5.15.74-20221018/build-kernel.tar.gz
二、脚本区别
K-5.10.2版是通过1kernel.sh、1recompile.sh、2modules.sh、3package.sh脚本依次递进编译;k-5.10.4版整合为compile-rpi4.sh脚本一键编译。
三、编译技巧(以K-5.11为例)
将build-kernel.tar.gz和linux-5.11.tar.xz文件解压后,均放到/usr/src/文件夹内。
$cd /usr/src/
$./1kernel.sh
$./1recompile.sh
$./2modules.sh
$./3package.sh
或者
$cd /usr/src/
$./compile-rpi4.sh
按照终端提示操作即可。
注意:
patch-5.11.bz2和aufs5补丁须对应内核版本号,以及重新制成相同压缩包后缀名。
aufs-allow-sfs.patch.gz
cap_sys_mount-1.patch.gz
cap_sys_mount-2.patch.gz
这三外补丁可以不用更换。
四、编译比较
内核编译实操反映,用脚本编译内核耗时很长,编译新内核还需修改脚本部分内容,弄不好易出错。因此,建议用本人探索的方法编译内核更好。

lin131571 发表于 2021-2-20 09:03

有很多无线网卡的补丁要集成进去的,例如博通的无线网卡等等。

lin131571 发表于 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 。

lin131571 发表于 2021-2-20 10:09

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

这个都未加上不适合通用,你搜索下就清楚了,无线网卡驱动部分要加进去编译不然都没有。
例如博通的,你和系统集成的对比下就清楚了。
台式机有线网则基本都有。
页: [1] 2 3 4
查看完整版本: lucky8k-20系统下编译内核初探