“MYZR-RK3288-EK314 ANDROID5.1 编译手册”的版本间的差异
第1行: | 第1行: | ||
<div> | <div> | ||
− | =安装ubuntu12.04 | + | =安装ubuntu12.04= |
(如果使用下载明远智睿的虚拟机,请直接跳到 下载源码并解压 这一节)<br> | (如果使用下载明远智睿的虚拟机,请直接跳到 下载源码并解压 这一节)<br> | ||
− | |||
在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。<br> | 在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。<br> | ||
− | |||
− | =安装openjdk1.7 | + | =安装openjdk1.7= |
运行一下命令安装openjdk1.7<br> | 运行一下命令安装openjdk1.7<br> | ||
− | |||
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"<br> | sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"<br> | ||
sudo apt-get update<br> | sudo apt-get update<br> | ||
sudo apt-get install openjdk-7-jdk<br> | sudo apt-get install openjdk-7-jdk<br> | ||
$ sudo gedit /etc/profile<br> | $ sudo gedit /etc/profile<br> | ||
+ | |||
增加以下环境变量<br> | 增加以下环境变量<br> | ||
− | |||
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/<br> | export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/<br> | ||
export JRE_HOME=$JAVA_HOME/jre<br> | export JRE_HOME=$JAVA_HOME/jre<br> | ||
第22行: | 第19行: | ||
$ source /etc/profile<br> | $ source /etc/profile<br> | ||
$ java –version<br> | $ java –version<br> | ||
+ | |||
(看到版本为1.7.0_121就表示成功)<br> | (看到版本为1.7.0_121就表示成功)<br> | ||
− | |||
[[文件:my-rk32-ek314_android_2.1.1.png]]<br> | [[文件:my-rk32-ek314_android_2.1.1.png]]<br> | ||
− | =安装编译Android系统所需要的库 | + | =安装编译Android系统所需要的库= |
(详细信息,请看网站http://source.android.com/source/initializing.html)<br> | (详细信息,请看网站http://source.android.com/source/initializing.html)<br> | ||
− | + | 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<br> | |
− | + | [[文件:my-rk32-ek314_android_3.1.1.png]]<br> | |
− | |||
− | =下载源码并解压源码 | + | =下载源码并解压源码= |
− | ==下载源码 | + | ==下载源码== |
登陆http://www.myzr.com.cn下载专区下载Android5.1源码<br> | 登陆http://www.myzr.com.cn下载专区下载Android5.1源码<br> | ||
− | |||
Android5.1.1的分卷压缩解压后的源码包:rk32-myzr_android5.1_20180328.tar.bz2<br> | Android5.1.1的分卷压缩解压后的源码包:rk32-myzr_android5.1_20180328.tar.bz2<br> | ||
− | |||
− | ==解压源码 | + | ==解压源码== |
$ mkdir ~/rk3288-myzr<br> | $ mkdir ~/rk3288-myzr<br> | ||
$ tar jxvf rk32-myzr_android5.1_20180328.tar.bz2 -C ~/rk3288-myzr/<br> | $ tar jxvf rk32-myzr_android5.1_20180328.tar.bz2 -C ~/rk3288-myzr/<br> | ||
[[文件:my-rk32-ek314_android_5.1.1.png]]<br> | [[文件:my-rk32-ek314_android_5.1.1.png]]<br> | ||
− | =编译源码(Android系统) | + | =编译源码(Android系统)= |
− | ==设置环境变量 | + | ==设置环境变量== |
$ export ARCH=arm<br> | $ export ARCH=arm<br> | ||
$ export CROSS_COMPILE=~/rk3288-myzr/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-<br> | $ export CROSS_COMPILE=~/rk3288-myzr/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-<br> | ||
第56行: | 第50行: | ||
[[文件:my-rk32-ek314_android_6.1.2.png]]<br> | [[文件:my-rk32-ek314_android_6.1.2.png]]<br> | ||
− | ==编译uboot | + | ==编译uboot== |
+ | |||
*进入U-BOOT代码目录<br> | *进入U-BOOT代码目录<br> | ||
− | |||
$ cd ~/rk3288-myzr/u-boot/<br> | $ cd ~/rk3288-myzr/u-boot/<br> | ||
*设置配置文件<br> | *设置配置文件<br> | ||
− | |||
$ make rk3288_defconfig<br> | $ make rk3288_defconfig<br> | ||
*编译<br> | *编译<br> | ||
− | |||
$ make<br> | $ make<br> | ||
[[文件:my-rk32-ek314_android_6.2.1.png]]<br> | [[文件:my-rk32-ek314_android_6.2.1.png]]<br> | ||
*目标文件<br> | *目标文件<br> | ||
− | |||
[[文件:my-rk32-ek314_android_6.2.2.png]]<br> | [[文件:my-rk32-ek314_android_6.2.2.png]]<br> | ||
− | ==编译kernel | + | ==编译kernel== |
不同的显示屏类型对于不同的镜像,在下表中列出。<br> | 不同的显示屏类型对于不同的镜像,在下表中列出。<br> | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !span style="color:#FFFFFF;background:#000080"|评估板型号 | + | !span style="color:#FFFFFF;background:#000080"|评估板型号 |
!span style="color:#FFFFFF;background:#000080"|LCD | !span style="color:#FFFFFF;background:#000080"|LCD | ||
− | !span style="color:#FFFFFF;background:#000080"|配置 | + | !span style="color:#FFFFFF;background:#000080"|配置 |
|- | |- | ||
|rowspan=3|MY-RK3288-EK314 | |rowspan=3|MY-RK3288-EK314 | ||
第95行: | 第86行: | ||
*进入内核代码目录<br> | *进入内核代码目录<br> | ||
− | |||
$ cd ~/rk3288-myzr/kernel/<br> | $ cd ~/rk3288-myzr/kernel/<br> | ||
*清除内核配置<br> | *清除内核配置<br> | ||
− | |||
$ make distclean<br> | $ make distclean<br> | ||
[[文件:my-rk32-ek314_android_6.3.1.png]]<br> | [[文件:my-rk32-ek314_android_6.3.1.png]]<br> | ||
*设置配置文件<br> | *设置配置文件<br> | ||
− | |||
$ make rk3288-myzr_defconfig<br> | $ make rk3288-myzr_defconfig<br> | ||
[[文件:my-rk32-ek314_android_6.3.2.png]]<br> | [[文件:my-rk32-ek314_android_6.3.2.png]]<br> | ||
*编译(以LVDS为例)<br> | *编译(以LVDS为例)<br> | ||
− | |||
$ make -j8 rk3288-myzr_rh568_lvds.img<br> | $ make -j8 rk3288-myzr_rh568_lvds.img<br> | ||
说明:截图中使用了8线程编译。<br> | 说明:截图中使用了8线程编译。<br> | ||
− | |||
[[文件:my-rk32-ek314_android_6.3.3.png]]<br> | [[文件:my-rk32-ek314_android_6.3.3.png]]<br> | ||
*编译完成<br> | *编译完成<br> | ||
− | |||
[[文件:my-rk32-ek314_android_6.3.4.png]]<br> | [[文件:my-rk32-ek314_android_6.3.4.png]]<br> | ||
*目标文件<br> | *目标文件<br> | ||
− | |||
kernel.img和resource.img即为编译得到的目标文件,使用ls命令可查看文件信息。<br> | kernel.img和resource.img即为编译得到的目标文件,使用ls命令可查看文件信息。<br> | ||
− | |||
$ ls <br> | $ ls <br> | ||
[[文件:my-rk32-ek314_android_6.3.5.png]]<br> | [[文件:my-rk32-ek314_android_6.3.5.png]]<br> | ||
− | ==编译android源码 | + | ==编译android源码== |
+ | |||
*设置android环境变量<br> | *设置android环境变量<br> | ||
− | |||
$ cd ~/rk3288-myzr/<br> | $ cd ~/rk3288-myzr/<br> | ||
$ source build.sh<br> | $ source build.sh<br> | ||
[[文件:my-rk32-ek314_android_6.4.1.png]]<br> | [[文件:my-rk32-ek314_android_6.4.1.png]]<br> | ||
+ | |||
*设置android版本配置<br> | *设置android版本配置<br> | ||
− | |||
$ lunch rk3288_box-userdebug <br> | $ lunch rk3288_box-userdebug <br> | ||
[[文件:my-rk32-ek314_android_6.4.2.png]]<br> | [[文件:my-rk32-ek314_android_6.4.2.png]]<br> | ||
+ | |||
*编译<br> | *编译<br> | ||
− | |||
$ make -j16<br> | $ make -j16<br> | ||
说明:截图中使用了16线程编译。<br> | 说明:截图中使用了16线程编译。<br> | ||
− | |||
[[文件:my-rk32-ek314_android_6.4.3.png]]<br> | [[文件:my-rk32-ek314_android_6.4.3.png]]<br> | ||
+ | |||
*编译完成<br> | *编译完成<br> | ||
− | |||
[[文件:my-rk32-ek314_android_6.4.4.png]]<br> | [[文件:my-rk32-ek314_android_6.4.4.png]]<br> | ||
*目标文件<br> | *目标文件<br> | ||
− | + | ||
boot.img,misc.img,kernel.img,resource.img,recovery.img,system.img即为编译得到的目标文件,使用ls命令可查看文件信息。<br> | boot.img,misc.img,kernel.img,resource.img,recovery.img,system.img即为编译得到的目标文件,使用ls命令可查看文件信息。<br> | ||
− | |||
$ ./mkimage.sh<br> | $ ./mkimage.sh<br> | ||
$ ls rockdev/Image-rk3288_box/<br> | $ ls rockdev/Image-rk3288_box/<br> | ||
第149行: | 第130行: | ||
− | =打包批量文件relase_android_update.img | + | =打包批量文件relase_android_update.img= |
− | ==编译打包工具 | + | ==编译打包工具== |
注意:如果编译了rk2918_tools.tar.bz2,就不需要重新编译了,可以跳过这个步骤。<br> | 注意:如果编译了rk2918_tools.tar.bz2,就不需要重新编译了,可以跳过这个步骤。<br> | ||
− | |||
默认复制rk2918_tools.tar.bz2到目录~/rk3288-myzr/rockdev下<br> | 默认复制rk2918_tools.tar.bz2到目录~/rk3288-myzr/rockdev下<br> | ||
− | |||
$ cd ~/rk3288-myzr/rockdev<br> | $ cd ~/rk3288-myzr/rockdev<br> | ||
$ tar jxf rk2918_tools.tar.bz2<br> | $ tar jxf rk2918_tools.tar.bz2<br> | ||
第164行: | 第143行: | ||
− | ==新建文件夹和复制镜像 | + | ==新建文件夹和复制镜像== |
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的内容重新按对应的文件重命名,如下:<br> | 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的内容重新按对应的文件重命名,如下:<br> | ||
− | + | ||
[[文件: my-rk32-ek314_android_7.1.1.png]]<br> | [[文件: my-rk32-ek314_android_7.1.1.png]]<br> | ||
第177行: | 第156行: | ||
− | ==打包relase_android_update.img文件 | + | ==打包relase_android_update.img文件== |
$ afptool -pack . ../update.img <br> | $ afptool -pack . ../update.img <br> | ||
$ img_maker -rk32 RKLoader.bin update.img relase_android_update.img<br> | $ img_maker -rk32 RKLoader.bin update.img relase_android_update.img<br> | ||
[[文件: my-rk32-ek314_android_7.1.3.png]]<br> | [[文件: my-rk32-ek314_android_7.1.3.png]]<br> | ||
+ | |||
</div> | </div> |
2018年7月27日 (五) 11:31的版本
目录
安装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
安装编译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
下载源码并解压源码
下载源码
登陆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/
编译源码(Android系统)
设置环境变量
$ export ARCH=arm
$ export CROSS_COMPILE=~/rk3288-myzr/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
$ ${CROSS_COMPILE}gcc -v
编译uboot
- 进入U-BOOT代码目录
$ cd ~/rk3288-myzr/u-boot/
- 设置配置文件
$ make rk3288_defconfig
- 编译
- 目标文件
编译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/
- 清除内核配置
- 设置配置文件
- 编译(以LVDS为例)
$ make -j8 rk3288-myzr_rh568_lvds.img
说明:截图中使用了8线程编译。
- 编译完成
- 目标文件
kernel.img和resource.img即为编译得到的目标文件,使用ls命令可查看文件信息。
$ ls
编译android源码
- 设置android环境变量
$ cd ~/rk3288-myzr/
$ source build.sh
- 设置android版本配置
- 编译
- 编译完成
- 目标文件
boot.img,misc.img,kernel.img,resource.img,recovery.img,system.img即为编译得到的目标文件,使用ls命令可查看文件信息。
$ ./mkimage.sh
$ ls rockdev/Image-rk3288_box/
打包批量文件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/
新建文件夹和复制镜像
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的内容重新按对应的文件重命名,如下:
$ mkdir -p rockdev/android/Image
$ cd rockdev/android/Image/
$ cp ~/rk3288-myzr/rockdev/Image-rk3288_box/* ./
$ rm pc*
$ $ ls
打包relase_android_update.img文件
$ afptool -pack . ../update.img
$ img_maker -rk32 RKLoader.bin update.img relase_android_update.img