编译并安装Kernel
本章节描述了在openEuler 24.03 LTS SP1操作系统上编译和安装6.6.0-72.0.0版本内核的详细步骤。
- 编译内核。
1 2
cd /usr/src/kernels/kernel-6.6.0-72.0.0 make -j64
若编译过程中存在如下提示信息,则需要确保服务器系统时间为最新时间。
1make[2]: warning: Clock skew detected. Your build may be incomplete.
执行tzselect命令,根据实际情况依次输入以下选项对应时区的数字,例如:Asia->Beijing->YES,执行完成后拷贝文件到“/etc/localtime”。
1 2
tzselect cp -f /usr/share/zoneinfo/Asia/Beijing /etc/localtime
- 检查内核是否编译成功。
可查看编译路径下是否生成vmlinux文件,有vmlinux文件生成,说明编译执行成功,再继续执行后续步骤;如未生成vmlinux文件,请检查编译是否报错并解决后重新执行1。
1ll vmlinux*回显如下三个文件时,表示编译成功。
1 2 3
-rwxr-xr-x 1 root root 39495600 Dec 8 17:06 vmlinux -rw-r--r-- 1 root root 214542 Dec 8 17:06 vmlinux.a -rw-r--r-- 1 root root 49125656 Dec 8 17:06 vmlinux.o
- 安装内核模块。
1make modules_install - 安装内核。
1make install
- 在安装内核前,请确保系统中没有安装dkms,否则可能会导致安装内核时出现报错信息:“Error! Bad return status for module build on kernel: ...”,解决方法如下:
- 查看系统中是否已安装dkms。
yum list installed | grep dkms
若该指令执行后出现回显,则表明已安装dkms。
- 删除dkms。
1yum remove -y dkms
- 重新安装内核。
1make install
- 查看系统中是否已安装dkms。
- 在安装内核时,可能出现以下报错信息,此时需要重新执行make install以解决该问题。
1 2
dracut-install: Failed to find module 'uds' /lib/modules/6.6.0/kernel/drivers/block/uds.ko dracut-install: Failed to find module 'kvdo' /lib/modules/6.6.0/kernel/drivers/block/kvdo.ko
- 在安装内核前,请确保系统中没有安装dkms,否则可能会导致安装内核时出现报错信息:“Error! Bad return status for module build on kernel: ...”,解决方法如下:
- 更新启动项。
1grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg
设置启动内核为:openEuler (6.6.0) 24.03 (LTS-SP1)。
1grub2-set-default 'openEuler (6.6.0) 24.03 (LTS-SP1)'
重启操作系统,新内核即可生效。
1reboot
- 使用如下命令检查新内核版本,如果版本号仅显示6.6.0,则说明启动内核正确。
1uname -r
如果重启后未能进入新编译的内核,请在BIOS进入grub启动后选择新编译的内核进入系统,或者联系技术支持工程师协助解决。
如果重启后,amdgpu内核模块未能成功安装,可以使用modprobe amdgpu命令手动安装。
父主题: 编译及安装内核