当前位置: 首页 > article >正文

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

一、下载内核

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

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/
或者
. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。

cp -v /boot/config-$(uname -r) .config
#推荐用法

执行

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、下载编译工具包

sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves zstd -y

2、编译安装内核

# 把内核解压到家目录下
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)


http://www.kler.cn/news/302364.html

相关文章:

  • 类和对象 ,基础篇【c++】
  • excel文件扩展名xlsm与xlsx的区别
  • 多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测
  • 一月通关华为OD,感谢冯姐
  • Win11+Ubuntu20.04双系统安装教程(避坑版)
  • 科研绘图系列:R语言宏基因组PCoA图(PCoA plot)
  • MySQL——视图(二)视图管理(7)删除视图
  • 第二证券:车网互动商用化发展可期 原油供需拐点或至
  • 大疆无人机用过的两款IMU
  • 使用ShardingSphere实现MySql的分库分表
  • 洛谷 P3065 [USACO12DEC] First! G
  • Gitlab pre-receive hooks适配java p3c-pmd和python pycodestyle
  • Maven 深入指南:构建自动化与项目管理的艺术
  • 推动生态系统架构创新与可持续发展的关键引擎——The Open Group 2024年度大会全解析
  • Java使用Instant时输出的时间比预期少了八个小时
  • Linux数据相关-第3个服务-实时同步sersync
  • 828华为云征文 | 云服务器Flexus X实例:源码安装 Redis 实例测评
  • GPT撰写开题报告教程——课题确定及文献调研
  • ubuntu打包命令
  • SAP B1 单据页面自定义 - 用户界面编辑字段
  • 面试高阶问题:单片机选型策略万字长文详解
  • 关于GPT5训练失败的思考
  • CRM客户关系管理系统开发源码小程序
  • 【机器学习】参数学习的基本概念以及贝叶斯网络的参数学习和马尔可夫随机场的参数学习
  • FEDERATED引擎
  • 更改flutter 应用的应用名称和图标
  • PHP一键约课高效健身智能健身管理系统小程序源码
  • vue3打包 error in node_modules/@types/node/stream/web.d.ts 错误解决办法
  • Centos7安装MySql(特详细)
  • 栈的内容..