下載、建構及執行

本頁說明如何在 Cuttlefish 上下載、建構及執行 AAOS SDV。

初始化 Repo 用戶端

設定用戶端以存取 Android 原始碼存放區:

  1. 建立並前往工作目錄,例如 sdv

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. 初始化工作目錄以進行來源控管:

    本範例使用 26Q2-fs-release 分支。

    RELEASE=26Q2-fs-release
    repo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE

    -u 選項為必要選項,可識別資訊清單檔案,這個 XML 檔案會指定 Android 來源中的各種 Git 專案在工作目錄中的位置。在本範例中,系統未指定資訊清單檔案名稱,因此指令會使用預設資訊清單檔案 (default.xml)。

    -b 選項會識別您要初始化的分支。

    輸出內容應包含下列訊息:

    repo has been initialized in path_to_working_directory

下載 AAOS SDV 來源

執行下列指令,將 Android 來源樹狀結構下載至工作目錄:

repo sync -c -j8

-c 引數會指示 Repo 從伺服器擷取目前的資訊清單分支版本。-j8 指令會將同步作業分散到各個執行緒,加快完成速度。

設定建構環境

在工作目錄中,找出 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 - Build an image of AAOS SDV Core (sdv_core) that runs on Cuttlefish (cf)。
  • sdv_media_cf-trunk_staging-userdebug - 使用 virtIO 虛擬化媒體 API (sdv_media) 建構 AAOS SDV Core 的映像檔。
  • sdv_media_har_cf-trunk_staging-userdebug - 建立可擴充 AAOS SDV 媒體 (sdv_media_cf) lunch目標的映像檔,以包含高可用性顯示器 (HAR)。HAR 會在開機時自動執行。
  • sdv_ivi_cf-trunk_staging-userdebug - 建構車內資訊娛樂 (IVI) 系統的映像檔,其中包含 SDV 閘道和 Java 範例應用程式。
  • 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 錯誤

如果遇到任何遠端建構執行 (RBE) 錯誤,請從 .bashrc.zshrc 中移除 USE_RBEENABLE_RBE_BOOTSTRAP 的定義

cvd:這部電腦不支援 VM 管理員 crosvm

如果 Cuttlefish 回報您的電腦不支援 VM 管理工具 crosvm,請執行下列指令來安裝 Cuttlefish:

sudo apt install cuttlefish-common

找不到 cvd

如果收到 cvd not found 錯誤訊息:

  1. 再次設定建構
  2. 繼續「選擇目標」

Cuttlefish 當機迴圈

如果 Cuttlefish 進入當機迴圈:

  1. 如要停止所有 Cuttlefish 執行個體,請執行 cvd stop
  2. 使用 Cuttlefish 重新測試建構版本