【ATU Book - i.MX8系列 - OS】NXP i.MX Android BSP 开发环境架设

一、概述

谈论嵌入式系统的开发环境,不得不提起近年来相当实用的 Yocto 建构工具。此工具拥有极为灵活的平台扩展性,广泛的软体套件与社群支持、多平台支援整合性,能够满足开发者特定需求和多种热门的嵌入式系统架设,已成为当今顶尖的架构工具。然而,Android 开发环境亦有自生原生的建构工具,而本章节就是要带领读者快速应用 Android 开源工具来快速布署恩智浦 NXP i.MX8 系列的开发环境,透过此博文即可轻松实现任何有关 i.MX8 的环境架设 !!



若读者想要更快速进入到 NXP 平台的实作中,可以至官方网站下载官方发行的 Android 映像档(Image)。
Android OS for i.MX Applications Processors | NXP Semiconductors

 

 

 

二、快速环境架设

1.  Android BSP 必要软体安装

(1) 更新套件 : 

$ sudo apt-get upgrade


(2) 安装必要套件 :

$ sudo apt-get install uuid uuid-dev zlib1g-dev liblz1 liblz-dev liblzo2-2 liblzo2-dev lzop u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison-doc 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


(3) 下载 GCC 交叉编译工具 : 下载连结

$ mkdir _gcc
$ cd _gcc
$ sudo tar -xvJf gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz

各版本对应的 Uboot / GCC 版本 :

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结


(4) 下载 Clang 编译器架构 :

$ cd < root / anywhere >
$ mkdir -p _clang/prebuilt-android-clang
$ sudo git clone https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86 _clang/prebuilt-android-clang
$ cd _clang/prebuilt-android-clang
$ sudo git checkout d20e409261d6ad80a0c29ac2055bf5c3bb996ef4


(5) 下载 Android Kernel Build Tools 工具 :

$ cd < root / anywhere >
$ mkdir -p _android_kernel_tool/prebuilt-android-kernel-build-tools
$ git clone https://android.googlesource.com/kernel/prebuilts/build-tools _android_kernel_tool/prebuilt-android-kernel-build-tools
$ cd _android_kernel_tool/prebuilt-android-kernel-build-tools
$ sudo git checkout e3f6a8c059b94f30f7184a7d335876f8a13a2366


(6)
设定 Git 帐号 :

$ git config --global user.name "user name"
$ git config --global user.email "user.name@wpi-group.com"

绿色字体须自行更新为相应的字串,例如 : user name 须改为 weilly.li


(7)
设置 repo环境 :

$ cd ~
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~ /bin/repo
$ export PATH=~/bin:$PATH

 

2.  Android BSP 编译开发环境

本篇将使用 最新版本NXP i.MX 8M Plus 平台来演示如何‘架设 Android BSP 环境’。 读者仅需要准备一台电脑以及容量保留 500GB以上的 Ubuntu OS 20.02 系统,并跟着下列步骤,即可轻松架设编译环境以及产生映像档(Image)

(1)  建立资料夹,并移动至该资料夹中 :

$ cd <root/anywhere>
$ mkdir <Android BSP Project>
$ cd <Android BSP Project>

 

(2) 下载套件 imx-android-13.0.0_2.2.0.tar.gz 至 <Android BSP Project> 中,并进行解压缩:

$ cp xzvf imx-android-13.0.0_2.2.0.tar.gz <Android BSP Project>
$ tar xzvf imx-android-13.0.0_2.2.0.tar.gz

请至 官方网站 点选 “ Install Source Package ”下载档案

 

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结



(3) 下载 Android BSP 相关套件 :

$ cd imx-android-13.0.0_2.2.0
$ source imx_android_setup.sh

 运行画面 : 

 

(4) Android BSP 环境设定 :

$ cd android_build 
$ export AARCH64_GCC_CROSS_COMPILE=/bsp/_gcc/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf-
$ export CLANG_PATH=/bsp/_clang/prebuilt-android-clang
$ export PATH=/bsp/_android_kernel_tool/prebuilt-android-kernel-build-tools/linux-x86/bin:$PATH
$ source build/envsetup.sh

 

(5) Android BSP 编译 :

$ lunch evk_8mp-userdebug
$./imx-make.sh -j4 2>&1 | tee build-log.txt

其他平台设置方式 : 

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结

 

 详细资讯,请参考来源出处Android_User's_Guide之 5.1 章节 (+)

 

其他模式设置方式 :

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结

 

 

运行画面 :


编译生成的映像档所在目录 android_build/out/target/product/evk_8mp

 

3.  Android BSP 烧录方式

烧录映像档(Image) 至 NXP 嵌入式的平台方法有很多种,建议主要有三种方式,分别为 Linux 指令烧录方式、UUU 烧录软体、第三方烧录软体。 然而, Android OS 只能使用 Linux 指令烧录方式 与 UUU 的方式进行烧录,本文章范例皆以 SD Card 的烧录方式为主,若欲了解其他储存装置,请参考 UUU 的操作方式。


烧录前,请确认 Boot Switch 开关拨片位置是否正确。如下图,若欲使用 eMMC 方式开机则须设置至 0010 ,反之 SD Card 方式开机则须设定至 0011。

 

 

(1) Linux 指令

●  请将 SD Card 连接至 PC 端 (Linux 环境),并确认所在的路径位置
 $ ls /dev/sd*

● 烧录 Image 档至 SD Card 中 :

sudo ${MY_ANDROID}/device/nxp/common/tools/imx-sdcard-partition.sh -f  <soc_name> /dev/sdX

 由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结


(2) UUU 烧录软体

● 请开启 PowerShell 输入下列指令,将相关档案移动至资料夹中 :

$ scp -P 10001 -r weilly@10.20.7.3: <Android BSP Project>/out/target/product/evk_8mp/*.img .
$ scp -P 10001 -r weilly@10.20.7.3: <Android BSP Project>/out/target/product/evk_8mp/*.bin .
$ scp -P 10001 -r weilly@10.20.7.3: <Android BSP Project>/out/target/product/evk_8mp/*.bat .
$ scp -P 10001 -r weilly@10.20.7.3: <Android BSP Project>/out/target/product/evk_8mp/*.imx .

 若无此档案,请至官方网站下载 Demo Image

 

● 请先至 NXP github 下载最新的 UUU 1.5.141.exe 工具,并移动至映像档资料夹中。

https://github.com/nxp-imx/mfgtools/releases

 

● 请将 Boot Switch 切换至 Serial Download 模式,并以 USB Type-C 将 EVK 与 PC 端连结后。即可开启电源,输入下列指令确认是否有顺利连接至 PC 端 :

.\uuu.exe -lsusb

装置连接成功  : 

Connected Known USB Devucs
Path Chip Pro Vid Pid BdVersion
==============================================
1:18 FB: 0x1FC9 0x0152 0x0223

 

● 烧录 Image 档至 SD Card 中 :

$ .\uuu_imx_android_flash.bat -f imx8mp -a -e -t sd

烧录完成后,请将  Boot Switch 切换至 SD Card 模式
透过此方式亦可烧录至 emmc , qspi , spl 等储存空间,更多细节可以参考 【ATU Book-i.MX8系列】 UUU(Universal Update Utility)

  

 4.  运行 Android OS

 依上述步骤,就是制作完成一张专属于 Android OS 的 SD Card . 最后仅需要将 SD Card 、萤幕与 HDMI 连接至开发板,并开启电源后,等待数秒后,即可看到以下画面 !

 

 
顺带一提,将 Micro USB 传输线连接至开发板后,并搭配 Putty 或 Telent 等虚拟化终端机软体,即可进入到 EVK 的系统中进行操作。

evk_8mp:/ ls
bin dev odm_dlkm sys
bugreports etc oem system
cache init postinstall system_dlkm
config init.environ.rc proc system_ext
d linkerconfig product vendor
data metadata sdcard vendor_dlkm

 

  

 三、参考文件

[1] Android User's Guide

[2] i.MX 8 Series Applications Processors Multicore Arm® Cortex® Processors

[3] NXP Document - i.MX Yocto Project User's Guide.pdf

[4] Welcome to the Yocto Project Documentation

[5] NXP Document - i.MX Linux Release Note

如有任何相关 OS 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 OS 的技术文章 !!敬请期待 ATU Book-i.MX8系列 - OS !!


★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论