[i.MX8M PLUS Android] Android R開發構建指南
在 Ubuntu 18.04 上構建編譯環境,按照NXP官方手册 Android User's Guide说明,安裝Linux所需要開發套件及下載android R 程式碼,建議下載程式碼及要構建映像檔的作業系統預留450GB磁碟空間及記憶體16GB。以及相關的編譯步驟如下:
一、設置 Linux作業系統的編輯環境
.下載 NXP 官方i.MX 發佈的Android 套件包
安裝Linux作業系統所需的軟體套件後,在NXP官方網站下載 i.MX android 發佈的套件包。從以下的下載網站,選擇”Build Sources”中的”install Sources Package”的選項的i.MX Android 原始開發包。
下載連接如下:
- 複製下載的imx-android-11.0.0_2.0.0.tar.gz 軟體包到linux的編譯環境進行解壓縮。
- $ cd ~ // 安装路徑自行選擇
- $ tar xzvf imx-android-11.0.0_2.0.0.tar.gz
- 取得 i.MX 的Android源代碼
- $ mkdir ~/bin
- $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- $ chmod a+x ~/bin/repo
- $ export PATH=${PATH}:~/bin
- $ source ~/ imx-android-11.0.0_2.0.0/imx_android_setup.sh
- 編譯 Android 映像檔
1 . iMX Android 平台在第一次構建映像檔時需要做一些準備。鏡像構建步驟如下:
為U-Boot準備構建環境。這一步是強制性的,因為在 AOSP 代碼庫中沒有 GCC 交叉編譯工具鏈。使用自安裝 GCC 交叉編譯工具鏈的方法。在arm Developer GNU-A Downloads下載GCC版本,
建議下載8.3 版本。可以下載《gcc-arm-8.3-2019.03-x86_64-aarch64-elf.tar.xz》或“gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz”。
第一個專用於編譯裸機程序,第二個也可以用來編譯應用程序。
$ export AARCH64_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-
前面的命令可以添加到“/etc/profile”中。當主機啟動“AARCH64_GCC_CROSS_COMPILE”是設置好就可以直接使用了。
2. 將目錄指到android_build的目錄下開始備準建構映像檔。
$ cd android_build
3. 在android_build的目錄構建做環境設定。 指令如下:
android_build$ source build/envsetup.sh
4. 選擇所要編譯的對應開發平台及編譯模式。
執行Android lunch命令, 本文以產生i.MX 8M Plus EVK映像檔為例,並使用 userdebug編譯類型。
$ lunch evk_8mp-userdebug
- 執行 imx-make.sh 腳本,產生所須的映像檔。
- $./imx-make.sh -j4 2>&1 | tee build-log.txt
第一次編譯需要花費較長的時間,編譯完成後的log信息會保存在build-log.txt 文件裡,檢查是否有錯誤(error)出現。
如果沒有錯誤會出現 #### build completed successfully (07:02:26 (hh:mm:ss)) #### 的訊息。
編譯生成的映像檔所在目錄 android_build/out/target/product/evk_8mp$ ,可用”ls”查看所生成的檔案如下。
- 單獨編譯 U-Boot
使用如下命令來單獨編譯生成 u-boot.imx 映像檔文件。
1.$ cd ${MY_ANDROID}
2 .$ {MY_ANDROID} $ source build/envsetup.sh
3.$ lunch evk_8mm-userdebug
4 .$./imx-make.sh bootloader -j4
映像檔生成路徑:android_build/out/target/product/evk_8mp
- 單獨編譯boot.img
使用如下命令來單獨編譯生成 boot.img 映像檔文件。
1. $ source build/envsetup.sh
2. $ lunch evk_8mm-userdebug
3. $ make bootimage -j4
映像檔生成路徑生成路径:android_build/out/target/product/ evk_8mp
- 單獨編譯 kernel
1. $ cd ${MY_ANDROID}
2. $ source build/envsetup.sh
3. $ lunch evk_8mm-userdebug
3. $ ./imx-make.sh kernel -c -j4
映像檔生成路徑: /android_build/out/target/product/evk_8mp/obj/KERNEL_OBJ'
- 單獨編譯dtbo.img
1.$ lunch evk_8mm-userdebug
2. $ ./imx-make.sh dtboimage -j4
3. $ source build/envsetup.sh
4. $ ./imx-make.sh dtboimage -j4
映像檔生成路徑:android_build/out/target/product evk_8mm
三、燒錄Android 映像檔到eMMC
- 使用 UUU 工具燒錄(emmc)
UUU 工具燒錄步驟如下:
1. 改變i.Mx8M Plus 開發板如下圖所示的Boot mode SW4[1-4]改為0001進入下載模式。
- 給開發板上電,連接 USB TpyeC(下載串口)及 USB Debug 埠 到 PC 上 USB 埠。
- 依所使用的作業系統,選擇Android UUU 腳本檔。
以Windows 作業系統為列,選用fastboot_imx_flashall.bat,相關參數可參考如下說明。另外建議可到https://github.com/NXPmicro/mfgtools/releases 下新版本uuu 執行檔,以免版本過舊無法支援。
依據需求,在燒錄時帶入不同的參數。如 “-d” mipi-panel會載入官方支援的MIPI Panel device tree映像檔。燒錄完成全部映檔後,只要硬體有接上MIPI Panel 就可在開機後看到面板顯示Android 畫面。
4. Android 系統所需的燒入的映像檔如下:
以Windows 作業系統為例,在Windows作業系統上,以管理員模式打開命令行界面模式(Command Mode)。執行如下的命令燒錄映像檔到eMMC。
$ .\uuu_imx_android_flash.bat -f imx8mp -a -e -u trusty
以上為 燒錄中的訊息。當燒錄完成會出現Done訊息,如下圖所示。
5. 關掉電源,將BOOT Mode sw4[1-4] 切換至0010 , 使用eMMC 開機。透過Debug port 的 Terminal log確定開機是否正常。或連接上HDMI , 可正常顯示Android 畫面。
四、參考文件:
- Android_Quick_Start_Guide.pdf
- Android_User's_Guide.pdf
評論