Scarica, crea ed esegui

Questa pagina spiega come scaricare, compilare ed eseguire AAOS SDV su Cuttlefish.

Inizializzare il client Repo

Configura il client per accedere al repository di origine Android:

  1. Crea una directory di lavoro e vai al suo interno, ad esempio sdv:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Inizializza la directory di lavoro per il controllo del codice sorgente:

    Questo esempio utilizza il ramo 26Q2-fs-release.

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

    L'opzione -u è obbligatoria e identifica un file manifest, ovvero un file XML che specifica dove vengono inseriti i vari progetti Git nell'origine Android all'interno della directory di lavoro. In questo esempio, il nome del file manifest non è specificato, quindi il comando utilizza il file manifest predefinito (default.xml).

    L'opzione -b identifica il ramo che stai inizializzando.

    L'output dovrebbe contenere il messaggio:

    repo has been initialized in path_to_working_directory

Scarica l'origine SDV di AAOS

Esegui questo comando per scaricare l'albero delle origini Android nella directory di lavoro:

repo sync -c -j8

L'argomento -c indica a Repo di recuperare il ramo manifest corrente dal server. Il comando -j8 suddivide la sincronizzazione in più thread per un completamento più rapido.

Configura l'ambiente di build

Dalla directory di lavoro, esegui lo script envsetup.sh per configurare l'ambiente di build:

source build/envsetup.sh

Questo script importa diversi comandi che ti consentono di lavorare con il codice sorgente di Android, inclusi i comandi utilizzati in questa pagina. Per visualizzare l'origine dello script, consulta platform/build/envsetup.sh. Per visualizzare la guida integrata, digita hmm.

Scegliere un target

Prima di creare un SDV, identifica un target da creare. Per identificare il target da compilare, utilizza il comando lunch seguito da una stringa che rappresenta il target per cui stai eseguendo la compilazione. Ad esempio, utilizza questo comando per creare una destinazione per l'emulatore Cuttlefish:

lunch sdv_core_cf-trunk_staging-userdebug

Questo comando seleziona il prodotto, la configurazione della release e la variante da creare e archivia la selezione nell'ambiente.

I target lunch per SDV sono forniti in un progetto Git separato che si trova nella directory devices/google/sdv. Consulta una descrizione dettagliata dei target disponibili all'indirizzo device/google/sdv/README.md. I principali target di Cuttlefish (cf) sono:

  • sdv_core_cf-trunk_staging-userdebug - Crea un'immagine di AAOS SDV Core (sdv_core) che viene eseguita su Cuttlefish (cf).
  • sdv_media_cf-trunk_staging-userdebug - Crea un'immagine di AAOS SDV Core con API multimediali virtualizzate virtIO (sdv_media).
  • sdv_media_har_cf-trunk_staging-userdebug: crea un'immagine che estenda la destinazione dei contenuti multimediali SDV AAOS (sdv_media_cf) lunch in modo che contenga il renderer ad alta disponibilità (HAR). HAR viene eseguito automaticamente all'avvio.
  • sdv_ivi_cf-trunk_staging-userdebug - Crea un'immagine del sistema In-Vehicle Infotainment (IVI) contenente il gateway SDV e le app Java di esempio.
  • sdv_ivi_cf_ds-trunk_staging-userdebug: crea un'immagine che estenda il target AAOS SDV IVI (sdv_ivi_cf) e includa l'implementazione di DriverUI e del quadro strumenti di Display Safety.

Crea SDV AAOS

Esegui questo comando per creare il target. A seconda delle specifiche della workstation, la prima build richiede tra 30 e 60 minuti. Le build successive richiedono molto meno tempo.

m

L'output della build viene visualizzato in $OUT_DIR. Se crei target diversi, ogni build del target viene visualizzata in $OUT_DIR.

Testare la build utilizzando Cuttlefish

Dopo aver creato AAOS SDV, testa la build utilizzando Cuttlefish.

  1. Per avviare Cuttlefish con la tua build:

    cvd create

    Cuttlefish viene eseguito utilizzando la build di destinazione (sdv_core_cf-trunk_staging-userdebug). Dopo l'avvio di Cuttlefish, viene visualizzato questo messaggio:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Esegui adb per connetterti a Cuttlefish.

  3. Esegui adb devices per verificare che la build sia in esecuzione. Viene visualizzato un risultato simile a questo:

    List of devices attached
    0.0.0.0:6520 device
  4. Esegui cvd stop per arrestare il dispositivo.

Per eseguire più istanze di Cuttlefish con build diversi, consulta Cuttlefish: multi-tenancy.

Risoluzione dei problemi

Questa sezione spiega come risolvere gli errori che potrebbero verificarsi durante il download, la compilazione o l'esecuzione di AAOS SDV.

Errori RBE

Se si verificano errori di esecuzione della build da remoto (RBE), rimuovi le definizioni di USE_RBE e ENABLE_RBE_BOOTSTRAP da .bashrc o .zshrc

cvd: VM Manager crosvm non è supportato su questa macchina

Se Cuttlefish segnala che il gestore VM crosvm non è supportato sulla tua macchina, esegui questo comando per installare Cuttlefish:

sudo apt install cuttlefish-common

cvd not found

Se ricevi un errore cvd not found:

  1. Configura di nuovo la build.
  2. Continua con Scegli un target.

Loop di arresto anomalo di Cuttlefish

Se Cuttlefish entra in un ciclo di arresti anomali:

  1. Per arrestare tutte le istanze di Cuttlefish, esegui cvd stop.
  2. Utilizza Cuttlefish per testare nuovamente la build.