***************************************************************************************************************************
作者:EasyWave 时间:2013.01.27
类别:Android系统源码分析系列 声明:转载,请保留链接
注意:如有错误,欢迎指正。这些是我学习的日志文章......
***************************************************************************************************************************
一:引子
以手边的Andriod2.3.4和linux2.6.36版本为例,下一步自己想尝试将Android2.3.4移植到android2.3.5或者更高版本的Android4.0上来,这是后话,这里只说说,Andriod下的Linux内核的编译,需要注意的是:编译Andriod系统的Linux内核的交叉编译工具,需要用到的是:arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2,同时设置下环境变量,当然在编译的时候,手动指定交叉编译工具的路径也是可以的,如:export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,不过我在原有的Andriod下的交叉编译工具的基础上,通过重新打包,加入一个install.sh的脚本,可以让Andriod下的ARM Linux的交叉编译工具自动安装和自动设置交叉编译环境,同时对UBOOT的交叉编一环境也通过重新打包,加入一个install.sh脚本,这样方便自己快捷的安装交叉编译工具。
二:交叉编译工具安装
以S3C6410的linux2.6.36为例,如下图所示:
可以从这个网站上下载这些资料哦,安装arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 很简单,只需要执行:tar -xjvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C /. 即可。
之后设置交叉编译工具链的环境变量:export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,还有一种方法为:在Ubuntu10.04的/etc/profile.d/s3c_linux.sh文件也开始可以的。这样就不用每次都去设置环境变量了哦。看我的系统中设置如下:
在编译UBOOT的时候,需要用到的是:arm-linux-gcc-4.3.2.tgz 安装方法如:tar -xzvf arm-linux-gcc-4.3.2tgz -C /.
之后会在/usr/local/arm下会有如下的文件夹:
之后,注销Ubuntu,可以在shell下输入arm-nono-linux-guneabi-gcc -v测试是否安装成功,图片如下:
这要是能够看到这个,就说明Linux内核的交叉编译工具安装成功了。之后,下载android2.3_kernel解压到想要的目录下,我的如下:
之后在shell下输入make命令,[因为,我已经配置好了内核,不需要去做make xxx_defconfig之类的事情]即可,编译出来的内核如下:
这个跟其它的ARM下的linux的编译没有任何差别,只是交叉编译工具会有一些不同。。。。。