首先下载kernel,5.x版本的内核,下载地址:
//mirrors.edge.kernel.org/pub/linux/kernel/v5.x/

系统安装相关包:

# yum install -y bc gcc make python3 ncurses-devel flex bison openssl-devel elfutils-libelf-devel

将内核解压

[root@localhost ~]# tar xvf linux-5.10.60.tar.xz
[root@localhost linux-5.10.60]# cd linux-5.10.60

使用现有的config文件

[root@localhost linux-5.10.60]# cp -p /boot/config-4.18.0-305.3.1.el8.x86_64 .config

使用老的配置参数

[root@localhost linux-5.10.60]# sh -c 'yes ""| make oldconfig'

Make编译,使用nproc表示使用所有cpu线程:

[root@localhost linux-5.10.60]# make -j $(nproc)

Make 报错:

make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'.  Stop.


和这个报错Failed to generate BTF for vmlinux

编辑.config配置文件,将下面两行注释掉

#CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"
#CONFIG_DEBUG_INFO_BTF=y



然后再次执行make -j $(nproc)

[root@localhost linux-5.10.60]# make -j $(nproc)


模块安装,把编译好的模块拷贝到系统目录下

[root@localhost linux-5.10.60]# make modules_install


安装二进制内核镜像, 生成并安装boot初始化文件系统映像文件

[root@localhost linux-5.10.60]# make install


现在可以查看/lib/modules目录下面多出来一个5.10.60内核的目录了

[root@localhost linux-5.10.60]# ll /lib/modules
total 8
drwxr-xr-x. 6 root root 4096 Apr 11 14:38 4.18.0-305.3.1.el8.x86_64
drwxr-xr-x. 3 root root 4096 Apr 11 15:48 5.10.60


更新一下grub启动项

[root@localhost linux-5.10.60]# grub2-mkconfig -o /boot/grub2/grub.cfg

查看默认启动项是否是5.10.60

[root@localhost linux-5.10.60]# grubby --default-kernel
[root@localhost linux-5.10.60]# grubby --default-index


查看所有启动项:

[root@localhost linux-5.10.60]# grubby --info=ALL


可使用grubby –set-default 来设置默认启动项。
设置完成之后,可以重启系统,查看是否可以进入系统了。

本文原创地址://q13zd.cn/centos8-compile-kernel.html编辑:逄增宝,审核员:逄增宝