[i.MX8M Mini Android] Android Q開發指南
在 Ubuntu 18.04 上搭建編譯環境,按照NXP官方手册 Android User's Guide说明,安裝Linux所需要開發套件及下載android Q 程式碼,以及相關的編譯步驟如下:
一、設置 Linux作業系統的编譯環境
sudo apt-get install uuid uuid-dev
sudo apt-get install zlib1g-dev liblz-dev
sudo apt-get install liblzo2-2 liblzo2-dev
sudo apt-get install lzop
sudo apt-get install git-core curl
sudo apt-get install u-boot-tools
sudo apt-get install mtd-utils
sudo apt-get install android-tools-fsutils
sudo apt-get install device-tree-compiler
sudo apt-get install gdisk
sudo apt-get install m4
sudo apt-get install libz-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libssl-dev
sudo apt-get install gcc-multilib
二、下載 NXP 官方i.MX 發佈的Android 套件包
安裝Linux作業系統所需的軟體套件後,在NXP官網下載 i.MX android 發佈的套件包。
- 從Android Current Release下載Build Sources:
下載連接:https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mx-applications-processors:IMXANDROID
- 直接下載imx-android-10.0.0_2.5.0.tar.gz 連接:
下載連接:https://www.nxp.com/webapp/sps/download/license.jsp?colCode=Q10.0.0_2.5.0_ANDROID_SOURCE&appType=file1&DOWNLOAD_ID=null
- 對下載的imx-android-10.0.0_2.5.0.tar.gz 軟體包進行解壓縮:
- $ cd ~ // 安装路徑自行選擇
- $ tar xzvf imx-android-10.0.0_2.5.0.tar.gz
三、編譯 i.MX 的Android平台
- 獲取 repo 文件
- $ 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-10.0.0_2.5.0/imx_android_setup.sh
完成後會自動生成 android_build 文件夾,所有下載的 Android 源代碼都在這個文件下。
- 編譯 Android 映像檔
下載完Android 源代碼後,到android_build的目錄下開始編譯映像檔,編譯的命令如下。
- $ cd android_build
- android_build$ source build/envsetup.sh
選擇所要編譯的對應開發平台。
3. 執行Android lunch命令, 設置為產生i.MX 8M Mini EVK映像檔使用 userdebug編譯類型。
$ lunch evk_8mm-userdebug
4. 執行 the imx-make.sh 腳本,產生所須的映像檔。
./imx-make.sh -j4 2>&1 | tee build-log.txt
第一次編譯需要花費較長的時間,編譯完成後的log信息會保存在build-log.txt 文件裡,檢查是否有錯誤
(error)出現。編譯生成的映像檔所在目錄: Android_Q\android_build\out\target\product\evk_8mm。
四、單獨編譯 U-Boot、img、Kernel、dtbo.img的指令
如有只是修改Bootloader及 Kernel 的源代碼,可以單獨編譯出各別的映像檔。
- 單獨編譯 U-Boot
使用如下命令來單獨編譯生成 u-boot.imx 映像檔文件。
- $ cd ${MY_ANDROID}
- $ {MY_ANDROID} $ source build/envsetup.sh
- $ lunch evk_8mm-userdebug
- $ ./imx-make.sh bootloader -j4
映像檔生成路徑:android_build/out/target/product/evk_8mm
- 單獨編譯img
使用如下命令來單獨編譯生成 boot.img 映像檔文件。
- $ source build/envsetup.sh
- $ lunch evk_8mm-userdebug
- $ make bootimage -j4
映像檔生成路徑生成路径:android_build/out/target/product/ evk_8mm
- 單獨編譯 kernel
使用如下命令來單獨編譯生成 kernel 映像檔文件。
- $ cd ${MY_ANDROID}
- $ source build/envsetup.sh
- $ lunch evk_8mm-userdebug
- $ ./imx-make.sh kernel -c -j4
映像檔生成路徑: /android_build/out/target/product/evk_8mm/obj/KERNEL_OBJ'
- 單獨編譯img
使用如下命令來單獨編譯生成 dtbo.img 映像檔文件。
- $ source build/envsetup.sh
- $ ./imx-make.sh dtboimage -j4
映像檔生成路徑:android_build/out/target/product evk_8mm
五、燒錄Android 映像檔到eMMC
- 使用 UUU 工具燒錄(emmc)
使用 UUU 工具燒錄步驟如下:
- 改變i.Mx8M Mini LPDDR4 開發板 SW1101(boot mode) 到 1010xxxxxx (1-10 bit) 進入下載模式。
- 給開發板上電,連接 USB TpyeC(下載串口)及 USB Debug 埠 到 PC 上 USB 埠。
- 解壓檔android-10.0.0_2.5.0_image_8mmevk.tar.gz ,該檔包含了映像檔及 Android UUU 腳本檔。如下描述Android 映像檔的作用。
- 從 GitHub 上下載 UUU 二進制文件,並把下載的 uuu.exe 文件放到環境變數, path 包含的系統文件路徑下,UUU連接如下:https://github.com/NXPmicro/mfgtools/releases
- 打開 PC 端命令行工具,進入到鏡像文件所在路徑,執行命令開始下載鏡像到 emmc。
有二個自動燒錄所有android 映像檔腳本如下:
- sh 為提供Linux 作業系統使用。
- bat 為提供Android 作業系統使用。
- uuu_imx_android_flash 工具的腳本選項內容如下:
- 以windows 為例,在在Windows系統上,以管理員模式打開命令行界面。執行如下的命令燒錄映像檔到eMMC。
c:> .\uuu_imx_android_flash.bat -f imx8mm -a -e
- 下載完成後,關掉電源,將SW1101(boot mode) 改到0110110010 (1-10 bit) 進入eMMC 開機模式。透過Debug port 的 Terminal 確定開機正常。
參考文件:
- Android_Quick_Start_Guide.pdf
- Android_User's_Guide.pdf