MY-RK3288-EK314 ANDROID5.1 编译手册
(重定向自MY-RK32-EK314 ANDROID5.1 编译手册)
目录 [隐藏]
1 安装ubuntu12.04
2 安装openjdk1.7
3 安装编译Android系统所需要的库
4 下载源码并解压源码
4.1 下载源码
4.2 解压源码
5 编译源码(Android系统)
5.1 设置环境变量
5.2 编译uboot
5.3 编译kernel
5.4 编译android源码
6 打包批量文件relase_android_update.img
6.1 编译打包工具
6.2 新建文件夹和复制镜像
6.3 打包relase_android_update.img文件
安装ubuntu12.04
(如果使用下载明远智睿的虚拟机,请直接跳到 下载源码并解压 这一节)
在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。
安装openjdk1.7
运行一下命令安装openjdk1.7
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install openjdk-7-jdk
$ sudo gedit /etc/profile
增加以下环境变量
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin
$ source /etc/profile
$ java –version
(看到版本为1.7.0_121就表示成功)
My-rk32-ek314 android 2.1.1.png
安装编译Android系统所需要的库
(详细信息,请看网站http://source.android.com/source/initializing.html)
sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos gcc-multilib ia32-libs \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \ lzop libssl1.0.0 libssl-dev
My-rk32-ek314 android 3.1.1.png
下载源码并解压源码
下载源码
登陆http://www.myzr.com.cn下载专区下载Android5.1源码
Android5.1.1的分卷压缩解压后的源码包:rk32-myzr_android5.1_20180328.tar.bz2
解压源码
$ mkdir ~/rk3288-myzr
$ tar jxvf rk32-myzr_android5.1_20180328.tar.bz2 -C ~/rk3288-myzr/
My-rk32-ek314 android 5.1.1.png
编译源码(Android系统)
设置环境变量
$ export ARCH=arm
$ export CROSS_COMPILE=~/rk3288-myzr/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
My-rk32-ek314 android 6.1.1.png
$ ${CROSS_COMPILE}gcc -v
My-rk32-ek314 android 6.1.2.png
编译uboot
进入U-BOOT代码目录
$ cd ~/rk3288-myzr/u-boot/
设置配置文件
$ make rk3288_defconfig
编译
$ make
My-rk32-ek314 android 6.2.1.png
目标文件
My-rk32-ek314 android 6.2.2.png
编译kernel
不同的显示屏类型对于不同的镜像,在下表中列出。
评估板型号 LCD 配置
MY-RK3288-EK314 LVDS(1024X600) rk3288-myzr_rh568_lvds.img
HDMI(1920X1080) rk3288-myzr_rh568_hdmi.img
EDP(1920X1080) rk3288-myzr_rh568_edp.img
进入内核代码目录
$ cd ~/rk3288-myzr/kernel/
清除内核配置
$ make distclean
My-rk32-ek314 android 6.3.1.png
设置配置文件
$ make rk3288-myzr_defconfig
My-rk32-ek314 android 6.3.2.png
编译(以LVDS为例)
$ make -j8 rk3288-myzr_rh568_lvds.img
说明:截图中使用了8线程编译。
My-rk32-ek314 android 6.3.3.png
编译完成
My-rk32-ek314 android 6.3.4.png
目标文件
kernel.img和resource.img即为编译得到的目标文件,使用ls命令可查看文件信息。
$ ls
My-rk32-ek314 android 6.3.5.png
编译android源码
设置android环境变量
$ cd ~/rk3288-myzr/
$ source build.sh
My-rk32-ek314 android 6.4.1.png
设置android版本配置
$ lunch rk3288_box-userdebug
My-rk32-ek314 android 6.4.2.png
编译
$ make -j16
说明:截图中使用了16线程编译。
My-rk32-ek314 android 6.4.3.png
编译完成
My-rk32-ek314 android 6.4.4.png
目标文件
boot.img,misc.img,kernel.img,resource.img,recovery.img,system.img即为编译得到的目标文件,使用ls命令可查看文件信息。
$ ./mkimage.sh
$ ls rockdev/Image-rk3288_box/
My-rk32-ek314 android 6.4.5.png
打包批量文件relase_android_update.img
编译打包工具
注意:如果编译了rk2918_tools.tar.bz2,就不需要重新编译了,可以跳过这个步骤。
默认复制rk2918_tools.tar.bz2到目录~/rk3288-myzr/rockdev下
$ cd ~/rk3288-myzr/rockdev
$ tar jxf rk2918_tools.tar.bz2
$ cd rk2918_tools/
$ make -j4
$ sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin/
My-rk32-ek314build 7.1.1.jpg
新建文件夹和复制镜像
rockdev/Image-rk3288_box/的文件对应烧写工具Image\android文件夹中,rk3288box-3.10-uboot-ubuntu.parameter.txt重命名为parameter,RK3288UbootLoader_V2.30.10.bin对应RKLoader.bin,update-script和recover-script在烧写工具里面复制。package-file的内容重新按对应的文件重命名,如下:
My-rk32-ek314 android 7.1.1.png
$ mkdir -p rockdev/android/Image
$ cd rockdev/android/Image/
$ cp ~/rk3288-myzr/rockdev/Image-rk3288_box/* ./
$ rm pc*
$ $ ls
My-rk32-ek314 android 7.1.2.png
打包relase_android_update.img文件
$ afptool -pack . ../update.img
$ img_maker -rk32 RKLoader.bin update.img relase_android_update.img
My-rk32-ek314 android 7.1.3.png |