ダウンロード、ビルド、実行

このページでは、Cuttlefish に AAOS SDV をダウンロード、ビルド、実行する方法について説明します。

AAOS SDV のソースコードを取得する

Android ソースをダウンロードするの手順に沿って操作します。

ビルド環境を設定する

作業ディレクトリ内から、envsetup.sh スクリプトをソースとしてビルド環境を設定します。

source build/envsetup.sh

このスクリプトは、Android ソースコードの操作を可能にする複数のコマンド(このページで使用するコマンドを含む)をインポートします。スクリプトのソースを表示するには、platform/build/envsetup.sh をご覧ください。組み込みヘルプを表示するには、hmm と入力してください。

ターゲットを選択する

SDV をビルドする前に、ビルドするターゲットを特定する必要があります。 ビルドするターゲットを特定するには、lunch コマンドの後に、ビルドするターゲットを表す文字列を指定します。たとえば、Cuttlefish エミュレータのターゲットをビルドするには、次のコマンドを使用します。

lunch sdv_core_cf-trunk_staging-userdebug

このコマンドは、ビルドするプロダクト、リリース構成、バリアントを選択し、その選択を環境に保存します。

SDV の lunch ターゲットは、devices/google/sdv ディレクトリにある別の Git プロジェクトで提供されます。使用可能なターゲットの詳細については、device/google/sdv/README.md をご覧ください。主な Cuttlefish(cf)ターゲットは次のとおりです。

  • sdv_core_cf-trunk_staging-userdebug - Cuttlefish(cf)で実行される AAOS SDV Core (sdv_core)のイメージをビルドします。
  • sdv_media_cf-trunk_staging-userdebug - virtIO 仮想化メディア API(sdv_media)を使用して AAOS SDV Core のイメージをビルドします。
  • sdv_media_har_cf-trunk_staging-userdebug - AAOS SDV メディア(sdv_media_cflunch ターゲットを拡張して、高可用性レンダラ(HAR)を含むイメージをビルドします。HAR は起動時に自動的に実行されます。
  • sdv_ivi_cf-trunk_staging-userdebug - SDV Gateway と Java サンプルアプリを含む車載 インフォテインメント(IVI)のイメージをビルドします。
  • sdv_ivi_cf_ds-trunk_staging-userdebug - AAOS SDV IVI ターゲット(sdv_ivi_cf)を拡張し、Display Safety の DriverUI とインストルメント クラスタの実装を含むイメージをビルドします。

AAOS SDV をビルドする

ターゲットをビルドするには、次のコマンドを実行します。最初のビルドにかかる時間はワークステーションの仕様によって異なり、30 ~ 60 分ほどかかります。その後のビルドでは、所要時間は大幅に短縮されます。

m

ビルドの出力は $OUT_DIR に保存されます。いくつかのターゲットをビルドする場合、それぞれのビルドは $OUT_DIR に保存されます。

Cuttlefish を使用してビルドをテストする

AAOS SDV をビルドしたら、Cuttlefish を使用してビルドをテストします。

  1. ビルドで Cuttlefish を起動するには:

    cvd create

    Cuttlefish は、ビルドしたターゲット(sdv_core_cf-trunk_staging-userdebug)を使用して実行されます。Cuttlefish が起動すると、次のメッセージが表示されます。

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. adb を実行して Cuttlefish に接続します。

  3. adb devices を実行して、ビルドが実行されていることを確認します。次のような結果が表示されます。

    List of devices attached
    0.0.0.0:6520 device
  4. cvd stop を実行してデバイスをシャットダウンします。

異なるビルドで Cuttlefish の複数のインスタンスを実行するには、Cuttlefish: マルチテナンシーをご覧ください。

トラブルシューティング

このセクションでは、AAOS SDV のダウンロード、ビルド、実行中に発生する可能性のあるエラーのトラブルシューティング方法について説明します。

RBE エラー

Remote Build Execution(RBE)エラーが発生した場合は、.bashrc または .zshrc から USE_RBEENABLE_RBE_BOOTSTRAP の定義を削除します。

cvd: VM manager crosvm isn't supported on this machine

Cuttlefish が、VM マネージャー crosvm がマシンでサポートされていないと報告する場合は、次のコマンドを実行して Cuttlefish をインストールします。

sudo apt install cuttlefish-common

cvd が見つかりません

cvd not found エラーが表示された場合:

  1. ビルドを再度設定します
  2. ターゲットを選択するに進みます。

Cuttlefish のクラッシュ ループ

Cuttlefish がクラッシュ ループに入った場合:

  1. すべての Cuttlefish インスタンスを停止するには、cvd stop を実行します。
  2. Cuttlefish を使用してビルドを再テストします