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

Linux内核编译安装 - Deepin,Debian系

为什么要自己编译内核

优点

  • 定制化:你可以根据自己的硬件和需求配置内核,去掉不必要的模块,优化性能。
  • 性能优化:移除不需要的驱动程序和特性,减小内核体积,提高系统性能。
  • 最新特性和修复:获取最新的内核版本和特性,或者提前应用一些补丁。
  • 学习机会:通过编译内核,可以更深入地理解Linux的内部工作机制。

缺点

  • 复杂性:编译和配置内核需要较高的技术水平,过程复杂且容易出错。
  • 时间消耗:编译内核是一个耗时的过程,尤其是在资源有限的系统上。
  • 维护成本:自己编译的内核需要手动更新和维护,缺乏自动化工具的支持。
  • 兼容性问题:手动配置不当可能导致硬件或软件兼容性问题,需要仔细测试。

我的感受是

  • 了解到内核相关的知识,内核配置过程可以通过Kernelconfig.io[^4]网站查询。
  • 提前使用到最新版本的内核,不用等论坛大佬的更新:
    在这里插入图片描述
  • 内核体积大大缩小: 在这里插入图片描述

过程

下载

网站下载linux内核源码[^1] [^2],并解压,进入源码目录;
linux内核:https://www.kernel.org/
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/

安装依赖

参考脚本安装依赖[^3];

sudo apt install git wget fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison zstd debhelper

配置文件

  1. 使用现有配置文件dppve.config[^3]
cp /xxx/dppve.config .config
  1. 精简(可选)
    先让系统尽可能多地加载模块,使用工具自动保留已加载的模块[^5] [^6],可以精简掉巨量不需要的模块和驱动;

尤其是驱动,不精简时执行make可以发现,make过程里的大部分时间都是在编译drivers开头的文件;

make localmodconfig
  1. 手动调整配置(可选)
make menuconfig
  1. 使用ccache加速多次编译(可选)
    安装配置ccache[^7] [^8];
sudo apt-get install ccache
export CC="ccache gcc"
export CXX="ccache g++" 

编译

这个步骤很慢,网友讲可能需要1-3个小时;
可能是我直接在实体机上编译的原因,我第一次编译大约花费25分钟;
经过localmodconfig精简、ccache后,后续编译时间一般在2-8分钟,感觉很快;

make -j$(nproc)

打包deb

make bindeb-pkg

安装文件在源码文件夹同级目录生成

默认配置生成的通用linux-image deb文件约80M,localmodconfig精简后约20M;

在这里插入图片描述

安装

安装软件包[^9],linux-libc-dev可不安装;

# 查看
ls -lh ../linux-*.deb
# 安装
dpkg -i ../linux-*.deb

启用

可使用grub-customizer管理grub配置,更换内核加载
列表
在这里插入图片描述
设置
在这里插入图片描述

References

[^1]. The Linux kernel archives. (n.d.). https://www.kernel.org/
[^2]. 8.10. 编译内核. (n.d.). https://www.debian.org/doc/manuals/debian-handbook/sect.kernel-compilation.zh-cn.html
[^3]. kernel_config · AtomGit_开放原子开源基金会代码托管平台. (n.d.). https://atomgit.com/fslong/kernel_config/
[^4]. Kernelconfig.io. (n.d.). https://www.kernelconfig.io/index.html
[^5]. Linux 内核编译 —— make localmodconfig 简化内核配置流程-CSDN博客. (n.d.). https://blog.csdn.net/maijian/article/details/6202426
[^6]. 精简LINUX内核配置及快速编译的方法汇总_linux 最小配置 快速编译-CSDN博客. (n.d.). https://blog.csdn.net/exiaoqian/article/details/42522653
[^7]. 使用 ccache 加速内核编译. (n.d.). https://www.expoli.tech/articles/2023/07/06/Use-ccache-to-speed-up-kernel-compilation
[^8]. Linux 5.10.20 上使用ccache加快内核编译速度(安装配置及使用方法)_kernel-5.10编译慢-CSDN博客. (n.d.). https://blog.csdn.net/weixin_48299611/article/details/115563624
[^9]. 查看、安装、卸载内核-论坛-深度科技. (n.d.). https://bbs.deepin.org/post/243646

http://www.lryc.cn/news/401624.html

相关文章:

  • 安全防御,防火墙配置NAT转换智能选举综合实验
  • 追溯源码观察HashMap底层原理
  • 为什么渲染农场渲染的是帧,而不是视频?
  • windows镜像下载网站
  • ollama + fastgpt 搭建免费本地知识库
  • pytorch中一些最基本函数和类
  • 排序——归并排序及排序章节总结
  • python的readline()和readlines()
  • 【ARM】使用JasperGold和Cadence IFV科普
  • 深入探讨极限编程(XP):技术实践与频繁发布的艺术
  • 【代码随想录_Day30】1049. 最后一块石头的重量 II 494. 目标和 474.一和零
  • 【时时三省】tessy 集成测试:小白入门指导手册
  • 通过vagrant与VirtualBox 创建虚拟机
  • 第13章 更多的结构化命令《Linux命令行与Shell脚本编程大全笔记》
  • 【计算机网络】学习指南及导论
  • 安装mitmproxy失败
  • 安装adb和常用命令
  • C++ 几何计算库
  • 云动态摘要 2024-07-16
  • 数仓工具—Hive基础之临时表及示例
  • 机体坐标系和导航坐标系
  • 软件测试——web单功能测试
  • django-ckeditor富文本编辑器
  • 鸿蒙模拟器(HarmonyOS Emulator)Beta申请审核流程
  • VUE:跨域配置代理服务器
  • Redis实战—附近商铺、用户签到、UV统计
  • 小程序里面使用vant ui中的vant-field组件,如何使得输入框自动获取焦点
  • Html_Css问答集(12)
  • 【C语言】条件运算符详解 - 《 A ? B : C 》
  • 乘积量化pq:将高维向量压缩 97%