裁剪(裁剪内核)是指在不破坏系统功能的前提下,移除内核中不必要的模块或代码,以减小内核大小、提高启动速度和节省内存。以下是裁剪 Linux 内核的常见方法和步骤:
✅ 一、准备环境
-
安装内核源码包:
sudo apt-get update sudo apt-get install build-essential linux-headers-$(uname -r) -
获取内核源码:
git clone https://github.com/torvalds/linux.git cd linux -
配置内核:
make menuconfig或使用
make xconfig等工具进行配置。
✅ 二、裁剪内核
方法 1:使用 make defconfig + make menuconfig(推荐)
-
生成默认配置:
make defconfig -
进入配置界面:
make menuconfig -
禁用不必要的模块:
- 例如禁用
netfilter、ipv6、sound、usb等模块。 - 选择
Kernel Features->Device Drivers->[*]选择要保留的驱动。
- 例如禁用
-
保存并编译:
make -
生成裁剪后的内核镜像:
make modules_install make install
方法 2:使用 make clean + make + make modules_install(直接编译)
make clean
make
make modules_install
✅ 三、安装裁剪后的内核
-
将裁剪后的内核文件复制到
/boot目录:sudo cp arch/arm64/boot/Image /boot/vmlinuz- -
更新 grub 配置:
sudo update-grub
✅ 四、验证裁剪效果
✅ 五、注意事项
- 备份原内核:在裁剪前,建议备份原内核,避免误操作导致系统不稳定。
- 模块优先级:在
menuconfig中,模块的优先级(depends)会影响裁剪结果。 - 测试环境:建议在测试环境中进行裁剪,避免影响生产系统。
✅ 其他方法(推荐使用 make defconfig + make menuconfig)
这是最常见的裁剪方法,适合大多数用户,可以灵活控制哪些模块保留。
如需进一步了解如何裁剪特定模块(如 net、sound、usb 等),可以告诉我具体需求,我可以提供更详细的指导。
如需帮助生成脚本自动化裁剪过程,请告知。


