惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
H
Heimdal Security Blog
罗磊的独立博客
B
Blog RSS Feed
WordPress大学
WordPress大学
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
美团技术团队
量子位
GbyAI
GbyAI
Recent Announcements
Recent Announcements
博客园 - 叶小钗
D
DataBreaches.Net
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
Webroot Blog
Webroot Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
V
V2EX
N
News and Events Feed by Topic
Jina AI
Jina AI
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
IT之家
IT之家
C
Check Point Blog
H
Hacker News: Front Page
爱范儿
爱范儿
Schneier on Security
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 最新话题
Forbes - Security
Forbes - Security
人人都是产品经理
人人都是产品经理
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
The Cloudflare Blog
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
V2EX - 技术
V2EX - 技术
AI
AI

陈陈菌博客

如何在 podman 容器内使用 systemd 在 podman 运行 GUI 应用的经验总结 管理 podman 容器与镜像的导入或导出 用 xdg-dbus-proxy 解决容器的文件选择器的问题 解决 VSCodium 或 Code-Server 无法安装 GitHub Copilot 问题 不可变发行版 Fedora Silverblue 的体验记录 解决 apt 或 dnf 无法 tab 补全的问题 对 (MPA) 多页面切换实现丝滑动画的探索 让服务在非 Root 权限下使用 80 或 443 端口 AppImage 应用打包快速上手 Flatpak 使用和应用打包快速上手 如何用 webSocket 实现一个实时聊天应用 使用 debootstrap 构建 Debian 系根文件系统 高度可定制的 KDE 窗口装饰器 klassy 有关 docker、podman、nspawn、bwrap 的 Linux 容器图形性能测试 创建任意 Linux 容器并支持 GUI 程序 (Docker) 创建任意 Linux 容器并支持 GUI 程序 (nspawn) 文件同步工具 rsync 的使用 玲珑 (Linyaps) 应用打包 RPM 打包指南 | 精简版 PBR 材质的各种贴图类型入门 APU | Stable-Diffusion 使用记录 如何在 Electron 上启用 WebGPU Grub 主题安装与配置 Fcitx5 主题安装与自定义 不使用 Nginx 的网站开发指南 如何自制一个简易的资源监控程序 SQL 常用 CRUD 语法记录 Debian 打包入门,与需要注意的问题 在 fedora 建立一个 Arch 容器 (bwrap) 在 fedora 上建立一个 debian 容器 (bwrap) i3wm | 自制一个极简的屏幕亮度调节器 在 Linux 下启用内存压缩技术 zram 搭建一个本地轻量级聊天 Ai 我又又又重新上线了博客 如何通过命令行管理 wine 容器 (包括 proton) Btrfs 文件系统创建 swap 文件的方法 如何创建适用于 Linux 桌面的程序启动文件 在 Linux 控制 intel CPU 调度的方法 Arch Linux 的基本安装
Linux 内核编译 | 快速上手 | deb
GlumiStudio@ · 2025-11-10 · via 陈陈菌博客

2025-11-10 17:42:29

分类: Linux


编译内核这件事可能让没接触过的人听起来很复杂,但实际上非常简单。首先前往 https://www.kernel.org/ 网站获取 Linux 内核源码,直接下载解压。

拿到源码后,先 cd 进源码目录,第一步是内核编译配置,一般可以使用 make defconfig 来生成当前架构的默认内核配置,再接着编辑源码目录下的 .config 文件(具体条目可查资料了解)

make olddefconfig 基于已有的 config (保留旧内核配置中仍有效的选项,去除已废弃的配置项)

也可以使用 make menuconfig 基于现有内核配置使用 TUI 来选择需要的模块,如果不存在则会类似 make defconfig 一样生成默认配置。

再或者使用更为精简的 make localmodconfig,基于当前系统所使用的内核模块来生成配置。

不过在做操作前我们最好装一些重要的依赖包和基础工具及头文件,如:

sudo apt install git make build-essential bison flex libncurses5-dev ncurses-dev libelf-dev libssl-dev bc zstd linux-headers-$(uname -r)

PS: (如果遇到仍缺少依赖的报错,可自行斟酌安装相关包并继续操作)

编译 / 安装


在完成配置后,在源码目录下执行以下命令即开始编译。

make -j cpu线程数

等待编译完成后,安装内核也很简单,只需要两行,如果需要加快速度也可以加入 -j 参数

sudo make install
sudo make modules_install

其中,modules_install 是安装内核模块,这是必须的,固件和驱动都在里面,缺少将无法正常工作。它们一般会装在 /lib/modules/ 下,而内核 (initrd,vmlinuz) 则一般安装在 /boot 下。

将内核构建为 deb / rpm 包


如果你想通过包管理去安装和管理内核,也可以无视以上三步,直接使用以下命令来编译并构建包出来, deb 的话它们会默认放在当前路径的上一层目录。rpm 则在 源码目录的 rpmbuild/RPMS/ 下面

# deb
make bindeb-pkg
# rpm
make binrpm-pkg