我是靠谱客的博主 俏皮大叔,最近开发中收集的这篇文章主要介绍华硕Tinker Board开发板(rk3288处理器)开发 ---- 编译Android7.1.2源码流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

备注:在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源码流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部