摘要: (一)编译配置时应选中以下模块:(适用2.6.30版本) 执行make menuconfig 后,找到以下选项: 1. Networking support -> Networking options -> IP:kernel level ...
(一)编译配置时应选中以下模块:(适用2.6.30版本)
执行make menuconfig 后,找到以下选项:
1. Networking support -> Networking options -> IP:kernel level autoconfiguration 将其下的IP:dhcp support....3个子项都选上了)
2. Network File Systems -> NFS client support(选中) -> Root file system on NFS(选中)
3. 网卡驱动支持: Device Drivers ->Network device support -> Ethernet(10 or 100M) 注:这里选择适合你自己的网卡驱动,如果内核没有加入网卡驱动,也许会出现错误。
(二)过程:
1. 从外网下载源代码包,我使用的2.6.30版本 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gz
2. 解压 tar -xzvf linux-2.6.30.tar.gz
3. 配置,有两种方法
a. cd到刚才解压生成的目录,执行make menuconfig在出现的菜单中,选中(一)提到的几个模块,然后退出menuconfig.
b.也可以将附件中的"2.6.30config"文件,复制到解压后的根目录,mv为.config, 然后执行make oldconfig.
- 注意1:确保有gcc
- 注意2:如果多次在同一目录下编译,则要先执行make mrproper清除之前的编译痕迹
- 注意3:如果make menuconfig错误,提示少某些包,或者用yum install 安装这个包(有外网)或者找一个rpm包手动安装(没有外网)
4. 现在可以编译了,执行make bzImage,如果成功,会在arch/x86/boot下生成bzImage文件,这就是编译好的压缩过的内核
(三)过程:
1.网卡驱动一定加入到内核,并且要选择正确的驱动,否则可能会出现以下错误: "....unable to get mountd portnumber..."
2. 最好选择与操作系统内核版本相差不多的源代码进行编译,减少出错.