下载源码
官方网站选择合适版本下载源码 kernel org。
并解压
tar -xvf linux-6.10.6.tar.xz
cd linux-6.10.6
安装依赖包
sudo apt-get update
sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev
配置内核参数
使用当前系统的默认配置参数:
cp /boot/config-$(uname -r) .config
make oldconfig
交互式配置参数:
make menuconfig
关闭模块签名选项
NOTE: 需要关闭,否则编译内核的时候报错,找不到证书。(可以选择生成证书,或 disable,这里使用第二种方式。但是在后面安装内核的时候,HP Zhan66 有 BIOS 安全保护,可以进入 BIOS 关闭该功能即可。)
./scripts/config --file .config --set-str SYSTEM_TRUSTED_KEYS ''
./scripts/config --file .config --set-str SYSTEM_REVOCATION_KEYS ''
编译内核
在开始构建之前,让我们为自定义内核构建添加一个标签。我将使用字符串 -luffyao 作为标签,并利用 LOCALVERSION 变量来实施。这是个可选操作。LOCALVERSION 选项可用于设置一个“本地”版本,它会被附加到通常的 x.y.z 版本方案之后,并在你运行 uname -r 命令时一并显示。
./scripts/config --file .config --set-str LOCALVERSION "-luffyao"
编译
make -j$(nproc) 2>&1 | tee log
NOTE: 2>&1 会将 STDOUT 和 STDIN 重定向到相同的文件描述符,并通过管道传输给 tee 命令,这会将输出存储在一个名为 log 的文件,并且在控制台打印出完全相同的文本。
安装内核模块
sudo make modules_install -j$(nproc)
安装内核
sudo make install
重启并验证
$ sudo reboot
$ uname -a
Linux luffyao-hp 6.10.6-luffyao #1 SMP PREEMPT_DYNAMIC Thu Aug 29 05:52:36 CST 2024 x86_64 x86_64 x86_64 GNU/Linu
清除构建文件
make clean
make mrproper
卸载
### 删除内核模块
$ rm -rf /lib/modules/<kernel_release>-<localversion>
### 删除设备树二进制文件
$ rm -rf /boot/dtb-<kernel_release>-<localversion>
### 删除 Linux 内核本身
$ rm -vf /boot/{config,System,vmlinuz}-<kernel_release>-<localversion>
### update grub
sudo update-grub
参考
ChatGPT