Pobieranie, kompilowanie i uruchamianie

Z tego artykułu dowiesz się, jak pobrać, skompilować i uruchomić AAOS SDV na Cuttlefish.

Pobieranie kodu źródłowego AAOS SDV

Postępuj zgodnie z instrukcjami podanymi w artykule Pobieranie kodu źródłowego Androida.

Konfigurowanie środowiska kompilacji

W katalogu roboczym uruchom skrypt envsetup.sh, aby skonfigurować środowisko kompilacji:

source build/envsetup.sh

Ten skrypt importuje kilka poleceń, które umożliwiają pracę z kodem źródłowym Androida, w tym polecenia używane na tej stronie. Aby wyświetlić źródło skryptu, zobacz platform/build/envsetup.sh. Aby wyświetlić wbudowaną pomoc, wpisz hmm.

Wybieranie celu

Zanim skompilujesz SDV, określ cel kompilacji. Aby określić cel kompilacji, użyj polecenia lunch i ciągu znaków reprezentującego cel, dla którego kompilujesz. Aby na przykład skompilować cel dla emulatora Cuttlefish, użyj tego polecenia:

lunch sdv_core_cf-aosp_current-userdebug

To polecenie wybiera produkt, konfigurację wersji i wariant do skompilowania oraz zapisuje wybór w środowisku.

Cele lunch dla SDV są dostępne w osobnym projekcie Git znajdującym się w katalogu devices/google/sdv. Szczegółowy opis dostępnych celów znajdziesz w pliku device/google/sdv/README.md. Główne cele Cuttlefish (cf) to:

  • sdv_core_cf-aosp_current-userdebug – kompiluje obraz AAOS SDV Core (sdv_core), który działa na Cuttlefish (cf).
  • sdv_media_cf-aosp_current-userdebug – kompiluje obraz AAOS SDV Core z interfejsami API multimediów zwirtualizowanymi za pomocą virtIO (sdv_media).
  • sdv_media_har_cf-aosp_current-userdebug – kompiluje obraz, który rozszerza cel AAOS SDV media (sdv_media_cf) lunch o renderer o wysokiej dostępności (HAR). HAR uruchamia się automatycznie podczas uruchamiania.
  • sdv_ivi_cf-aosp_current-userdebug – kompiluje obraz systemu informacyjno-rozrywkowego (IVI) zawierający bramę SDV i przykładowe aplikacje w Javie.
  • sdv_ivi_cf_ds-aosp_current-userdebug – kompiluje obraz, który rozszerza cel AAOS SDV IVI (sdv_ivi_cf) i zawiera implementację DriverUI i Instrument Cluster w Display Safety.

Kompilowanie AAOS SDV

Aby skompilować cel, uruchom to polecenie. W zależności od specyfikacji stacji roboczej pierwsza kompilacja trwa od 30 do 60 minut. Kolejne kompilacje trwają znacznie krócej.

m

Wynik kompilacji pojawi się w $OUT_DIR. Jeśli skompilujesz różne cele, każda kompilacja celu pojawi się w $OUT_DIR.

Testowanie kompilacji za pomocą Cuttlefish

Po skompilowaniu AAOS SDV przetestuj kompilację za pomocą Cuttlefish.

  1. Aby uruchomić Cuttlefish z kompilacją:

    cvd create

    Cuttlefish działa z użyciem skompilowanego celu (sdv_core_cf-aosp_current-userdebug). Po uruchomieniu Cuttlefish wyświetli się ten komunikat:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Aby połączyć się z Cuttlefish, uruchom adb.

  3. Aby sprawdzić, czy kompilacja jest uruchomiona, uruchom adb devices. Wyświetli się wynik podobny do tego:

    List of devices attached
    0.0.0.0:6520 device
  4. Aby wyłączyć urządzenie, uruchom cvd stop.

Aby uruchomić kilka instancji Cuttlefish z różnymi kompilacjami, przeczytaj artykuł Cuttlefish: multi-tenancy.

Rozwiązywanie problemów

W tej sekcji dowiesz się, jak rozwiązywać błędy, które mogą wystąpić podczas pobierania, kompilowania lub uruchamiania AAOS SDV.

Błędy RBE

Jeśli napotkasz błędy Remote Build Execution (RBE), usuń definicje USE_RBE i ENABLE_RBE_BOOTSTRAP z pliku .bashrc lub .zshrc.

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

Jeśli Cuttlefish zgłosi, że menedżer maszyn wirtualnych crosvm nie jest obsługiwany na Twoim komputerze, uruchom to polecenie, aby zainstalować Cuttlefish:

sudo apt install cuttlefish-common

cvd not found

Jeśli otrzymasz błąd cvd not found:

  1. Ponownie skonfiguruj kompilację.
  2. Kontynuuj, wykonując czynności opisane w sekcji Wybieranie celu.

Pętle awarii Cuttlefish

Jeśli Cuttlefish przejdzie w pętlę awarii:

  1. Aby zatrzymać wszystkie instancje Cuttlefish, uruchom cvd stop.
  2. Użyj Cuttlefish, aby ponownie przetestować kompilację.