IMX8MQ 的 Android8.1 源码编译过程记录

本篇主要是记录采用,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 "[email protected]"

$ 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启动盘记录内容。

你可能感兴趣的:(Android-系列,android)