使用參考板

您可以使用 Android 開源項目 (AOSP) 構建和相關的硬件特定二進製文件為 Nexus 和 Pixel 設備創建構建。有關可用的 Android 版本和目標設備,請參閱源代碼標籤和版本

您還可以為DragonBoard 845cHiKey 960Khadas VIM3Qualcomm Robotics Board RB5 Android 參考板創建構建版本,這些參考板旨在幫助非移動組件供應商開發和移植驅動程序到 Android 版本。使用參考板可以簡化升級工作,縮短新 Android 設備的上市時間,通過使 ODM/OEM 能夠從更廣泛的兼容組件中進行選擇來降低設備成本,並提高組件供應商的創新速度。

Google 支持DragonBoard 845cHiKey 960Khadas VIM3Qualcomm Robotics Board RB5 Android 參考板。 AOSP 為這些板提供內核源代碼和板支持,因此開發人員可以輕鬆地創建和調試外圍驅動程序、進行內核開發以及執行其他任務,而減少 OEM 負擔。

龍板 845c

DragonBoard 845c 是 RB3 平台的一部分,可從96boards.org 獲得

龍板圖像

圖 1. DragonBoard 845c

編譯用戶空間

使用以下命令在 DragonBoard 845c 上下載和構建 Android。

  1. 下載 Android 源代碼樹:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下載當前的供應商包:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. 構建 AOSP:

    . ./build/envsetup.sh
    lunch db845c-userdebug
    make -j24
    

安裝本地鏡像

  1. 引導 db845c 進入快速引導模式。

  2. 運行以下命令:

    ./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
    

如有必要,您可以通過在 USB 閃存模式下啟動 db845c 後運行以下腳本來執行 QDL 板恢復(請參閱DragonBoard 恢復):

./device/linaro/dragonboard/installer/db845c/recovery.sh

構建內核

要構建 DragonBoard db845c Android 通用內核映像 (GKI) 內核工件:

  1. 運行以下命令以克隆內核源代碼和預構建的 Android 工具鏈並構建腳本。

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
    
  2. 刪除${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/中的所有對象,然後將構建工件從out/android-mainline/dist/複製到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/然後重建用戶空間:

    make TARGET_KERNEL_USE=mainline -j24
    

    並使用生成的 boot.img 和 super.img 刷新設備(請參閱編譯用戶空間)。

  3. 測試 GKI 內核:

    1. 查看最新的 kernel_aarch64 構建

    2. artifacts中,下載 Image。

    3. 壓縮圖像

      gzip Image
      
    4. 將其複製到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/

    5. 重建 AOSP 並使用新的 boot.img 刷新設備(請參閱編譯用戶空間)。

HiKey 960 板

HiKey 960 板可從 Amazon 和Lenovator 購買

HiKey 960 主板圖片

圖 2. Lenovator 的 HiKey 960 開發板

編譯用戶空間

使用以下命令在 HiKey 960 板上下載並構建 Android。

  1. 下載 Android 源代碼樹

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下載當前的供應商包

    ./device/linaro/hikey/fetch-vendor-package.sh
    
  3. 建造

    . ./build/envsetup.sh
    lunch hikey960-userdebug
    make -j24
    

安裝本地鏡像

  1. 打開開關3選擇fastboot模式(詳見HiKey 960入門指南)。

  2. 給電路板供電。

  3. Flash 本地圖像:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. 關閉開關 3 並重啟電路板。

構建內核

構建 HiKey960 Android GKI 內核工件:

  1. 運行以下命令:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.hikey960 build/build.sh
    
  2. 刪除${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/中的所有對象,然後將構建工件從內核 build in out/android12-5.4/dist/複製到${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

  3. 連接 DTB:

    cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  > 
    device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    
  4. 構建 Android 用戶空間

    lunch hikey960-userdebug
    make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
    

    並使用新內核刷新設備(請參閱編譯用戶空間

  5. 測試通用內核映像 (GKI) 內核

    • 查看最新的 kernel_aarch64 構建

    • artifacts中,下載Image文件並將其複製到${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

    • 壓縮圖像並連接 DTB

    gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
    cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    

設置序列號

要設置隨機序列號,請運行:

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

Bootloader 使用androidboot.serialno=將生成的序列號導出到內核。此參數在 Android 11 及更低版本中通過內核命令行傳遞,在內核版本為 5.10 或更高版本的 Android 12 中通過 bootconfig 傳遞。

設置顯示器分辨率

編輯device/linaro/hikey/hikey960/BoardConfig.mk參數BOARD_KERNEL_CMDLINE並配置video設置。例如,24 英寸顯示器的設置為video=HDMI-A-1:1280x800@60

VIM3 和 VIM3L 板

Khadas 的 Vim3 和 VIM3L 板可從Khadas 網站獲得

VIM3 板圖

圖 3. Khadas 的 VIM3 開發板

編譯用戶空間

使用以下命令在 VIM3 板上下載和構建 Android。

  1. 下載 Android 源代碼樹:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 建造:

    . ./build/envsetup.sh
    lunch yukawa-userdebug
    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
    

    默認情況下,Android 使用 5.10 內核構建。要使用內核 5.4 預構建:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
    

    對於 VIM3L,使用:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
    

安裝初始映像

  1. 按照VIM3 刷機說明將開發板置於 USB 升級模式。

  2. 將初始圖像閃存到 RAM:

    cd path/to/aosp/device/amlogic/yukawa/bootloader/
    ./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
    ./tools/update run 0xfffa0000
    ./tools/update bl2_boot u-boot_kvim3_noab.bin
    
  3. U-Boot 啟動並運行 fastboot 後,運行以下命令:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. 拔下並插入電源線。

開發板應該啟動到剛剛刷入的 U-boot 並進入 fastboot 模式。

閃爍的圖像

  1. 進入快速啟動模式(有關說明,請參閱上一節)。

  2. 刷新所有 Android 圖像:

    cd out/target/product/yukawa
    fastboot flash boot boot.img
    fastboot flash super super.img
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    fastboot flash dtbo dtbo-unsigned.img
    fastboot reboot
    

構建內核

要為 VIM3 或 VIM3L 構建內核工件:

  1. 下載其他工具鏈:

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
    
  2. 克隆內核源代碼:

    # for 4.19
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
    # for 5.4
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
    # for 5.10
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
    # for 5.15
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
    
  3. 導出構建變量:

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    export LLVM=1
    
  4. 構建內核:

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
    
  5. 壓縮內核並將 build_artifacts 複製到${AOSP_TOPDIR}/device/amlogic/yukawa-kernel

    lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
    KERN_VER=4.19 # for 4.19 kernel
    KERN_VER=5.4  # for 5.4 kernel
    KERN_VER=5.10 # for 5.10 kernel
    KERN_VER=5.15 # for 5.15 kernel
    for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do
        cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f)
    done
    cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
    
  6. 重建 Android 用戶空間(參見編譯用戶空間)並刷新新內核(參見閃爍圖像)。

高通機器人板 RB5

機器人板 RB5 可從96boards.org 獲得

rb5_board

圖 4.機器人板 RB5

編譯用戶空間

使用以下命令在 RB5 上下載和構建 Android。

  1. 下載 Android 源代碼樹:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 下載當前的供應商包:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. 構建 AOSP:

    . ./build/envsetup.sh
    lunch rb5-userdebug
    make -j24
    

安裝本地鏡像

  1. 引導 RB5 進入快速啟動模式。

  2. 運行以下命令:

    ./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
    

如有必要,您可以在以 USB 閃存模式啟動 RB5 後運行以下腳本來執行 QDL 板恢復(請參閱RB5 恢復):

   ./device/linaro/dragonboard/installer/rb5/recovery.sh

構建內核

要構建 RB5 Android 通用內核映像 (GKI) 內核構件:

  1. 運行以下命令來克隆內核源代碼和預構建的 Android 工具鏈並構建腳本:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
    
  2. 刪除${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/中的所有對象,然後將構建工件從out/android-mainline/dist/複製到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ ,然後使用以下命令重建用戶空間:

    make TARGET_KERNEL_USE=mainline -j24
    

    並使用生成的 boot.img 和 super.img 刷新設備(請參閱編譯用戶空間)。

  3. 測試 GKI 內核:

    1. 查看最新的 kernel_aarch64 構建
    2. artifacts中,下載 Image。
    3. 壓縮圖像

      gzip Image
      
    4. 將其複製到${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/

    5. 重建 AOSP 並使用新的 boot.img 刷新設備(請參閱編譯用戶空間)。