[i.MX8M PLUS Android] Android R開發構建指南

[i.MX8M PLUS Android] Android R開發構建指南

在 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 原始開發包。
download

下載連接如下:

https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mx-applications-processors:IMXANDROID?tab=In-Depth_Tab

  • 複製下載的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源代碼
  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.0.0/imx_android_setup.sh 
       完成後會自動生成 android_build 資料夾,所有下載的 Android 源代碼都在這個資料夾下。
  • 編譯 Android 映像檔

      1 . iMX And​​roid 平台在第一次構建映像檔時需要做一些準備。鏡像構建步驟如下:
          為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”指向命令如下:
$ 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
              

  1. 執行 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、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_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
              使用如下命令來單獨編譯生成 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
            使用如下命令來單獨編譯生成 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進入下載模式。

       

    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 畫面。

           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

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

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

    評論