CentOS Stream 9 编译安装6.1内核
一、下载内核源码
打开浏览器,访问Linux内核的官方网站:https://www.kernel.org
在官网首页能够看到许多不同的内核版本,位于右边的黄色按钮默认指向最新的稳定版,可以看到目前最新的稳定版为6.1.5,通过该按钮能够下载最新稳定版内核源码压缩包。
1.执行以下命令,安装wget
yum install wget
2.右键点击黄色按钮,选择“复制链接”得到下载地址,然后通过wget进行下载
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.5.tar.xz
如果下载速度过慢或无法正常下载,可改用以下地址,从国内镜像源下载源码
下载地址:https://mirrors.bfsu.edu.cn/kernel/v6.x/linux-6.1.5.tar.xz
二、准备编译环境
执行以下命令,安装编译源码时所需要的软件包
yum install make gcc ncurses-devel flex bison openssl-devel bc elfutils-libelf-devel perl dwarves
三、编译安装内核
1.解压源码
执行以下命令,解压内核源码
tar -xvf linux-6.1.5.tar.xz
2.切换目录
执行以下命令,切换至源码目录
cd linux-6.1.5
3.配置选项
编译内核前,需要先配置编译选项。执行以下命令,以图形化的方式配置编译选项
make menuconfig
- 上下方向键 - 移动上方配置选项
- 空格键 - 选中或取消选中
- 回车键 - 进入子菜单
- 连续两次ESC键 - 返回上一级菜单或退出配置
- TAB键、左右方向键 - 移动下方控制选项
通过图形化配置界面可以看到,需要配置的编译选项非常多,如果逐一配置会比较困难。好在Centos的内核中留有一份编译时所使用的配置选项文件,在执行命令时会自动读取这份配置文件来完成编译配置。由于版本不同,在这份配置文件中可能没有涵盖当前所有的配置选项,这时命令会自动将没有配置的选项设置成默认值,无需我们过多处理。需要注意的是,仍有一处选项必须要我们手动处理,在这份配置文件中配置了编译时向内核中额外添加的证书,但是我们并没有这个证书,在编译时就会因为找不到指定证书而报错。由于手动生成证书比较繁琐,所以这里就直接去掉这个证书,配置成:不额外添加证书到内核中。
选项位置:Cryptographic API -> Certificates for signature checking ->
Additional X.509 keys for default system keyring
1.移动到选项“Cryptographic API”,按回车键进入子菜单
2.移动到选项“Certificates for signature checking”,按回车键进入子菜单
3.移动到选项“Additional X.509 keys for default system keyring”,按回车键进行配置
4.清空输入框中的内容,然后选择“< Ok >”,按回车键确认并返回
5.按两次Esc键返回上一级菜单
6.继续两次Esc键返回上一级菜单
7.再继续按两次Esc键退出配置
8.选择“< Yes >”,然后按回车键保存配置
至此,编译配置全部完成,接下来就可以开始编译内核了。
4.编译内核
配置完成后,执行以下命令编译内核
make
可以使用-j参数进行多线程编译,可以提高编译速度。
如果出现错误:make[2]: *** No rule to make target ‘certs/rhel.pem’, needed by
‘certs/x509_certificate_list’. Stop.
找不到指定证书,原因是没有正确指定证书路径或没有清空证书路径。
内核编译需要很长一段时间,请要耐心等待。
5.安装模块
编译完成后,执行以下命令安装模块
make modules_install
可以使用-j参数进行多线程安装,可以提高安装速度。
一定要进行模块安装,否则无法正常进入系统。
模块安装需要一些时间,请要耐心等待。
6.安装内核
模块安装完成后,执行以下命令安装内核
make install
必须先安装模块,再安装内核,否则无法正常进入系统。如果先安装内核,需要在安装模块后,再次安装内核。
内核安装完成后会自动修改启动项,下次启动时会以此次编译安装的内核来进行启动。
四、查看当前内核
内核安装完成后,执行以下命令重启系统
reboot
重启完成后,输入以下命令查看当前内核
uname -r
[root@localhost ~]# uname -r
6.1.5