Linux Kernel 5.10.x 编译版

技术 秋水逸冰 19784浏览 5评论

ELRepo Project 提供的内核版本一直都比较稳定,且 kernel-ml 一直提供最新版内核的 rpm 安装包。
但是 kernel-ml 总是在新的大版本出来以后就不再提供旧的版本。而 kernel-lt 还在更新上一个 longterm 版本 5.4,并没有去切换到最新的 longterm 版本 5.10。
kernel-ml 分支 5.10 到 5.10.16 以后就不再更新了。
于是我就想着能不能自己编译出来,正好借此机会学习一下 ELRepo Project 是如何编译 Linux 内核的。
在找到其旧版本的 kernel-ml-5.10.16-1.el7.elrepo.nosrc.rpm 和 kernel-ml-5.10.16-1.el8.elrepo.nosrc.rpm 后,其折腾过程就略过不提了。总之,在此基础上编译出了目前 5.10.x 最新的版本。

Linux Kernel 5.10.x 编译版

更多旧版本下载地址
https://dl.lamp.sh/kernel/

1. 适用于 CentOS 7 的下载地址

kernel-ml-5.10.170-1.el7.x86_64.rpm
kernel-ml-devel-5.10.170-1.el7.x86_64.rpm
kernel-ml-headers-5.10.170-1.el7.x86_64.rpm
kernel-ml-tools-5.10.170-1.el7.x86_64.rpm
kernel-ml-tools-libs-5.10.170-1.el7.x86_64.rpm
kernel-ml-tools-libs-devel-5.10.170-1.el7.x86_64.rpm
perf-5.10.170-1.el7.x86_64.rpm
python-perf-5.10.170-1.el7.x86_64.rpm

一般只需下载前 3 个 rpm 文件即可。
kernel-ml-5.10.170-1.el7.x86_64.rpm
kernel-ml-devel-5.10.170-1.el7.x86_64.rpm
kernel-ml-headers-5.10.170-1.el7.x86_64.rpm

下载完成后,执行以下命令安装:

# yum localinstall kernel-ml-*

成功安装后,执行以下命令查看本机已经存在的内核列表:

# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

返回值示例:

0 : CentOS Linux (5.10.170-1.el7.x86_64) 7 (Core)
1 : CentOS Linux 7 Rescue b2206184ea3c4d8a9be703c8e6b739ab (3.10.0-1127.13.1.el7.x86_64)
2 : CentOS Linux (3.10.0-1127.13.1.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)

设置启动最新内核(一般最新安装的内核启动顺序为 0)

# grub2-set-default 0

删除 rpm 文件。

# rm -fv kernel-ml-*

然后再 reboot 重启系统,再次进入系统后,就是最新版的内核了。

2. 适用于 CentOS Stream 8 / Rocky Linux 8 / AlmaLinux 8 等的下载链接

kernel-ml-5.10.170-1.el8.x86_64.rpm
kernel-ml-headers-5.10.170-1.el8.x86_64.rpm
kernel-ml-core-5.10.170-1.el8.x86_64.rpm
kernel-ml-devel-5.10.170-1.el8.x86_64.rpm
kernel-ml-modules-5.10.170-1.el8.x86_64.rpm
kernel-ml-modules-extra-5.10.170-1.el8.x86_64.rpm
kernel-ml-tools-5.10.170-1.el8.x86_64.rpm
kernel-ml-tools-libs-5.10.170-1.el8.x86_64.rpm
kernel-ml-tools-libs-devel-5.10.170-1.el8.x86_64.rpm
bpftool-5.10.170-1.el8.x86_64.rpm
perf-5.10.170-1.el8.x86_64.rpm
python3-perf-5.10.170-1.el8.x86_64.rpm

一般只需下载前 6 个 rpm 文件即可。

kernel-ml-5.10.170-1.el8.x86_64.rpm
kernel-ml-core-5.10.170-1.el8.x86_64.rpm
kernel-ml-devel-5.10.170-1.el8.x86_64.rpm
kernel-ml-modules-5.10.170-1.el8.x86_64.rpm
kernel-ml-modules-extra-5.10.170-1.el8.x86_64.rpm
kernel-ml-headers-5.10.170-1.el8.x86_64.rpm

下载完成后,执行以下命令安装:

# yum localinstall kernel-ml-*

成功安装后,执行以下命令查看本机已经存在的内核启动顺序:

# grub2-editenv list

一般情况下返回的就是最新版的内核信息。CentOS Stream 8 / Rocky Linux 8 / AlmaLinux 8 无需手动设置启动最新内核。

saved_entry=bfc33522e0c000866700da6e23a667df-5.10.170-1.el8.x86_64
kernelopts=root=UUID=5cef9062-7b3c-439c-9248-fafd1014b1af ro crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet 
boot_success=0

删除 rpm 文件。

# rm -fv kernel-ml-*

然后再 reboot 重启系统,再次进入系统后,就是最新版的内核了。

写在最后

请关注我的 Telegram 频道:https://t.me/qiushuiyibing
我会在此不定期发布一些杂七杂八的作品。
同时也欢迎加入交流群:https://t.me/qiushui2018

转载请注明:秋水逸冰 » Linux Kernel 5.10.x 编译版

发表我的评论
取消评论

请输入正确答案后提交评论 *超出时限。 请再次填写验证码。

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

  1. 是否有编译内核参数配置教程
    charnet10191年前(2023-07-12)回复
  2. 支持centos教程!
    bug104年前(2021-04-21)回复
  3. 开始更新了,加油!
    1234年前(2021-04-20)回复
  4. ml是主线(mainline)版本,主线只有一条,所以不会编译旧版
    tlanyan4年前(2021-04-04)回复
    • 这个我当然知道。而 lt 还没有切换,所以就自己折腾。
      秋水逸冰4年前(2021-04-04)回复