[i.MX8M Mini 軟體構建] Android 11開發構建指南

在 Ubuntu 18.04 上構建編譯環境,按照NXP官方手册 Android User's Guide说明,安裝Linux所需要開發套件及下載android R 程式碼。
建議下載程式碼及要構建映像檔的作業系統預留450GB磁碟空間及記憶體16GB。以及相關的編譯步驟如下:

一、設置 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 發佈的套件包。從以下的下載網站,選擇”Build Sources”中的”install Sources Package”的選項的i.MX Android 原始開發包。

下載連接如下:

Android OS for i.MX Applications Processors | NXP Semiconductors

  • 複製下載的imx-android-11.0.0_2.2.0.tar.gz 軟體包到linux的編譯環境進行解壓縮:
  1. $ cd ~ // 安装路徑自行選擇
  2. $ tar xzvf imx-android-11.0.0_2.2.0.tar.gz
三、編譯 i.MX 的Android平台
  • 獲取 repo 文件
  1. $ mkdir ~/bin 
  2. $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 
  3. $ chmod a+x ~/bin/repo   
  4. $ export PATH=${PATH}:~/bin 
  5. $ source ~/ imx-android-11.0.0_2.2.0/imx_android_setup.sh

        完成後會自動生成 android_build 資料夾,所有下載的 Android 源代碼都在這個資料夾中。
       

  • 編譯 Android 映像檔
   iMX And​​roid 平台在第一次構建映像檔時需要做一些準備。鏡像構建步驟如下:

          a. 首先為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”。第一個專用於編譯裸機程序,第二個也可以用來編譯應用程序。

               文件解壓到本地磁盤上的路徑中,例如“/opt/”。導出一個名為的變量

           “AARCH64_GCC_CROSS_COMPILE”指向工具如下:
             

              前面的命令可以添加到“/etc/profile”中。當主機啟動“AARCH64_GCC_CROSS_COMPILE”是設置好就可以直接使用了。

             b. 下載完Android 源代碼後,到android_build的目錄下開始編譯映像檔。
     編譯的命令如下:
               1. $ cd android_build
               2. android_build$ source build/envsetup.sh
          3. 選擇所要編譯的對應開發平台及編譯模式。

               
               

                執行Android lunch命令, 設置為產生i.MX 8M mini EVK映像檔使用 userdebug編譯類型。

                 $lunch evk_8mm-userdebug



            4. 執行 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_8mm$ ,可用”ls”查看所生成的檔案如下。

四、 單獨編譯 U-Boot、img、Kernel、dtbo.img的指令

    如有只是修改Bootloader及 Kernel 的源代碼,可以單獨編譯出各別的映像檔。

  • 單獨編譯 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_8mm

  • 單獨編譯img

  使用如下命令來單獨編譯生成 boot.img 映像檔文件。

  1. $ source build/envsetup.sh   
  2. $ lunch evk_8mm-userdebug  
  3. $ make bootimage -j4   

  映像檔生成路徑生成路径:android_build/out/target/product/ evk_8mm

  • 單獨編譯 kernel

  使用如下命令來單獨編譯生成 kernel 映像檔文件

  1. $ cd ${MY_ANDROID}
  2. $ source build/envsetup.sh
  3. $ lunch evk_8mm-userdebug
  4. $ ./imx-make.sh kernel -c -j4   

  映像檔生成路徑: /android_build/out/target/product/evk_8mm/obj/KERNEL_OBJ'

  • 單獨編譯dtbo img

        使用如下命令來單獨編譯生成 dtbo.img 映像檔文件

        $ lunch evk_8mm-userdebug $ ./imx-make.sh dtboimage -j4

  1.  $ source build/envsetup.sh   
  2. $ ./imx-make.sh dtboimage -j4

       映像檔生成路徑:android_build/out/target/product evk_8mm

五、燒錄Android 映像檔到eMMC
  • 使用 UUU 工具燒錄(emmc)

          使用 UUU 工具燒錄步驟如下:

  1. 改變i.Mx8M Mini LPDDR4 開發板 SW1101(boot mode) 到 1010xxxxxx (1-10 bit) 進入下載模式。

       

  1. 給開發板上電,連接 USB TpyeC(下載串口)及 USB Debug 埠 到 PC 上 USB 埠。
  2. 依所使用的作業系統,選擇Android UUU 腳本檔。以Windows 作業系統為列,選用fastboot_imx_flashall.bat,相關參數可參考如下說明。

      

        另外建議可到https://github.com/NXPmicro/mfgtools/releases 下新版本uuu 執行檔,以免版本過舊無法支援。

        例如依據需求,在燒錄時帶入不同的參數。如 “-d” mipi-panel會載入官方支援的MIPI Panel device tree映像檔。
        燒錄完成全部映檔後,只要硬體有接上MIPI Panel 就可在開機後看到面板顯示Android 畫面。

  1. 所有android 映像檔的描述如下:
          
            

             Android 系統所需的映像檔如下:
             

  1. 以Windows 作業系統為例,在Windows作業系統上,以管理員模式打開命令行界面模式(Command Mode)。執行如下的命令燒錄映像檔到eMMC。

          $.\uuu_imx_android_flash.bat -f imx8mm -a -e

         燒錄完成如下所示。
         

      6下載完成後,關掉電源,將SW1101(boot mode) 改到0110110010 (1-10 bit) 進入eMMC 開機模式。透過Debug port 的 Terminal 確定開機正常。
  

六、參考文件:

  • Android_Quick_Start_Guide.pdf
  • Android_User's_Guide.pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論