概述:
本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。
ubuntu主机端设置
1. ubuntu 20.04
1. 450G Free Disk space
2. 16GB RAM以上
3. 安装
sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git curl u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison flex make libssl-dev gcc-multilib libgnutls28-dev swig liblz4-tool libdw-dev dwarves bc cpio tar lz4 rsync ninja-build clang libelf-dev build-essential libncurses5 clang-11 lld-11
Android 10代码的同步
1、 mkdir IMX8M_Android10
2、cd IMX8M_Android10
3、进入Q10.0.0_2.6.0_ANDROID_SOURCE
网站下载源码 imx-android-10.0.0_2.6.0.tar.gz,
4、解压下载的源码到IMX8M_Android10文件夹
tar -xvf imx-android-10.0.0_2.6.0.tar.gz -C IMX8M_Android10
5.执行 source ~imx-android-10.0.0_2.6.0/imx_android_setup.sh 进行源码同步
注: 因为imx8mp Android10源码大部分托管到了github网站,因此同步imx8mp相关部分,需要有能访问github的能力
Android 10 安装编译工具
从Downloads | GNU-A Downloads – Arm Developer网站下载
1、aarch32 GCC工具
下载:gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz
解压
sudo tar -xvf gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz -C /opt
2、aarch64 GCC工具
下载 gcc-arm-8.3-2019.02-x86_64-aarch64-linux-gnu.tar.xz
解压
sudo tar -xvf gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz -C /opt
3、在Android 10源码,修改imx-make.sh文件。增加如下修改:
export AARCH32_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-eabi/bin/arm-eabi-
export AARCH64_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-
编译步骤
除了编译uboot和kernel外,Android镜像的编译,可以使用通用版本的编译命令;
其中MY_ANDROID为Android10源码路径
编译Android 全部镜像
$ cd ${MY_ANDROID}
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh -j4
等价于如下的操作:
$ cd ${MY_ANDROID}
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh bootloader kernel -j4
$ make -j4
编译U-boot
$ cd ${MY_ANDROID}
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh bootloader -j4
编译内核
$ cd ${MY_ANDROID}
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh kernel -c -j4
编译bootimage
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh bootimage -j4
编译dtbo.img
$ source build/envsetup.sh
$ lunch evk_8mp-userdebug
$ ./imx-make.sh dtboimage -j4
烧写步骤
1. 从github下载uuu工具
https://github.com/nxp-imx/mfgtools/releases
chmod a+x uuu
cp uuu /usr/bin
生效如下:
emmc的烧写
1. 板子进入Serial Download Mode
2. 板上上电
3. 在镜像生成目录out/product/target执行
sudo ./uuu_imx_android_flash.sh -f imx8mp -e -u dual -d lvds-panel
烧写参数说明,请查看uuu_imx_android_flash.sh脚本文件,有详细的描述。