英蓓特Mars board的android4.0.3源码编译过程
作者:StephenZhu(大桥++) 2013年8月22日
若要转载,请注明出处
一、编译环境搭建及要点:
1. 虚拟机软件virtual box 4.2.16
2. 虚拟机装操作系统 ubuntu10.04 32bit版
3. 虚拟机内存1.792GB, 硬盘500GB(未必用上这么多,使用动态模式)
4. JDK 这个稍麻烦点,针对android4.0.3,一定要安装jdk.6.0_31。因为官方ubuntu已经没有合适的源了, 所以要自己去Oracle官方下载安装包jdk-6u31-linux-i586.bin, 下载下来放到/opt 目录下,
chmod +x jdk-6u31-linux-i586.bin
./jdk-6u31-linux-i586.bin 解压安装,会生成jdk1.6.0_31目录
接下来设置环境变量,改/etc/profile 见以下第二节第2点
5. 其它包
这一点和google官方讲的不太一样,因为官方是用ubuntu10.04的64位版,而我们是32位版,所以会少装几个与32位有关的包,具体如下
#apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
最后发现还要加一个
#apt-get install ncurses5-dev
6. 推荐使用root用户登录
$sudo passwd
提示输入密码,请输入密码,然后登出系统,使用root登录
二、编译过程
1. 下载源码android-imx6-r13.3.tar.bz2,解压,使用tar jxvf android-imx6-r13.3.tar.bz2,例如我解压到
/home/stephen/androidembestMars/
2. 设置PATH, 改/etc/profile 在最后面添加以下代码
#set java environment 设置JAVA的环境变量
export JAVA_HOME=/opt/jdk1.6.0_31
export JRE_HOME=/opt/jdk1.6.0_31/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#set mkimage env 设置mkimage等bin文件的环境变量
export MKIMAGE_HOME=/home/stephen/androidembestMars/android-imx6-r13.3 这是源码解压的主目录
export PATH=$PATH:$MKIMAGE_HOME/bootable/bootloader/uboot-imx/tools 设置mkimage等bin文件的老窝路径
export JAVA_HOME=/opt/jdk1.6.0_31
export JRE_HOME=/opt/jdk1.6.0_31/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#set mkimage env 设置mkimage等bin文件的环境变量
export MKIMAGE_HOME=/home/stephen/androidembestMars/android-imx6-r13.3 这是源码解压的主目录
export PATH=$PATH:$MKIMAGE_HOME/bootable/bootloader/uboot-imx/tools 设置mkimage等bin文件的老窝路径
编辑完成后在当前命令窗口执行一下,以便让环境变量生效
source /etc/profile
3. 编译的具体命令
以同一命令窗口下,执行
#source build/envsetup.sh
#lunch marsboard_6q-user 有兴趣可以lunch下,看看所有的程序
#make -j4
编译过程用了5个小时. 机器配置为i5 3210双核4线程,虚拟机1.792GB内存
编译结果显示:
Install system fs image: out/target/product/marsboard_6q/system.img
out/target/product/marsboard_6q/system.img+out/target/product/marsboard_6q/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p total size is 210424497
out/target/product/marsboard_6q/system.img+out/target/product/marsboard_6q/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p total size is 210424497
这是多么激动人心啊
查看一下输出的文件
root@stephen-vbox:/home/stephen/androidembestMars/android-imx6-r13.3# ls out/target/product/marsboard_6q/*.img
out/target/product/marsboard_6q/boot.img
out/target/product/marsboard_6q/ramdisk.img
out/target/product/marsboard_6q/ramdisk-recovery.img
out/target/product/marsboard_6q/recovery.img
out/target/product/marsboard_6q/system.img
out/target/product/marsboard_6q/userdata.img
out/target/product/marsboard_6q/boot.img
out/target/product/marsboard_6q/ramdisk.img
out/target/product/marsboard_6q/ramdisk-recovery.img
out/target/product/marsboard_6q/recovery.img
out/target/product/marsboard_6q/system.img
out/target/product/marsboard_6q/userdata.img
几大image都有了:
boot.img , system.img, system.img
另外还有
uboot.bin.
完成了,bingo!