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)
相关推荐
极客先躯40 分钟前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
龙仔7251 小时前
人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
linux·数据库·笔记·备份·人大金仓
老杨聊技术2 小时前
CentOS 7 安装 MySQL 8 保姆级教程
linux·mysql·centos
xiaoye-duck2 小时前
《Linux系统编程》Linux 系统多线程(六):<线程同步与互斥>线程同步(下):POSIX 信号量与环形队列生产者消费者模型详解
linux·线程
三言老师3 小时前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
attitude.x3 小时前
Cursor+GitOps:自动化运维新姿势
运维·自动化
数智化管理手记4 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
大鱼>4 小时前
eBPF内核编程:从TC到XDP的全栈可观测性
linux·服务器·php
sxstj5 小时前
老旧电脑 Linux 系统完整推荐(按内存分档,新手友好)
linux
Shell运维手记5 小时前
ARP 协议超详细讲解(适合网工考试 / 运维理解)
运维·网络·网络协议·智能路由器