【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

PS : 詳細 Boot Switch模式切換,請參考 i.MX_Linux_Users_Guide 4.5.11 章節

裝置連接成功  : 

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次,發文人進小黑屋喔~

評論