openeuler2403SP3编译最新版本kernel v7.0.9具体过程

openeuler2403SP3编译最新版本kernel v7.0.9具体过程

一,系统环境

openneuler2403SP3这里已经安装好UKUI图形界面,这里再安装下编译依赖,可以根据需求安装

dnf groupinstall -y “Development Tools”

dnf install -y rpm-build openssl-devel bc rsync gcc gcc-c++ flex bison m4 elfutils-libelf-devel

dnf install -y ncurses-devel elfutils-libelf-devel bc openssl-devel bison flex

二,下载内核并编译安装

1,下载解压内核

cd /opt

wget https://mirrors.nju.edu.cn/kernel.org/linux/kernel/v7.x/linux-7.0.9.tar.gz

tar -zxvf linux-7.0.9.tar.gz

2,进下内核目录

cd linux-7.0.9

3,配置内核选项
通过复用现有配置并微调,可以确保新内核包含当前系统的驱动和功能,简化定制流程。

复用当前配置:将系统当前运行内核的配置文件复制到源码目录,作为基础配置。

cp /boot/config-$(uname -r) .config

sed -i ‘s|CONFIG_SYSTEM_TRUSTED_KEYS=.*|CONFIG_SYSTEM_TRUSTED_KEYS=“”|’ .config
sed -i ‘s|CONFIG_SYSTEM_EXTRA_CERTIFICATE=.*|CONFIG_SYSTEM_EXTRA_CERTIFICATE=“”|’ .config

make olddefconfig

以上命令修改内核配置,不然编译会有报错。

4,. 编译内核
配置完成后,即可开始编译。-j$(nproc)参数会利用所有CPU核心并行编译,加速过程。

make -j$(nproc)
注意:编译过程耗时较长(半小时至数小时不等),如果在过程中遇到错误,可以尝试去掉-j参数,以便清晰地定位错误信息。

5, 安装内核与模块
编译成功后,需要将内核镜像、模块等文件安装到系统指定位置。

安装内核模块到 /lib/modules/ 目录下

sudo make modules_install

安装内核文件(vmlinuz, System.map等)到 /boot 目录,并自动更新GRUB配置

sudo make install

cp .config /boot/config-7.0.9

执行sudo make install后,它会自动复制内核到/boot,生成对应的initramfs,并将新内核条目添加到GRUB的启动菜单中。

6,更新引导与重启验证
手动更新GRUB以确保配置生效,并重启系统以加载新内核。

sudo grubby --set-default-index=0

更新GRUB配置:
对于使用UEFI引导的系统,GRUB配置文件路径通常是/boot/efi/EFI/openEuler/grub.cfg。如果不确定,可检查/boot/efi/EFI/下的具体目录名。

请将路径替换为你的实际GRUB配置文件路径

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

如果你使用的是传统的BIOS引导,命令通常是:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统:

sudo reboot

系统重启时,在GRUB启动菜单中选择你刚编译的 7.0.9 内核启动。

登录验证:
成功登录后,执行以下命令,如果终端输出7.0.9,则代表新内核已成功运行。

uname -r

在 openEuler 中,要将系统默认启动项改为新编译的内核,核心思路就是让 GRUB2 引导器知道新内核的存在,并将其设为默认项。

这里有三种不同复杂度的方法,你可以根据自己的情况选择。

:wrench: 方法一:使用 grubby 命令(最简单高效)

这个方法直接、安全,推荐的默认方式。它会直接修改 GRUB 配置,无需你关心内核的具体文件名。

  1. 确认新内核已在列表中
    新内核安装后,首先查看它在 GRUB 菜单中的索引号。这个索引号从 0 开始计数。

    bash

    grubby --info=ALL | grep -E "^index|^title"
    

    输出会清晰列出每个启动项的索引和对应的内核版本。

  2. 设置新内核为默认项
    找到新内核的索引(比如是 0),运行以下命令将其设为默认启动项:

    bash

    sudo grubby --set-default-index=0
    
  3. 验证并重启
    检查默认项是否设置成功,然后重启系统即可。

    bash

    grubby --default-index
    sudo reboot