一、概述
谈论嵌入式系统的开发环境,不得不提起近年来相当实用的 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 指令
$ 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
三、参考文件
[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】 !!
评论