在CentOS上编译最新版linux内核(linux-5.19.9)
从官网下载最新版的Linux内核源码,本教程使用linux-5.19.9进行编译。
实验环境(CentOS-Stream-8)
$ uname -a
Linux localhost.localdomain 4.18.0-338.el8.x86_64 #1 SMP Fri Aug 27 17:32:14 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
下载并解压缩linux内核源码
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.19.9.tar.xz
tar -xvf linux-5.19.9.tar.xz
cd linux-5.19.9
安装相关依赖包
yum install -y gcc make ncurses-devel flex bison openssl openssl-devel elfutils-libelf-devel binutils binutils-devel
配置需要编译的模块,生成相应的配置文件.config
make menuconfig
根据各自的需求,可以选择需要的模块编译进内核中,这里我们保持默认即可,直接选择Save
无需修改名称,直接点击OK
选择Exit
进行退出
选择Exit
退出引导界面
检查目录下是否成功生成配置文件.config
ls -a
开始编译内核,-j
之后的数字是指定一次可以同时执行多少个任务,根据各自编译机的CPU性能自行指定
make -j4
make modules_install
如果执行make modules_install
发生如下错误
sed: can't read modules.order: No such file or directory
make: *** [Makefile:1477: __modinst_pre] Error 2
则我们手动执行make -j4 modules
命令来排查问题
如果报certs/rhel.pem相关错误,如下所示
make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'. Stop.
make: *** [Makefile:1846: certs] Error 2
则编辑.config
文件,将CONFIG_SYSTEM_TRUSTED_KEYS
的值修改为空后保存
CONFIG_SYSTEM_TRUSTED_KEYS=""
再次重新执行make -j4 modules
命令,如果遇到如下错误
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1168: vmlinux] Error 1
需要再次编辑.config
文件,按照提示将CONFIG_DEBUG_INFO_BTF
的值修改为n
,然后保存
CONFIG_DEBUG_INFO_BTF=n
修改完毕后,再一次重新执行make -j4 modules
命令,如果执行成功,为了确保无误,我们再重新编译下内核,然后继续后续步骤
# 执行该命令,排查是否还存在模块相关错误
make -j4 modules
# 上述问题排查完毕,再重新编译一次,确保无误
make -j4
# 安装相关模块
make modules_install
# 安装内核
make install
安装完毕之后我们直接重启系统,使其加载新的内核
reboot
重启完成后,查看我们的系统信息
$ uname -a
Linux localhost.localdomain 5.19.9 #2 SMP PREEMPT_DYNAMIC Mon Sep 19 13:20:30 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
作者: 陌上荼靡
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)