上篇文章我们讲述了如何定制Linux外围文件系统,本文我们来讲讲如何定制Linux内核。
思路
- 对照windows硬件设备管理器检视设备配置:CPU、硬盘控制器、网络控制器、USB控制器(HID、Mass storage);
- 先将裁完的内核搭配原文件系统观察系统能否启动,能启动后再换成自制文件系统;
- 不一次性裁完,一个模块一个模块裁,每裁完一个模块编译一次观察系统是否能够启动;
- 先裁确定的部分,不确定的模块先不裁,将确定的都裁完后,再单独将不确定的选项添加进去进行编译,观察系统能否启动。
Step1
下载最新的稳定版Linux kernel src。
Step2
解压之后输入下列命令进行配置:
代码语言:javascript复制make menuconfig
部分模块选择:
Step3
配置好之后会生成.config
文件,然后输入命令(用4个处理器同时编译):
make –j4
进行编译,等待编译完成后,输入命令:
代码语言:javascript复制make modules_install
在/lib/modules/
目录下生成内核版本的模块驱动,拷贝到bootmini/lib/modules/
对应目录下。然后输入命令:
make install
生成编译完成的内核,拷贝到/boot
目录下,并修改/boot/grub/grub.conf
中小系统对应的内核,即可利用新编译的内核启动。
真机效果
1. 网络功能(ifconfig 和 ping)
2. 系统支持通过ssh方式访问其他机器
总结
- 裁剪内核的过程中首先应该把完全能够确定要或不要的模块删掉或加进内核,再慢慢将不确定的模块少量甚至单独加进去,编译安装观察是否能够重启,否则一次性全部裁完发现kernel panic了完全不知道哪里错了。
- 万一kernel panic了,解决方案是重开一个虚拟机,将原系统的硬盘挂载到新开的虚拟机里,就可以看到原系统的文件系统了。