リファレンスボードの使用

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Android オープン ソース プロジェクト (AOSP) ビルドと関連するハードウェア固有のバイナリを使用して、Nexus および Pixel デバイス用のビルドを作成できます。利用可能な Android ビルドとターゲット デバイスについては、「ソース コード タグとビルド」を参照してください。

また、 DragonBoard 845cHiKey 960Khadas VIM3 、およびQualcomm Robotics Board RB5 Android リファレンス ボードのビルドを作成することもできます。これらは、非モバイル コンポーネント ベンダーがドライバーを開発し、Android リリースに移植するのに役立つように設計されています。リファレンス ボードを使用すると、アップグレード作業が容易になり、新しい Android デバイスの市場投入までの時間が短縮され、ODM/OEM が幅広い互換性のあるコンポーネントから選択できるようになるため、デバイスのコストが削減され、コンポーネント サプライヤー間のイノベーションの速度が向上します。

Google は、 DragonBoard 845cHiKey 960Khadas VIM3 、およびQualcomm 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 を fastboot モードで起動します。

  2. 次のコマンドを実行します。

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

必要に応じて、USB フラッシュ モードで db845c を起動した後、次のスクリプトを実行して QDL ボードの回復を実行できます ( DragonBoard の回復を参照)。

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

カーネルの構築

DragonBoard db845c Android Generic Kernel Image (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
    tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
    
  1. ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/内のすべてのオブジェクトを削除し、ビルド アーティファクトをout/android-mainline/dist/から${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/にコピーします。 ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/次に、ユーザー空間を次のように再構築します。

    make TARGET_KERNEL_USE=mainline -j24
    

    結果の boot.img と super.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。

  2. GKI カーネルをテストします。

    1. 最新の kernel_aarch64 ビルドを表示します。

    2. artifactsで、Image をダウンロードします。

    3. 画像をgzipする

      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. フラッシュ ローカル イメージ:

    ./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/内のすべてのオブジェクトを削除し、ビルド アーティファクトを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. Generic Kernel Image (GKI) カーネルをテストする

    • 最新の kernel_aarch64 ビルドを表示します。

    • artifactsImageファイルをダウンロードし、 ${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

ブートローダーは、生成されたシリアル番号を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 の Web サイトから入手できます。

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
    
    • 権限の問題が発生した場合は、 udev ルールのセクションを参照して、適切な USB ルールを追加してください。
    • tools/updateが機能しない場合は、代わりにpyamlboot ツールを使用してボードをフラッシュしてください。
  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. fastboot モードに入ります (手順については、前のセクションを参照してください)。

  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 ユーザー空間を再構築し ( Compiling userspaceを参照)、新しいカーネルをフラッシュします ( Flashing imagesを参照)。

クアルコム ロボティクス ボード RB5

Robotics Board 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 を fastboot モードで起動します。

  2. 次のコマンドを実行します。

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

必要に応じて、USB フラッシュ モードで RB5 を起動した後、次のスクリプトを実行して QDL ボードの回復を実行できます (「 RB5 の回復」を参照)。

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

カーネルの構築

RB5 Android Generic Kernel Image (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する

      gzip Image
      
    4. ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/にコピーします。

    5. AOSP を再構築し、新しい boot.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。