内核更新操作需要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/目录下

  1. 使用xz -d linux-6.1.11.tar.xz && tar xf linux-6.1.11.tar命令解压
  2. 进入源码目录

cd linux-6.1.11

3. 拷贝当前使用的内核配置文件到源码目录用作模板

1
cp /boot/config-$(uname -r) ./.config
  1. 配置内核
    使用make menuconfig进入到内核的配置界面,使用键盘的方向键和Tab键切换光标

    1
    make menuconfig
    进入Kernel hacking, 选中Kernel debugging,按空格键取消该项前面的```[*]```,变为```[ ]```,按``````保存,接着按``````退出配置。
  2. 将内核编译成rpm包
    使用make binrpm-pkg命令编译生成rpm包,可添加-j参数指定使用cpu核心数量进行多线程编译

1
2
# 例如8个cpu核心进行编译的命令
make binrpm-pkg -j8

编译时间因服务器性能而异。编译完成后在/root/rpmbuild/RPMS/x86_64目录下生成内核安装包和内核头文件安装包,即可将生成的内核rpm包上传到需要更新内核的服务器安装。

编译部分的内容结束

内核安装

在正式服务器上安装新内核前,需要在测试服务器上测试该内核是否能正常使用

将编译好的内核上传到要更新内核的服务器

  1. 使用rpm -ivh 内核文件名命令安装内核,将会把内核文件安装到/boot/目录下

示例:

1
rpm -ivh kernel-6.1.11-1.ky10.x86_64.rpm
  1. 查看当前默认使用的内核
    示例:

    1
    grubby --default-kernel

    可以看到当前使用的内核是/boot/vmlinuz-4.19.90-25.23.v2101.ky10.x86_64

  2. 设置新安装的内核为默认启动内核

通过命令grubby –set-default=可以设置默认启动内核,接着使用reboot命令重启系统。

1
grubby --set-default=/boot/vmlinuz-6.1.11
  1. 查看内核是否已经生效
    使用uname -a命令查看当前内核版本,新安装的内核已经生效 内核安装部分的内容结束