Télécharger, compiler et exécuter

Cette page explique comment télécharger, compiler et exécuter AAOS SDV sur Cuttlefish.

Initialiser le client Repo

Configurez votre client pour accéder au dépôt de code source Android :

  1. Créez un répertoire de travail et accédez-y, par exemple sdv :

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Initialisez votre répertoire de travail pour le contrôle des sources :

    Cet exemple utilise la branche 26Q2-fs-release.

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

    L'option -u est obligatoire et identifie un fichier manifeste, qui est un fichier XML spécifiant l'emplacement des différents projets Git dans la source Android au sein de votre répertoire de travail. Dans cet exemple, le nom du fichier manifeste n'est pas spécifié. La commande utilise donc le fichier manifeste par défaut (default.xml).

    L'option -b identifie la branche que vous initialisez.

    Le résultat doit contenir le message suivant :

    repo has been initialized in path_to_working_directory

Télécharger la source AAOS SDV

Exécutez la commande suivante pour télécharger l'arborescence source Android dans votre répertoire de travail :

repo sync -c -j8

L'argument -c indique à Repo d'extraire la branche manifeste actuelle du serveur. La commande -j8 divise la synchronisation entre les threads pour une exécution plus rapide.

Configurer votre environnement de compilation

Dans votre répertoire de travail, exécutez le script envsetup.sh pour configurer votre environnement de compilation :

source build/envsetup.sh

Ce script importe plusieurs commandes qui vous permettent d'utiliser le code source Android, y compris les commandes utilisées sur cette page. Pour afficher la source du script, consultez platform/build/envsetup.sh. Pour afficher l'aide intégrée, saisissez hmm.

Sélectionner une cible.

Avant de compiler SDV, identifiez une cible à compiler. Pour identifier la cible à compiler, utilisez la commande lunch, suivie d'une chaîne représentant la cible pour laquelle vous compilez. Par exemple, utilisez cette commande pour compiler une cible pour l'émulateur Cuttlefish :

lunch sdv_core_cf-trunk_staging-userdebug

Cette commande sélectionne le produit, la configuration de la version et la variante à compiler, puis stocke la sélection dans l'environnement.

Les cibles lunch pour SDV sont fournies dans un projet Git distinct situé dans le répertoire devices/google/sdv. Pour obtenir une description détaillée des cibles disponibles, consultez device/google/sdv/README.md. Les principales cibles Cuttlefish (cf) sont les suivantes :

  • sdv_core_cf-trunk_staging-userdebug : compile une image d'AAOS SDV Core (sdv_core) qui s'exécute sur Cuttlefish (cf).
  • sdv_media_cf-trunk_staging-userdebug : compile une image d'AAOS SDV Core avec des API multimédias virtualisées virtIO (sdv_media).
  • sdv_media_har_cf-trunk_staging-userdebug : compile une image qui étend la cible multimédia AAOS SDV (sdv_media_cf) lunch pour contenir le moteur de rendu à haute disponibilité (HAR). HAR s'exécute automatiquement au démarrage.
  • sdv_ivi_cf-trunk_staging-userdebug : compile une image d'infodivertissement embarqué (IVI) contenant la passerelle SDV et des exemples d'applications Java.
  • sdv_ivi_cf_ds-trunk_staging-userdebug : compile une image qui étend la cible AAOS SDV IVI (sdv_ivi_cf) et inclut l'implémentation de l'interface utilisateur du conducteur et du combiné d'instruments de Display Safety.

Compiler AAOS SDV

Exécutez la commande suivante pour compiler votre cible. Selon les spécifications de votre poste de travail, la première compilation prend entre 30 et 60 minutes. Les compilations suivantes prennent beaucoup moins de temps.

m

Le résultat de votre compilation s'affiche dans $OUT_DIR. Si vous compilez différentes cibles, chaque compilation de cible s'affiche dans $OUT_DIR.

Tester votre compilation à l'aide de Cuttlefish

Une fois que vous avez compilé AAOS SDV, testez votre compilation à l'aide de Cuttlefish.

  1. Pour démarrer Cuttlefish avec votre compilation :

    cvd create

    Cuttlefish s'exécute à l'aide de votre cible compilée (sdv_core_cf-trunk_staging-userdebug). Une fois Cuttlefish démarré, le message suivant s'affiche :

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Exécutez adb pour vous connecter à Cuttlefish.

  3. Exécutez adb devices pour vérifier que votre compilation est en cours d'exécution. Un résultat semblable à celui-ci s'affiche :

    List of devices attached
    0.0.0.0:6520 device
  4. Exécutez cvd stop pour éteindre l'appareil.

Pour exécuter plusieurs instances de Cuttlefish avec différentes compilations, consultez Cuttlefish: multi-locataire.

Résoudre les problèmes

Cette section explique comment résoudre les erreurs qui peuvent se produire lors du téléchargement, de la compilation ou de l'exécution d'AAOS SDV.

Erreurs RBE

Si vous rencontrez des erreurs d'exécution de compilation à distance (RBE), supprimez les définitions de USE_RBE et ENABLE_RBE_BOOTSTRAP de .bashrc ou .zshrc.

cvd : le gestionnaire de VM crosvm n'est pas compatible avec cette machine

Si Cuttlefish signale que le gestionnaire de VM crosvm n'est pas compatible avec votre machine, exécutez la commande suivante pour installer Cuttlefish :

sudo apt install cuttlefish-common

cvd introuvable

Si vous recevez une erreur cvd not found :

  1. Reconfigurez votre compilation.
  2. Passez à la section Sélectionner une cible.

Boucles de plantage Cuttlefish

Si Cuttlefish entre dans une boucle de plantage :

  1. Pour arrêter toutes les instances Cuttlefish, exécutez cvd stop.
  2. Utilisez Cuttlefish pour tester à nouveau votre compilation.