Linux内核是 操作系统的核心程序,负责直接管理 CPU、内存、设备驱动、文件系统和进程调度,并为用户态程序提供系统调用接口。
内核配置是一份决定Linux 内核“哪些功能编进内核、哪些做成模块、哪些直接禁用”的关键清单(.config),直接决定了内核的功能范围、性能表现和可支持的硬件类型。
一、准备构建环境
1、使用自定义镜像(本文使用该方式)
参考地址:《如何制作一个docker base镜像》
2、使用龙蜥镜像
docker pull registry.openanolis.cn/openanolis/anolisos:23.4二、下载内核
1、获取龙蜥内核地址
http://build.openanolis.cn/buildinfo?buildID=46140

2、获取龙蜥内核代码
https://gitee.com/src-anolis-sig/cloud-kernel


git clone https://gitee.com/src-anolis-sig/cloud-kernel.git #克隆代码cd cloud-kernel #更换目录git checkout e9979af130ead477358365e7d3660d7b41773b9f -b e9979af130ead477358365e7d3660d7b41773b9f #更换对应commitcp kernel.spec ~/rpmbuild/SPECS/ ##复制spec文件到工作目录cp * ~/rpmbuild/SOURCES/ ##复制源码文件到工作目录

3、获取龙蜥内核源码
http://build.openanolis.cn/kojifiles/upstream-source/

curl -LO http://build.openanolis.cn/kojifiles/upstream-source/linux-6.6.102-6.an23.tar.xz.f66938ce51308d5ff479c1fa92396c3e #下载内核源码mv linux-6.6.102-6.an23.tar.xz.f66938ce51308d5ff479c1fa92396c3e ~/rpmbuild/SOURCES/linux-6.6.102-6.an23.tar.xz #移动至工作目录

三、定制内核配置
1、准备内核源码
cd ~/rpmbuild/SPECS/ #更换工作目录dnf install yum-utils -y #安装依赖yum-builddep kernel.spec -y #安装内核构建依赖rpmbuild -bp kernel.spec #准备内核源码




2、定制配置,并加入至内核配置文件中(操作视频见本文开头视频二)
cd ~/rpmbuild/BUILD/kernel-6.6.102-6.an23/linux-6.6.102-6.an23.aarch64/ #更换工作目录make menuconfig #配置命令/ #切换至搜索功能,搜索hfsplus,查看所在路径切换至所在路径并设置为m然后保存并退出

diff -Nur .config.old .config #通过diff查看变更的内容(本次未发现未打开的依赖,所以仅一条)
将CONFIG_HFSPLUS_FS=m加入内核配置文件即可
cat ~/rpmbuild/SOURCES/kernel-6.6.102-aarch64*.config|grep -i hfsplussed -i "s/# CONFIG_HFSPLUS_FS is not set/CONFIG_HFSPLUS_FS=m/g" ~/rpmbuild/SOURCES/kernel-6.6.102-aarch64*.config

四、构建内核(操作视频见本文开头视频一)
cd ~/rpmbuild/SPECS/rpmbuild -ba kernel.spec


五、验证
# 查看内核是否拥有hfsplus模块yumdownloader kernelrpm -qpl kernel-6.6.102-6.an23.aarch64.rpm |grep -i hfsplus# 查看自己构建的内核是否拥有hfsplus模块rpm -qpl ~/rpmbuild/RPMS/aarch64/kernel-6.6.102-6.an23.aarch64.rpm |grep -i hfsplus
