本篇主要是记录采用,nxp 官方开发板 MEK-IMX8MQ 搭建 android8.1 系统的工作记录,以防备忘。
环境说明
虚拟机 ubuntu-20-64 系统。
step 1: Installing necessary software packages
#sudo apt-get install flex bison gperf build-essential tofrodos python-markdown libxml2-utils xsltproc
# sudo apt-get install zlib1g-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev
# sudo apt-get install uuid-dev:i386 liblzo2-dev:i386 uuid uuid-dev
# sudo apt-get install gcc-multilib g++-multilib
# sudo apt-get install openssh-server openssh-client
# sudo apt-get install liblzo2-2 liblzo2-dev lzop zlib1g-dev liblz-dev
# sudo apt-get install git-core curl subversion
# sudo apt-get install u-boot-tools mtd-utils device-tree-compiler
# sudo apt-get install android-tools-fsutils
# sudo apt-get install openjdk-8-jdk
# sudo apt-get install aptitude
# sudo aptitude install libcurl4-openssl-dev nss-updatedb
step 2: 下载 O8.1.0_1.3.0_ANDROID_SOURCE_8MQ_GA 补丁文件
https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mx-applications-processors:IMXANDROID?tab=Design_Tools_Tab
选择 O8.1.0_1.3.0_ANDROID_SOURCE_8MQ_GA 文件下载,此文件是NXP的 android8.1 补丁文件,和源码下载
相关脚本文件。
step 3. Getting repo
搭建数据仓库环境
$ cd ~
$ mkdir bin
$ cd bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=${PATH}:~/bin
step 4. Modifying repo File 更新源
更新清华安卓源
Open ~/bin/repo file with ‘gedit’ and Change google address
From
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
To
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
step 5、配置 github 账户信息
$ git config --global user.email "xxxx@nxp.com"
$ git config --global user.name "xxxx"
[ Email & Name should be yours]
step 6. Modifying android setup script and Running it
打开 ~/ imx-o8.1.0_1.3.0_8m /imx_android_setup.sh 文件,并找到 if ~ fi 的内容:
...
if [ "$rc" != 0 ]; then
echo "---------------------------------------------------"
echo "-----Repo Init failure"
echo "---------------------------------------------------"
return 1
fi
# 增加内容如下
find -name 'aosp-O8.1.0-1.3.0.xml'| xargs perl -pi -e 's|https://android.googlesource.com/|https://aosp.tuna.tsinghua.edu.cn/|g'
fi
step 7. 下载数据仓储中android源文件和 i.mx8 的补丁文件
cd ~/
source ~/ imx-o8.1.0_1.3.0_8m/imx_android_setup.sh
如果下载失败,请解决此问题后、在向下进行。
step 8. 修改 jack-server 服务参数
$ export MY_ANDROID=~/android_build
$ cd ~/android_build
$ gedit ./prebuilts/sdk/tools/jack-admin
And find “JACK_SERVER_COMMAND” ,change it to be:
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
修改 -Xmx4096M 内存。
step 9 . 编译 android 系统.
# source build/envsetup.sh
# lunch evk_8mq-userdebug
# make –j4
nxp 官网上描述,需要导出环境变量,在编译。因 envsetup.sh 中有环境变量设置,可以不导出、直接编译。
export ARCH=arm64\
export CROSS_COMPILE=~/android_build/prebuilts/gcc/linux-x86/aarch64/aarch64-linuxandroid-4.9/bin/aarch64-linux-android-\
export LC_ALL=C
export MY_ANDROID=~/android_build
uboot 源码的位置
android_build/vendor/nxp-opensource/uboot-imx
kernel 源码的位置
android_build/vendor/nxp-opensource/kernel_imx
整个过程还算顺利,主要就是同步数据仓库时,因为网络问题,文件下载会失败。下面会分享 制作 android sd启动盘记录内容。