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

相关推荐
黄林晴6 小时前
Android CLI 1.0 稳定版发布!官方为 AI Agent 打造专属验证工具,改完自动校验
android
氦客7 小时前
Android Compose 图层的合成 : BlendMode
android·compose·jetpack·layer·blendmode·graphics·图层的合成
Sahadev_7 小时前
GitMemo 安卓版发布了:现在可以随时随地查看和记录自己的笔记
android·笔记·创业创新
龙之叶8 小时前
Android 12:在 ActivityStarter 层拦截分享、搜索与 HTTP 外链
android·chrome·http
牛奔8 小时前
Android 开发通用解决方案:使用 ADB 彻底卸载已安装 App(解决版本降级安装失败问题)
android·adb
tryqaaa_9 小时前
学习日志(三)【php语法学习,iscc校赛wp】
android·网络协议·学习·安全·web安全·web
plainGeekDev9 小时前
Kotlin协程面试题:suspend原理都说不清,协程你真会用?
android·面试·kotlin
Kapaseker9 小时前
Android 官方开始拥抱 WebView
android
ujainu小10 小时前
CANN hixl:大模型 PD 分离场景的零拷贝通信库
android·java·缓存
专注VB编程开发20年10 小时前
b4a用VB语言开发安卓APP-图片缩放库ZoomImageView讲解-双指缩放 + 单指拖动核心源码
android·java·前端