[i.MX8M Mini Android] Android Q開發指南

[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 軟體包進行解壓縮:
  1. $ cd ~ // 安装路徑自行選擇
  2. $ tar xzvf imx-android-10.0.0_2.5.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-10.0.0_2.5.0/imx_android_setup.sh

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

  • 編譯 Android 映像檔

  下載完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. 執行 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 映像檔文件。

  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'

  • 單獨編譯img

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

  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-10.0.0_2.5.0_image_8mmevk.tar.gz ,該檔包含了映像檔及 Android UUU 腳本檔。如下描述Android 映像檔的作用。

         
     

  1. 從 GitHub 上下載 UUU 二進制文件,並把下載的 uuu.exe 文件放到環境變數, path 包含的系統文件路徑下,UUU連接如下:https://github.com/NXPmicro/mfgtools/releases
  2. 打開 PC 端命令行工具,進入到鏡像文件所在路徑,執行命令開始下載鏡像到 emmc。

   有二個自動燒錄所有android 映像檔腳本如下:
     

  • sh 為提供Linux 作業系統使用。
  • bat 為提供Android 作業系統使用。
  • uuu_imx_android_flash 工具的腳本選項內容如下:
  • 以windows 為例,在在Windows系統上,以管理員模式打開命令行界面。執行如下的命令燒錄映像檔到eMMC。

     c:> .\uuu_imx_android_flash.bat -f imx8mm -a -e

           

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



參考文件:

  • Android_Quick_Start_Guide.pdf
  • Android_User's_Guide.pdf

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

★博文作者未開放評論功能