完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
整个编译过程大致分为四个步骤:
1.安装相应依赖库文件,以及交叉编译工具和配置环境变量; 2.编译u-boot; 3.编译kernel; 4.编译android; 请认真阅读每个步骤上的提示,以及文件放置的相应路径。如果错误,欢迎批评指正,谢谢! 如果执行.sh 脚本出现问题,请按照步骤在终端手动执行命令。 #!/bin/bash echo ======================================= echo RK3288 Android6.0.1 源码编译 echo ======================================= echo ======如果在windows下编译执行出现‘损坏的编译器’ sed -i 's/r$//' filename.sh即可恢复正常====== echo ======.sh文件在哪个目录下执行,Android6.0.1 源码编译也在该目录下进行,本脚本默认在Android6.0.1 源码目录下执行====== echo 1.Ubuntu 12.04.5 LTS 下载安装jdk,并配置环境变量,该过程需要手动按enter键(默认下载到目录/usr/lib/jvm/java-7-openjdk-amd64 ,若要永久变量打开 vim /etc/profile进行设定) sudo apt-get install openjdk-7-jdk export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin source /etc/profile echo 2.安卓源码目录下有自带的ndk,将其复制到/usr/lib/jvm/ 目录下,添加环境变量即可使用(若要永久变量打开 vim /etc/profile进行设定) cp -a ndk /usr/lib/jvm export NDK_HOME=/usr/lib/jvm/ndk export PATH=$NDK_HOME:$PATH NDK_HOME=/usr/lib/jvm/ndk export PATH=$NDK_HOME:$PATH source /etc/profile echo 3.测试jdk、ndk是否安装成功 java -version java javac ndk-build -v echo 4.安装交叉编译工具 sudo apt-get install gcc-arm-linux-gnueabihf lzop libncurses5-dev libssl1.0.0 libssl-dev libc6:i386 zip unzip git-core gnupg flex bison gperf build-essential curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc echo 5.编译u-boot,先产生.config文件,最后产生RK3288UbootLoader_V2.30.10.bin文件 cd u-boot make rk3288_defconfig make echo 6.编译kernel(生成kernel.img 和 resource.img) cd ../kernel make rockchip_defconfig -j4 make rk3288-miniarm.img -j4 echo 7.编译android6.0.1 AOSP(在目录rockdev/Image-rk3288下生成boot.img、pcba_small_misc.img 、recovery.img、misc.img、pcba_whole_misc.img、system.img) cd .. source build/envsetup.sh lunch rk3288-userdebug make ./mkimage.sh echo 8.收集img 和 mkupdate (在目录RKTools/linux/Linux_Pack_Firmware/rockdev_rk3288下生成RK3288UbootLoader.bin 和 update.img) cd RKTools/linux/Linux_Pack_Firmware/rockdev_rk3288 ./collectImages.sh && ./mkupdate.sh echo 9.在windows 下打开 SpiImageTools.exe 加在update.img,会在当前文件夹下产生bin 档(该工具在源码目录下 RKToolswindows) echo 10.打开Win32diskImager.exe 将bin 档烧写到SD卡中,然后上电启动RK3288 echo =================================================================================== echo ============= 编译android6.0.1 AOSP 时遇到的问题以及解决方法 ====================== echo =================================================================================== echo 1)out/host/linux-x86/bin/jack: 行 131: 8399 已杀死 ERROR: Cannot launch Jack server echo 解决方法:vim $HOME/.jack(该文件在你的用户目录下) 可以把$HOME/.jack中的配置文件中的SERVER=true设成false,不用jack,jack现在还不稳定。 echo 2)out/target/common/JAVA_LIBRARIES/framwork_intermediates/with-lal/classes.dex 错误 echo 解决方法:重新编译即可。 echo 3)out/target/common/obj/JAVA_LIBRARIES/sdk_v19_intermediates/classes.jack] 错误 1 echo 解决方法:如果在虚拟机内,别使用-j 这样会导致内存不够,编译卡住或者出现错误,直接使用make即可。 echo 4)Warning: This may have produced partial or corrupted output. ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] 错误 1 echo 解决方法:打开目录:vi prebuilts/sdk/tools/jack-admin (该目录位于源码目录) echo 1.找到如下语句:JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME" echo 2.将上述语句修改为:JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME" echo 主要是添加了-Xmx4096m参数,接下来在源码目录下执行如下命令重启jack-admin服务: echo $ ./prebuilts/sdk/tools/jack-admin stop-server echo $ ./prebuilts/sdk/tools/jack-admin start-server echo 5)the required version is :1.7.x make failed to build some targets echo 解决方法:android6.0.1 必须使用1.7.x 版本的openjdk 配置图文: 1)执行完上述步骤 7 中的make 后,如果编译正常通过,将会看到如下显示; 2)执行完上述步骤 7 中的 ./mkimage.sh 后,如果编译正常通过,将会看到如下显示; 3)执行完上述步骤 8 中的 ./collectImages.sh && ./mkupdate.sh 后,如果编译正常通过,将会看到如下显示; 注意事项:1)android6.0.1 编译必须使用1.7.x 版本的openjdk ,否则会出现错误 2)如果先安装了openjdk8 ,出现错误,再安装openjdk7,安装不上,则从网上下载,将其解压到/usr/lib/jvm 目录下并配置环境变量 3) 通过下面命令从jdk7 切换到jdk8 sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-openjdk-amd64/bin/jar 300 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-openjdk-amd64/bin/javah 300 sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-openjdk-amd64/bin/javap 300 sudo update-alternatives --config java 4)通过 java -version 命令查看当前使用的jdk 版本 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
739 浏览 0 评论
968 浏览 1 评论
856 浏览 1 评论
2075 浏览 1 评论
3322 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 10:37 , Processed in 0.882376 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号