Redian新闻
>
CentOS 8 Stream 编译安装最新的 Linux Kernel 6.0 rc3

CentOS 8 Stream 编译安装最新的 Linux Kernel 6.0 rc3

科技

现在还有不少机器是CentOS8 Stream系统,虽然上了贼船,不影响用就是了。8的编译和7大同小异,只是踩了更多的坑在这里记录一下,或许会帮到看到的朋友。


安装编译环境

CentOS8安装必要的包
yum groupinstall "Development Tools" -y \
yum install openssl-devel epel-release -y \
yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto -y \
yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel -y \
yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel ncurses-devel -y
yum install  ncurses-devel -y \
yum install  bc -y \
yum install python3 -y \
yum install rsync -y \
yum -y install rpm-build

下载最新的  Linux Kernel6.0 rc3

(CentOS8 Stream无需切换gcc版本)从kernel.org下载6.0 rc3 的压缩包有203MB,由于国内网络的特殊情况下载会非常的慢,请自备加速手段或者耐心。
 wget https://git.kernel.org/torvalds/t/linux-6.0-rc3.tar.gz
tar zxvf linux-6.0-rc3.tar.gz
cd linux-6.0-rc3
编译内核需要硬盘50G左右的空间!!!

配置config

以下生成config文件的操作二选一,如果拿不准就选择第一个,有图形配置界面的。编辑config文件可以选定编译过中需要的内核模块或者组件。不懂不知道就全程默认。
通过menuconfig
make menuconfig
 linux-6.0-rc3 目录下敲这个命令,会进去一个配置界面,如果看不懂就保持默认配置,就按右方向键选定 save 然后回车,根据提示保存.config文件,

cat  .config //查看有没有正确保存
根据现有内核拷贝生成config
也可通过现有内核参数生成的新参数文件.config 。要注意 /boot/config-3.10.0-957.el7.x86_64,就是/boot/目录下面这个相似的目录。或许不同CentOS8 Stream的路径名不同。要根据实际机器的目录改动。
cp /boot/config-3.10.0-957.el7.x86_64 ./.config
make oldconfig //操作这里要一路回车
cat  .config

修改.config

上面两个生成.config的操作,二选一即可,一般选第一个1 然后全部保存默认。在CentOS8 Steam实际编译过程中,会有两个参数导致编译失败,这里可以提前修改避免这个问题。
修改参数1
打开.config,找到
CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"
不要删除这行配置,将这行配置引号内的内容清空即可,即
CONFIG_SYSTEM_TRUSTED_KEYS=""
如果没改,编译过程中可能会导致下面报错:
.make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'. Stop.
make: *** [Makefile:1729: certs] Error 2
修改参数2
将.config中
CONFIG_DEBUG_INFO_BTF=y
参数由y改为n,即
CONFIG_DEBUG_INFO_BTF=n
如果没改,编译过程中可能会导致下面报错:
.BTF: .tmp_vmlinux.btf: pahole (pahole) is not available Failed to generate BTF for vmlinux Try to disable CONFIG_DEBUG_INFO_BTF make: *** [Makefile:1113: vmlinux] Error 1

执行编译

我要再再提醒你一次,金箍戴上以后,你再也不是一个凡人,执行以下命令,你将又是一个编译Linux内核的人。-j12视具体情况修改。
make -j12 all
上面命令跑完后,内核模块如果没有特殊需求,可以把内核模块的debug信息给去掉,节约点硬盘空间。
make INSTALL_MOD_STRIP=1 modules_install > /dev/null &&
make modules_install &&
make install
设置默认新的kernel启动
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg &&
sudo grub2-set-default 0 &&
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

编译成rpm包

编译出单独的通用RPM包可以在其他的CentOS 8 Stream机器上直接安装,免去了以上繁琐的手动编译的过程。在当前目录 linux-6.0-rc3 下执行 :
yum -y install rpm-build && make rpm-pkg -j32
如果需要压缩体积,可以将make rpm-pkg -j32 换成 make INSTALL_MOD_STRIP=1 rpm-pkg -j32 。
这条命令又会执行一会。执行完不出意外,会在系统的~/rpmbuild/RPMS/x86_64/ 目录下出现三个rpm安装包。
[root@localhost x86_64]# ll -h
总用量 487M
-rw-r--r--. 1 root root 3089月   1 10:53 kernel-6.0.0_rc3-1.x86_64.rpm
-rw-r--r--. 1 root root 1779月   1 10:54 kernel-devel-6.0.0_rc3-1.x86_64.rpm
-rw-r--r--. 1 root root 1.59月   1 10:53 kernel-headers-6.0.0_rc3-1.x86_64.rpm
在其他机器CentOS8 Stream上安装(yum localinstall kern* -y)or dnf localinstall kern* -y这三个rpm包就行可以更新内核了。三个包装完还要更新一下启动项。
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg &&
sudo grub2-set-default 0 &&
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这是我打包好的三个适用CentOS8 Stearmrpm包: https://www.123pan.com/s/8KbDVv-WY4JA,有兴趣的朋友可以下载安装试试。不做任何可靠保证,请避免在生产环境上直接使用。

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604241

Linux技术交流群:3762708

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose | Linux 中国干货:Centos8 编译安装内核回去看不一样的香港A Top Archaeology Institute Struggles to Hire Archaeologists使用 External Secrets Operator 安全管理 Kubernetes Secrets[电脑] Intel + Intel + Intel: Arc 750 Limited Edition + 13700KF 开箱如何在最小安装的 CentOS、RHEL、Rocky Linux 中设置互联网 | Linux 中国如何在 Arch Linux 中启用 Snap 支持 | Linux 中国自杀未遂的老海归烟花散尽如何在 Ubuntu 等 Linux 中安装 Python 3.11 | Linux 中国System 76 将不会发布 Pop!_OS 22.10 Linux 发行版 | Linux 中国如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10 | Linux 中国陌上花开909 readPassage(&stranger); life.partner = strangerLinux Mint 21 “Vanessa” 的 10 大特色 | Linux 中国Tencent Halts E-Reader Service Following Kindle’s China Retreat如何在 Arch Linux 中安装深度桌面(DDE) | Linux 中国My Journey From Concerned Parent to LGBT Ally我在斯坦福当教练和评委 My Learnings from Coaching Stanford Entrepreneurs!图解 Rocky Linux 9 安装步骤 | Linux 中国如何在 Manjaro 和其他 Arch Linux 衍生品上安装 Discord 客户端 | Linux 中国关于 Linux 和 Git 的创造者 Linus Torvalds 的 20 件趣事 | Linux 中国现在谈君子小人会不会引起误解?bāo huā shēng?bō huā shēng?操作系统人机对话!Linux OS大谈Windows与macOS:值得学习,但被Linux碾压Chinese Sailor Returns Home After Circumnavigating the Arctic如何在基于 Ubuntu 的 Linux 发行版上安装最新的 Vim 9.0 | Linux 中国Arch Linux 中用于包管理的图形化应用 | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国佩洛西访台参照炸南领馆样板3 个可在 Linux 上玩旧 NES 游戏的 NES 模拟器 | Linux 中国在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify | Linux 中国如何通过 chroot 恢复 Arch Linux 安装 | Linux 中国CentOS 7 编译安装最新的 Linux Kernel 6.0 rc3Rosalía 登意大利版《VOGUE》封面!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。