IMX8MP Android 10系统编译SDK

概述:

本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。

ubuntu主机端设置

  1. ubuntu 20.04

  2. 450G Free Disk space

  3. 16GB RAM以上

  4. 安装

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脚本文件,有详细的描述。

相关推荐
xzkyd outpaper35 分钟前
Android中APK包含哪些内容?
android
蹦极的考拉35 分钟前
网站日志里面老是出现{pboot:if((\x22file_put_co\x22.\x22ntents\x22)(\x22temp.php\x22.....
android·开发语言·php
安卓开发者2 小时前
Android Glide最佳实践:高效图片加载完全指南
android·glide
菠萝加点糖3 小时前
Android 使用MediaMuxer+MediaCodec编码MP4视频
android·音视频·编码
雨白4 小时前
手写 MaterialEditText:实现浮动标签(Floating Label)效果
android
CYRUS_STUDIO5 小时前
使用 readelf 分析 so 文件:ELF 结构解析全攻略
android·linux·逆向
小强开学前7 小时前
WebView 静态页面秒加载方案要点
android·webview
纽马约7 小时前
Android Room的使用详解
android
游戏开发爱好者88 小时前
基于uni-app的iOS应用上架,从打包到分发的全流程
android·ios·小程序·https·uni-app·iphone·webview
深盾科技8 小时前
Android Keystore签名文件详解与安全防护
android·安全·gitee