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:
Crea una directory di lavoro e vai al suo interno, ad esempio
sdv:mkdir WORKING_DIRECTORYcd WORKING_DIRECTORYInizializza la directory di lavoro per il controllo del codice sorgente:
Questo esempio utilizza il ramo
26Q2-fs-release.RELEASE=26Q2-fs-releaserepo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASEL'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
-bidentifica 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 -j8L'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.shQuesto 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-userdebugQuesto 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)lunchin 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.
mL'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.
Per avviare Cuttlefish con la tua build:
cvd createCuttlefish 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 successfullyEsegui
adbper connetterti a Cuttlefish.Esegui
adb devicesper verificare che la build sia in esecuzione. Viene visualizzato un risultato simile a questo:List of devices attached 0.0.0.0:6520 deviceEsegui
cvd stopper 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-commoncvd not found
Se ricevi un errore cvd not found:
- Configura di nuovo la build.
- Continua con Scegli un target.
Loop di arresto anomalo di Cuttlefish
Se Cuttlefish entra in un ciclo di arresti anomali:
- Per arrestare tutte le istanze di Cuttlefish, esegui
cvd stop. - Utilizza Cuttlefish per testare nuovamente la build.