3.3 编译系统内核
当配置完成并保存退出后就要重新编译系统内核。系统一般会在配置结束时提示要进行make dep操作。
运行带有 clean 和 dep 选项的 make 文件以清除过时的目标文件并建立合适的独立性(如果要正确编译代码,必须要满足该要求)。命令为:
make dep
make clean
如果没有出现错误提示,就可以运行make zImage 命令,该命令将在/usr/src/linux-2.4.20-8/arch/i386/boot 目录下生成一个全新的内核。该内核文件名称为 zImage ,使用中注意大小写。
如果给内核添加了许多驱动程序或各种各样的支持,可能需要使用 make bzImage 命令,该命令可以制作出一个很大的内核映象文件,该文件可以带所有的选项进行启动。一般当编译的内核较大时系统会推荐内核命名为bzImage。
如果看到类似于以下的提示信息,就表示已经完成了内核创建工作。
Root device is (3,1)
Boot sector xxx bytes.
Setup is xxxx bytes.
System is xxx kB
Sync
Make[1]:Leaving directory ‘/usr/src/linux-2.4.20-8/arch/i386/boot ’
这时在 /usr/src/linux-2.4.20-8/arch/i386/boot 目录下生成一个zImage或bzImage文件;如果没有这个文件说明编译中有错误,导致编译错误的原因可能有:
⑴内核配置有问题,应重新配置后再编译。
⑵核源代码有问题,应尽量选用稳定的内核(版本号为偶数)版本。
⑶文件连接的问题。
⑷系统硬件的兼容性问题也可能导致内核编译失败。
内核编译完成后,由于有些模块并没有编译进内核、而是通过加载的(选择“m”);所以需要编译、安装模块。命令为:
make modules
make modules_install
重新编译内核的过程,会花费比较多的时间;具体的时间取决于你选择内核的大小、处理器的速度等因数。一般在嵌入式系统中内核比较精悍,编译过程会比较快;另外、如果没