讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么编译内核_Linux如何从源码构建Linux内核【方法】

酷宇大大_7566

酷宇大大_7566

发布时间:2026-03-20 22:05:31

|

1001人浏览过

|

来源于php中文网

原创

95%的普通用户无需手动编译内核,仅调试、特定驱动、实时性调优或学习时才需编译;须用kernel.org纯净源码,严格配置必要选项,安装modules、vmlinuz及initramfs三者缺一不可,启动失败优先检查initramfs和根设备驱动。

linux怎么编译内核_linux如何从源码构建linux内核【方法】

确认你真需要自己编译内核

95% 的普通用户不需要手动编译内核——发行版自带的 linux-image 或 kernel-devel 包已足够稳定、安全且适配硬件。自己编译通常只在以下场景必要:调试内核 bug、启用某个未合入主线的驱动(如某些新显卡固件)、做实时性调优(PREEMPT_RT)、或学习内核机制。盲目编译不仅耗时(单核编译常超 30 分钟),还容易导致无法启动、Wi-Fi 失效、声卡无声等“开机即跪”问题。

常见错误现象:init: failed to spawn '/sbin/init': No such file or directory(配置漏选 CONFIG_INITRAMFS_SOURCE 或 initramfs 未生成);Kernel panic - not syncing: VFS: Unable to mount root fs(没编译对应磁盘控制器驱动,或 root= 参数写错)。

从官网源码开始,别用 distro 的 patch 套餐

直接下载 kernel.org 的纯净源码(如 linux-6.11.tar.xz),解压后进目录。别用 Ubuntu/Arch 的 linux-source 包或打过 vendor patch 的树——它们隐藏了大量发行版定制逻辑,会让你搞不清哪些是上游行为、哪些是 hack。

实操建议:

  • 用 make mrproper 清空旧配置痕迹,再开始
  • 优先用 make menuconfig,而非 make defconfig:后者生成的最小配置缺 USB、缺 ext4、缺网卡,根本跑不起来
  • 必须勾选:CONFIG_BLK_DEV_SD=y(SATA/USB 存储)、CONFIG_EXT4_FS=y(根文件系统)、CONFIG_DEVTMPFS=y(/dev 自动挂载)
  • 不确定的驱动,选 m(模块)比 y(内置)更安全:出问题可 blacklist,不会卡在启动早期

编译过程的关键参数和陷阱

make -j$(nproc) 是基本操作,但别无脑加 -j16:内存不足时会 OOM kill 编译进程,表现为 cc: fatal error: Killed signal terminated program cc1。2GB 内存机器建议用 -j2,8GB 以上才放心用 -j$(nproc)。

编译完必须安装三样东西,缺一不可:

  • make modules_install:把 .ko 文件拷到 /lib/modules/$(uname -r)
  • make install:拷贝 vmlinuz 和 System.map 到 /boot,并尝试更新 grub(但常失败,别依赖它)
  • 手动生成 initramfs:update-initramfs -c -k 6.11.0(Debian/Ubuntu)或 dracut --force --regenerate-all(RHEL/Fedora)——这是最常被跳过的步骤,也是启动失败的头号原因

注意:make install 不会自动改 grub.cfg,你得手动确认 /boot/vmlinuz-6.11.0 和对应 initramfs 是否存在,并在 /etc/default/grub 中补上 GRUB_DISABLE_OS_PROBER=false(多系统时)再 update-grub。

启动失败后怎么快速定位

别急着重装,先按住 Shift(BIOS)或 Esc(UEFI)进 grub 菜单,按 e 编辑启动项,在 linux 行末尾加 systemd.log_level=debug 或 initcall_debug,再 Ctrl+X 启动。关键线索藏在最后几行:

  • 卡在 Starting Kernel → 配置漏了 CONFIG_INITRAMFS_SOURCE 或 initramfs 损坏
  • 卡在 Waiting for /dev/disk/by-uuid/xxx → 根设备驱动没编译进内核(查 dmesg | grep -i ahci 看 SATA 控制器是否识别)
  • 进系统但无网络 → lspci -k 看网卡用哪个驱动,再查 lsmod | grep xxx 确认模块是否加载,没加载就 modprobe xxx 测试,成功后加进 /etc/modules

真正麻烦的不是编译,是每次改配置后都要重装模块、重做 initramfs、重更新 grub——漏一步,前面两小时全白干。留个心眼:每次 make menuconfig 后,用 cp .config ~/config-6.11.0-good 备份,比重配快十倍。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

989

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3020

2023.10.25

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

610

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

343

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

513

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

283

2025.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

357

2023.12.07

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4170

2023.06.21

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn