Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

評価ボードの使用

Android オープンソース プロジェクト(AOSP)のビルドと、対象のハードウェア固有バイナリを使用して、Nexus デバイスと Pixel デバイス用のビルドを作成できます。利用できる Android ビルドと対象デバイスについては、ソースコード タグとビルドをご覧ください。

DragonBoard 845cHiKey 960Khadas VIM3 の Android 評価ボード用のビルドも作成できます。これらの評価ボードにより、非モバイル コンポーネントのベンダーも、ドライバを開発して Android リリースに移植できるようになります。評価ボードを使用すると、アップグレード作業が容易になり、新しい Android デバイスの製品化までの時間を短縮できます。また、ODM や OEM が幅広い種類の互換コンポーネントを選択できるようになることで、デバイスコストの削減が可能になり、コンポーネント サプライヤー間のイノベーションも加速します。

Google は、DragonBoard 845cHiKey 960Khadas VIM3 の Android 評価ボードをサポートしています。AOSP はこれらの評価ボードのカーネルソースとボードのサポートを提供します。これにより、周辺機器ドライバの作成とデバッグ、カーネル開発、その他 OEM 負担の少ないタスクを簡単に行えます。

DragonBoard 845c

DragonBoard 845c は RB3 プラットフォームの一部であり、96boards.org から入手できます。

DragonBoard の画像

図 1. DragonBoard 845c

ユーザー空間のコンパイル

DragonBoard 845c に Android をダウンロードしてビルドするには、以下のコマンドを使用します。

  1. 以下のコマンドで、Android ソースツリーをダウンロードします。

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 以下のコマンドで、ビルドします。

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

ローカル イメージのインストール

  1. db845c を Fastboot モードでブートします(DragonBoard のリカバリを参照)。

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

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

あるいは、USB フラッシュ モードで db845c をブートした後に次のスクリプトを実行することで、QDL ボードのリカバリを実行することもできます。

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

ci.android.com からイメージをフラッシュする

flash.android.com を使用すると、最新の AOSP ビルド アーティファクトを ci.android.com から簡単にテストできます。ビルドを行う必要はありませんが、テストを開始する前に AOSP の最新のブートローダーを使用して、DragonBoard 845c をあらかじめフラッシュしておく必要があります。

  1. ウェブブラウザで、flash.android.com にアクセスします。

  2. デバイスはすでにデベロッパー モードになっているため、[Get Started] をクリックして、ステップ 1 をスキップします。

  3. [available] で、「DragonBoard 845c (db845c)」を見つけます。見つからない場合は、[+ Add new device] をクリックして、リストから [Android gadget] または [Android device] を選択します。

  4. [DragonBoard 845c (db845c)] を選択します。

  5. [Select a build ID] をクリックし、最新のビルドを選択します。

  6. [インストール] をクリックします。

  7. 残りの手順を行い、ボードがフラッシュされるまで待ちます。

これで、DragonBoard 845c 上で最新の AOSP ビルドが稼働するようになります。

カーネルをビルドする

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
    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
    

    新しいカーネルを使用してデバイスをフラッシュします(ユーザー空間をコンパイルするを参照)。

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

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

    2. [artifacts] で、Image.gz をダウンロードして ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ にコピーします。

    3. 新しいカーネルを使用してデバイスをビルドしてフラッシュします(ユーザー空間をコンパイルするを参照)。

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. 以下のコマンドで、ビルドします。

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

初期イメージのインストール

  1. スイッチ 3 をオンにして、Fastboot モードを選択します。詳細については、HiKey 960 スタートガイドをご覧ください。

  2. ボードの電源を入れます。

  3. 次のコマンドで、初期イメージをフラッシュします。

    cd device/linaro/hikey/installer/hikey960
    
  4. スイッチ 3 をオフにし、ボードの電源をオフにして再度オンにします。

イメージのフラッシュ

  1. スイッチ 3 をオンにすると、Fastboot モード(Fastboot mode)になります。

  2. 次のコマンドを実行して、イメージをフラッシュします。

    fastboot flash boot out/target/product/hikey960/boot.img
    
  3. スイッチ 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 ビルドを表示します。

    • [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

ブートローダーが、生成されたシリアル番号を、androidboot.serialno= を使用してカーネルにエクスポートします。

モニター解像度を設定する

device/linaro/hikey/hikey960/BoardConfig.mkBOARD_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 は 4.19 カーネルでビルドされています。カーネル 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. 追加のツールチェーンをダウンロードします。

    cd ${AOSP_TOPDIR}
    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 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
    
  3. ビルド変数をエクスポートします。

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r399163b/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
    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 ユーザー空間を再ビルド(ユーザー空間のコンパイルを参照)し、新しいカーネルをフラッシュします(イメージのフラッシュを参照)。