内核更新操作需要root权限,本文档所有终端操作均使用root用户示范
1. 工具准备
- 一台用于编译内核的kylin linux 测试服务器(可以在电脑上安装虚拟机,需要能访问互联网)
- xshell (用于ssh远程连接)
- xftp (用于文件传输)
- kernel源码(在https://www.kernel.org/ 下载)
本文档中使用的kernel源码版本为6.1.11,编译环境为银河麒麟服务器版V10 SP2
2. 编译环境准备
更新源和安装编译工具包及依赖包,如果是刚安装好的系统首次更新,更新中可能会包含内核更新,更新完成后需要重启
更新源和安装编译工具包及依赖包命令:
1 | dnf -y update && dnf -y install openssl-devel ncurses-devel elfutils-libelf-devel bison rpm-build |
输入y,回车,开始更新软件和安装编译工具
安装完成,输入reboot
命令重启麒麟服务器
编译内核
上传内核源码到/root/
目录下
- 使用
xz -d linux-6.1.11.tar.xz && tar xf linux-6.1.11.tar
命令解压 - 进入源码目录
cd linux-6.1.11
3. 拷贝当前使用的内核配置文件到源码目录用作模板
1 | cp /boot/config-$(uname -r) ./.config |
配置内核
使用make menuconfig
进入到内核的配置界面,使用键盘的方向键和Tab键切换光标进入Kernel hacking, 选中Kernel debugging,按空格键取消该项前面的```[*]```,变为```[ ]```,按```1
make menuconfig
```保存,接着按``` ```退出配置。 将内核编译成rpm包
使用make binrpm-pkg
命令编译生成rpm包,可添加-j参数指定使用cpu核心数量进行多线程编译
1 | # 例如8个cpu核心进行编译的命令 |
编译时间因服务器性能而异。编译完成后在/root/rpmbuild/RPMS/x86_64
目录下生成内核安装包和内核头文件安装包,即可将生成的内核rpm包上传到需要更新内核的服务器安装。
编译部分的内容结束
内核安装
在正式服务器上安装新内核前,需要在测试服务器上测试该内核是否能正常使用
将编译好的内核上传到要更新内核的服务器
- 使用
rpm -ivh 内核文件名
命令安装内核,将会把内核文件安装到/boot/
目录下
示例:
1 | rpm -ivh kernel-6.1.11-1.ky10.x86_64.rpm |
查看当前默认使用的内核
示例:1
grubby --default-kernel
可以看到当前使用的内核是
/boot/vmlinuz-4.19.90-25.23.v2101.ky10.x86_64
设置新安装的内核为默认启动内核
通过命令grubby –set-default=可以设置默认启动内核,接着使用reboot
命令重启系统。
1 | grubby --set-default=/boot/vmlinuz-6.1.11 |
- 查看内核是否已经生效
使用uname -a
命令查看当前内核版本,新安装的内核已经生效 内核安装部分的内容结束