guides14/guides内核编译教程:从零开始定制你的Linux内核
为什么要定制Linux内核?
编译内核能让你打造既精简又功能丰富的系统,测试补丁和优化,真正掌控你的Linux体验。无论你是想为旧硬件创建轻量级内核,还是为高性能工作站添加特定驱动,本指南都能帮你从零开始完成整个过程。
准备工作
开始前请确保:
- 已安装内核源码和构建工具
- 拥有root或sudo权限
- 备份所有重要文件
- 准备好Live CD/USB作为应急工具
查看当前内核版本:
uname -r
检查硬件信息(有助于确定需要哪些驱动):
lspci -k # 显示硬件及使用的内核模块
lsmod # 列出当前加载的内核模块
获取内核源码
下载源码
从kernel.org获取最新稳定版内核:
wget https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/snapshot/linux-stable-rc-<VERSION>.tar.gz
tar -xvzf linux-<VERSION_NUMBER>.tar.xz
cd linux-<VERSION_NUMBER>/
清理源码目录
如果是重新编译,清理之前的编译文件:
make clean # 清理编译文件,保留配置
make mrproper # 彻底清理,包括配置文件(需备份配置)
生成配置文件
配置文件(.config)决定内核包含哪些功能和驱动,有多种生成方式:
选项1:使用当前系统配置
cp -v /boot/config-$(uname -r) .config
# 或从运行中的内核获取
zcat /proc/config.gz > .config
选项2:默认配置
make defconfig # 生成默认配置
选项3:最小化配置
make localmodconfig # 仅包含当前加载的模块
make tinyconfig # 超小配置,需手动添加必要功能
配置内核(可选)
通过菜单界面定制内核功能:
make menuconfig
在菜单中:
Y或*:将功能直接编译进内核M:编译为可加载模块N或空格:不包含该功能
按H查看帮助,按/搜索功能,完成后保存配置。
编译内核
快速编译(推荐)
make -j $(nproc) all modules_install install
-j $(nproc):使用所有CPU核心加速编译all:同时编译内核和模块modules_install:安装模块install:安装内核到/boot目录
分步编译(适合学习)
- 编译内核镜像:
make -j $(nproc) bzImage
- 安装内核:
make install
- 编译并安装模块:
make -j $(nproc) modules
make modules_install
生成initramfs
initramfs包含启动必需的驱动和工具:
# 使用mkinitrd
mkinitrd -o /boot/initrd.img
# 或使用update-initramfs
update-initramfs -u
应用内核补丁(高级)
内核补丁能添加新功能或优化性能,常用补丁包括:
- Kernel_gcc_patch:启用额外CPU优化
- Linux-rt:实时内核补丁
- Liquorix:桌面和游戏优化内核
应用补丁示例:
cd /usr/src/linux-<VERSION_NUMBER>
wget <PATCH_URL>
patch -p1 < <PATCH_FILE>
编译单个模块
无需重新编译整个内核,可单独编译模块:
cd linux-<VERSION_NUMBER>/
make modules_prepare
make M=<模块目录>
cp <模块目录>/<模块名>.ko /lib/modules/$(uname -r)/
depmod -a
使用DKMS自动更新模块
DKMS能在内核更新时自动重新编译模块:
- 创建DKMS配置文件:
mkdir /usr/src/<MODULE>-<VERSION>/
vi /usr/src/<MODULE>-<VERSION>/dkms.conf
- 配置文件内容:
PACKAGE_NAME="<MODULE>"
PACKAGE_VERSION="<MODULE_VERSION>"
BUILT_MODULE_NAME[0]="<MODULE>"
DEST_MODULE_LOCATION[0]="/kernel/<SECTION>/<MODULE>/"
AUTOINSTALL="yes"
- 安装模块:
dkms add -m <MODULE> -v <MODULE_VERSION>
dkms build -m <MODULE> -v <MODULE_VERSION>
dkms install -m <MODULE> -v <MODULE_VERSION>
完成与测试
编译安装完成后,重启系统并在引导菜单选择新内核:
shutdown -r now
验证新内核是否正常运行:
uname -r
如需回滚,可在引导菜单选择旧内核。更多高级配置和故障排除技巧,请参考项目文档:KERNEL.md 和 INSTALLATION.md。
祝你享受定制内核带来的强大控制力!🚀
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



