如何编译Android的kernel

 

书接上文,你想编译内核源代码,至少要先拿到源代码。

1.编译的办法基本可以参考链接:

http://www.cnblogs.com/mengshu-lbq/archive/2010/12/23/1914953.html 

最初我也奇怪为什么google没有直接准备好交叉编译工具链,我在http://blog.csdn.net/chizhaolin/archive/2010/07/08/5721539.aspx找到了一个答案:

“android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。注意:虽然Prebuilt下包含了交叉编译工具,但是编译时有可能会出现“/bin/sh: arm-eabi-gcc: not found” 这样的错误,因此最好从CodeSourcery上面下载。”

 

2.在编译的时候可能会遇到 类似main.c:704: undefined reference to `__gnu_mcount_nc' 的错误

解决办法:编译器版本不兼容,下载arm2007q3编译器 

 参考链接:http://wtxarmux.blog.163.com/blog/static/120089000201042992024562/

 

3.在编译的时候可能遇到 类似 drivers/scsi/advansys.c:9885: error: implicit declaration of function `dma_cache_sync' 的问题

解决办法: 参考链接 http://www.delnabla.cn/article.asp?id=242

 

4.在编译的时候可能遇到 类似 error: ‘PAGE_KERNEL_NOCACHE’ undeclared 的问题

解决办法: 参考链接 http://groups.google.com/group/comedi_list/msg/e6404fdd8237f6db

 

5.在修改CROSS_COMPILE=的时候,有时可能需要直接写上绝对路径,看到别人的帖子都是将arm交叉编译器的路径写到环境变量里,在我的环境里一直不好用,不知道为什么

 

另外http://wtxarmux.blog.163.com/blog/static/120089000201042992024562/  这里有很多常见的错误参考

 

官方的指导参考(用途不大) 

 http://source.android.com/porting/build_system.html#androidSourceSetupBuildingKernel

 

posted on 2013-07-11 20:32  Nickleback  阅读(164)  评论(0编辑  收藏  举报