概述
备注:在window7系统下,安装VMWorkstation(虚拟机),在虚拟机中安装了ubuntu16.04desktop版本linux系统,进行android源码编译的。编译android源码,最好是以root权限运行,不然很多东西需要授权(麻烦)。进入root身份方式:首先输入su root,接着输入密码(已经设定好的)。如果没有设定过root 密码,请这样操作:sudo passwd root, 接着输入密码,根据提示。一般输入两次,密码就设定好了。下次su root,再输入你设定的密码,即提升到root权限了。
1、安装OpenJDK8
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
2、配置Ubuntu16_04版本环境
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install lzop
sudo apt-get update
假设你已经下载好了Android7.1.2源码,当前你正在源码的根目录下!
3、编译u-boot
cd u-boot/
make rk3288_secure_defconfig
./mkv7.sh
4、编译kernel
cd ../kernel/
make rockchip_defconfig ARCH=arm
make rk3288-miniarm.img ARCH=arm
5、3、编译AOSP
cd ..
source build/envsetup.sh
lunch rk3288-userdebug
make
6、将编译的结果打包成update.img, 生成映像文件到sd卡,然后将sd卡放到tinker-borad的tf卡槽,给tinkerboard上电。
(该步骤可参考我的这个博客,https://blog.csdn.net/qq_41811438/article/details/100022365,希望可以帮助到你。)
备注:以上过程中,可能会遇到的问题及解决方法。
1、错误提示: Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
解决方法是:打开prebuilts/sdk/tools目录下的jack-admin文件,修改下面这句:
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"
改成如下:
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m}"
接着关闭jack-server(执行下面这句指令):
./prebuilts/sdk/tools/jack-admin kill-server
再接着开启jack-server(执行下面这句指令):
./prebuilts/sdk/tools/jack-admin start-server
如此即可。
2、错误提示 :ninja: fatal: fork: Cannot allocate memory
解决之道:执行下面一句指令
prebuilts/misc/linux-x86/ccache/ccache -M 50G
然后接着,执行make, 继续编译即可。
3、错误提示:communicate with jack-server Error.
解决之道:修改 ~/.jack-settings 中的 SERVER_PORT_SERVICE 和 SERVER_PORT_ADMIN 以及 ~/.jack-server/config.properties 中的 jack.server.service.port 和 jack.server.admin.port。确保如下两点:
(1)、SERVER_PORT_SERVICE 等于 jack.server.service.port
(2)、 SERVER_PORT_ADMIN 等于 jack.server.admin.port
如此一来,即可解决这个问题。
备注:这四个端口号的取值范围为(0 ~ 65535)
举例说明,当前我的配置如下,
~/.jack-settings 中的设定:
# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=55772
SERVER_PORT_ADMIN=55773
# Internal, do not touch
SETTING_VERSION=4
~/.jack-server/config.properties 中的设定:
#
#Thu Aug 22 13:29:42 CST 2019
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=55772
jack.server.max-service.by-mem=1=2147483648:2=3221225472:3=4294967296
jack.server.admin.port=55773
jack.server.config.version=2
jack.server.time-out=7200
4、jack-server的关闭与开启指令如下:
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
---- The End.
最后
以上就是俏皮大叔为你收集整理的华硕Tinker Board开发板(rk3288处理器)开发 ---- 编译Android7.1.2源码流程的全部内容,希望文章能够帮你解决华硕Tinker Board开发板(rk3288处理器)开发 ---- 编译Android7.1.2源码流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复