分类: LINUX
2011-03-27 01:54:18
1. 从下载需要的内核。
2. 将下载的压缩包解压至任意目录:tar –jxvf xxx.bz2。
3. 进入源代码根目录,执行 make mrproper 清理上次编译遗留产物。执行 make mrproper 即可(个人认为首次编译无需执行),不用执行 make clean,可以了解下区别:make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块; make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件; make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。(引用至:http://blogold.chinaunix.net/u2/86696/showart_2254009.html)
4. 执行 make oldconfig(本质上是:cp /boot/config-($uname -r) .config) 或 make menuconfig 或 make xconfig 或 make config。配置内核,将在源代码根目录下生成 .config 文件。配置及注意事项请见http://blog.csdn.net/tobeabetterman_he/archive/2006/12/13/1441447.aspx。
5. 执行 make 进行内核编译(2.6以上内核已用make 包含了make dep,make bzImage等命令)。
6. 执行 make modules 进行已经选择的模块的编译。
7. 执行 make modules_install 将编译后的模块转移到系统标准位置。若过程中报错:[_modinst_post] Error 137,有可能是由于swap不足导致,可在执行过程中使用free查看swap的使用来确定(另外一说:也可能是由于关闭了selinux,导致无法写入/lib/modules/$(version))。解决方法:增加swap的大小,建议2G以上,具体添加方法请见:http://hi.baidu.com/javapu/blog/item/4a0c4e2b325848365343c115.html。
8. 执行 make install 一般情况下,会修改grub,无需手动修改。