内核编译实验环境:Ubuntu 10.04 内核版本 2.6.32-36-generic
一、内核编译的准备工作:
1。使用root用户,方便以后操作
jb@jb-laptop:~$ su密码:
root@jb-laptop:/home/jb#
2。查看自己内核版本,以便选择新编译版本
root@jb-laptop:/home/jb# uname -r
2.6.32-36-generic
root@jb-laptop:/home/jb#
3。下载升级版本源码,供编译使用
下载链接:http://www.kernel.org/pub/linux/kernel/v2.6/
http://www.kernel.org
格式选择:gz和bz2
都可以,bz2的压缩程度高一点,只是解压缩命令不一样而已
4。解压缩源码
root@jb-laptop:/home/jb# tar -zxvf linux-2.6.38.8.tar.gz
如果是bz2格式的话使用 tar -jxvf linux.tar.bz2
5。复制源码到 目录/usr/src/下
root@jb-laptop:/home/jb# mv linux-2.6.38.8 /usr/src/
二、开始编译内核:
1。检查有无不正确的.o文件和依赖关系: make mrproper (其实这一步可以省略,因为是刚下载好的源码,一定是干净的;如果使用的是已经编译过的code,则需要做这一步)
2。配置Kernel选项:make menuconfig (这一步很重要,它决定了你可以个人定制化你的Kernel。当你使用menuconfig时,会有一些选择列出来) 主列表如下:
General Setup: 常规的配置,比如Kernel config, CPU Group,Aduiting等等
Loadable module support: 定制你要加载哪些modules
Enable the block layer: 主要是块设备和大文件的设置
Processor type and features: 处理器配置和定制化
Power management options: 电源管理的定制化,比如Hibernate这样的
Bus options: PCI总线的定制
Executable file formats: 主要是设置ELF的配置
Networking support: 定制网络选项,包括Wireless,Bluetooth和Network选项
Device Drivers: 定制你需要加载的设备驱动
Fireware Drivers: BIOS和EFI这样的固件驱动设置
File System: 文件系统的设置,包括EXT3, EXT4, FAT, CD/DVD...等等N种
Kernel hacking: 主要是设置Kernel debugging的,做内核调试会有用
Security options: 安全选项
Cryptographic API: 加密设置,包括MD5, SHA1, CRC等等N种加密算法的配置
Virtualization: 虚拟化设置
Library routines: 主要定制CRC校验的function
上面是16大项,每一项都有N多小项,说真的这个里面每一项都够研究一阵子的。不过对内核编译而言,你可以全部采用默认选项(会延长编译时间)。设置好了menuconfig,保存退出。
如果出现下面的错误: