编译并安装Kernel

  1. 编译内核。

    1
    2
    cd /usr/src/kernels/kernel-5.10.0-153.12.0
    make -j64
    

    若编译过程中存在如下提示信息,则需要确保服务器系统时间为最新时间。

    1
    make[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
    

  2. 检查内核是否编译成功。

    可查看编译路径下是否生成vmlinux文件,有vmlinux文件生成,说明编译执行成功,再继续执行后续步骤;如未生成vmlinux文件,请检查编译是否报错并解决后重新执行1

    1
    ll vmlinux*
    

    回显如下三个文件时,表示编译成功。

    1
    2
    3
    -rwxr-xr-x 1 root root 363795992 Nov 17 20:00 vmlinux*
    -rw-r--r-- 1 root root 892957960 Nov 17 20:00 vmlinux.o
    -rw-r--r-- 1 root root    613485 Nov 17 20:00 vmlinux.symvers
    

  3. 安装内核模块。

    1
    make modules_install
    

  4. 安装内核。

    1
    make install
    

    执行make install后,有可能会报错,具体错误如下所示,此时需要再次执行make install

    1
    2
    dracut-install: Failed to find module 'uds' /lib/modules/5.10.0/kernel/drivers/block/uds.ko
    dracut-install: Failed to find module 'kvdo' /lib/modules/5.10.0/kernel/drivers/block/kvdo.ko
    

  5. 更新启动项。

    1
    grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg
    

    设置启动内核为:openEuler (5.10.0) 22.03 LTS

    1
    grub2-set-default 'openEuler (5.10.0) 22.03 LTS'
    

    重启操作系统,新内核即可生效。

    1
    reboot
    

  6. 使用如下命令检查新内核版本,如果版本号仅显示5.10.0,则说明启动内核正确。

    uname -r

    如果重启后未能进入新编译的内核,请在BIOS进入grub启动后选择新编译的内核进入系统,或者联系技术支持工程师协助解决。