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

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 bzImageecho $? # 如果结果是 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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • leetcode 146.LRU缓存
  • Encountered error while trying to install package.> lxml
  • VS Code 配置 Rust-Analyzer 报错
  • web渗透—RCE
  • SQL Server 语句日期格式查找方法
  • HT338 2x50W D类立体声音频功放
  • Android 测试机
  • 基于微信小程序的图书馆预约占座系统
  • 计算机毕业设计 自习室座位预约系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 【鸿蒙HarmonyOS NEXT】页面之间相互传递参数
  • 复旦:EoT下Muti-agentllm曾带给我的启发
  • 【pytorch】【onnx部署】系列学习文章目录
  • apache文件共享和访问控制
  • 爱普生相机SD卡格式化后数据恢复指南
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • es的写入过程
  • maven工程打包jar以及java jar命令的classpath使用
  • Python_OOP
  • Sublime text 3 3103 注册码
  • 大主子表关联的性能优化方法
  • 番外篇1:在Windows环境下安装JDK
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 前端之Sass/Scss实战笔记
  • 小程序button引导用户授权
  • 硬币翻转问题,区间操作
  • 在Mac OS X上安装 Ruby运行环境
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​一些不规范的GTID使用场景
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # wps必须要登录激活才能使用吗?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (day 12)JavaScript学习笔记(数组3)
  • (Python第六天)文件处理
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (五)c52学习之旅-静态数码管
  • (一一四)第九章编程练习
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Sql Server 保留几位小数的两种做法
  • (轉貼) UML中文FAQ (OO) (UML)
  • ***原理与防范
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core 管理用户机密
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • [20160807][系统设计的三次迭代]