所使用的实验环境:
操作系统:OpenEuler20.09(测试一)、OpenEuler22.03(测试二)
新核版本:5.18.14
旧核版本:4.19.140-2009.4.0.0048.oe1.x86_64(测试一通过)
5.10.0-60.18.0.50.oe2203.x86_64 (测试二通过)
注意:22.03是最新发行的长期稳定版,建议使用22.03版本做此实验
一、准备新核源码和编译所需的工具
Linux官网的下载链接:https://kernel.org
镜像链接:https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.14.16.tar.xz
下载完成后通过网络连接工具将新核压缩包传输到虚拟主机上的 /opt 文件夹下。
请确保该目录分配足够的磁盘空间,笔者曾在安装时出现磁盘空间不足导致安装失败的情况。
安装一些工具和依赖:
yum group install -y "Development Tools"
yum install -y bc
yum install -y openssl-devel
yum install -y texinfo
yum install -y
yum -y install ncurses-devel openssl-devel elfutils-libelf-devel bc rsync rpmdevtools python3 gcc gtk2-devel
yum install ninja-build -y
yum install gtk2-devel -y
yum install liburing-devel.x86_64 liburing.x86_64 -y
yum install libaio-devel.x86_64 -y
二、编译新核
下载得到的是.tar.xz类型的压缩包,tar -xvJf linux-5.18.14.tar.xz 解压缩 ,J大写
清理内核:
cd linux-5.18.14/
make mrproper (删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件)
将当前使用的内核配置文件拷贝到新内核目录下:
cp /boot/config-$(uname -r) .config
根据自己的需要去配置内核,笔者这里未做修改
make menuconfig
内核配置界面:
红框里是当前处于的路径,没有修改直接选择exit退出即可
开始编译内核,笔者这里是4核处理器,每个CPU核心可以开两个并行的编译
make -j8
笔者在编译过程中出现了如下问题:
缺少dwarves软件包导致
make mrproper
cp /boot/config-$(uname -r) .config,然后重新编译,make -j8
make modules -j8
编译时间很长,耐心等待
安装内核模块:
make modules_install
笔者安装完成如下:
make install
笔者安装完如下:
查看是否安装完成:
grep menuentry /boot/grub2/grub.cfg
我们可以看到如下结果,蓝色部分就是新安装的内核。
22.03版本
20.09版本
三、设置GRUB引导
现在将新安装的内核设置为默认启动的内核:
grub2-set-default "openEuler (5.18.14) 20.09"
版本请选择你自己的版本
grub2-editenv list
现在重启就可以看到新的内核了
Reboot
22.03版本
20.09版本
进入系统后,可以看到内核成功更新了
uname -a
你可以选择将编译过的源码保存在/usr/src/kernel,在这里你可以看到之前的旧核源码