ubuntu下手工编译安装 6.* 最新内核

一、下载内核

假定电脑是 UEFI 类型的 BIOS,手工编译内核之前先在主板 BIOS 中禁止 UEFI 的安全启动。

查看安全启动状态:

bash 复制代码
sudo apt update
sudo apt install mokutil -y
mokutil --sb-state # 显示 "SecureBoot disabled" 表示已经禁止了安全启动

https://mirrors.tuna.tsinghua.edu.cn/kernel/ 下载内核

二、内核配置

寻找一个接近编译版本的可靠内核配置文件,在这个配置文件的基础上进行配置。我这里使用 Ubuntu 22.04 的最新 HWE 6.5 内核,从相应镜像网站下载包含内核配置文件(config-6.5.0-14-generic)模块包 linux-modules-6.5.0-14-generic_6.5.0-14.14~22.04.1_amd64.deb。

用下面的命令提取出内核配置文件。进入下载的目录中。

https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/l/linux-hwe-6.5/

或者

. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。

bash 复制代码
cp -v /boot/config-$(uname -r) .config
#推荐用法

执行

bash 复制代码
sudo apt install binutils -y
mkdir tmp
ar x linux-modules-6.5.0-14-generic_6.5.0-14.14~22.04.1_amd64.deb --output=tmp
cd tmp
tar -xf data.tar.zst ./boot
cd boot
cp config-6.5.0-14-generic ~/ -v

三、编译安装内核

1、下载编译工具包

bash 复制代码
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves zstd -y

2、编译安装内核

bash 复制代码
# 把内核解压到家目录下
tar -xf linux-6.7.tar.xz -C ~/
cd ~/linux-6.7
cp ~/config-6.5.0-14-generic .config -v
# ubuntu 20.04 的 kmod 版本是27,不支持 zstd 压缩模块,kmod 28 及以上的版本才支持
sed -i 's/CONFIG_MODULE_COMPRESS_ZSTD=y/# CONFIG_MODULE_COMPRESS_ZSTD is not set/' .config
make olddefconfig
# 可以进一步查看和编辑生成的 .config 文件内容,以确保生成的配置文件包括必须支持的硬件模块。编辑完成保存后再执行一次 make olddefconfig。
# 也可以进一步用 make menuconfig 作进一步的修改和保存。
scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""
make -j8
# 全部编译
#make -j $(nproc)
# 如果想只编译内核,可以使用命令
#make -j $(nproc) vmlinux bzImage

echo $? # 如果结果是 0 表示编译成功,接着安装内核模块和内核
sudo make INSTALL_MOD_STRIP=1 modules_install -j8
#INSTALL_MOD_STRIP=1 参数非常重要,不然6.x的linux会在启动的时候显示"错误,内存耗尽"
sudo make install
#sudo make install -j $(nproc)
相关推荐
大树889 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质9 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush49 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52010 小时前
Linux 11 动态监控指令top
linux
Inhand陈工10 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智11 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_11 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈11 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix