Utilisation des tableaux de référence

Vous pouvez créer des builds pour les appareils Nexus et Pixel à l'aide des builds Android Open Source Project (AOSP) et des fichiers binaires spécifiques au matériel. Pour les builds Android disponibles et les appareils ciblés, consultez Balises et builds de code source .

Vous pouvez également créer des builds pour les cartes de référence Android DragonBoard 845c , HiKey 960 , Khadas VIM3 et Qualcomm Robotics Board RB5 , qui sont conçues pour aider les fournisseurs de composants non mobiles à développer et à porter des pilotes vers des versions Android. L'utilisation d'une carte de référence peut faciliter les efforts de mise à niveau, réduire les délais de mise sur le marché des nouveaux appareils Android, réduire les coûts des appareils en permettant aux ODM/OEM de choisir parmi une plus large gamme de composants compatibles et augmenter la vitesse d'innovation parmi les fournisseurs de composants.

Google prend en charge les cartes de référence Android DragonBoard 845c , HiKey 960 , Khadas VIM3 et Qualcomm Robotics Board RB5 . AOSP fournit une prise en charge de la source du noyau et de la carte pour ces cartes, afin que les développeurs puissent facilement créer et déboguer des pilotes de périphériques, effectuer le développement du noyau et effectuer d'autres tâches avec moins d'encombrements OEM.

DragonBoard 845c

La DragonBoard 845c fait partie de la plate-forme RB3 et est disponible sur 96boards.org .

Image Dragonboard

Figure 1. DragonBoard 845c

Compilation de l'espace utilisateur

Utilisez les commandes suivantes pour télécharger et compiler Android sur la DragonBoard 845c.

  1. Téléchargez l'arborescence des sources Android :

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Téléchargez le package fournisseur actuel :

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Construire AOSP :

    . ./build/envsetup.sh
    lunch db845c-userdebug
    make -j24
    

Installation d'images locales

  1. Démarrez db845c en mode de démarrage rapide.

  2. Exécutez la commande suivante :

    ./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
    

Si nécessaire, vous pouvez effectuer une récupération de la carte QDL en exécutant le script suivant après avoir démarré db845c en mode flash USB (voir DragonBoard Recovery ):

./device/linaro/dragonboard/installer/db845c/recovery.sh

Construire le noyau

Pour créer les artefacts de noyau DragonBoard db845c Android Generic Kernel Image (GKI) :

  1. Exécutez les commandes suivantes pour cloner la source du noyau et les chaînes d'outils Android prédéfinies et créer des scripts.

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
    
  1. Supprimez tous les objets dans ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ puis copiez les artefacts de construction de out/android-mainline/dist/ vers ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ puis reconstruisez l'espace utilisateur avec :

    make TARGET_KERNEL_USE=mainline -j24
    

    et flashez le périphérique avec boot.img et super.img résultants (voir Compilation de l'espace utilisateur).

  2. Testez le noyau GKI :

    1. Affichez la dernière version de kernel_aarch64 .

    2. Dans les artefacts , téléchargez Image.

    3. Gzippez l'image

      gzip Image
      
    4. Copiez-le dans ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Reconstruisez AOSP et flashez le périphérique avec le nouveau boot.img (voir Compilation de l'espace utilisateur).

Cartes HiKey 960

La carte HiKey 960 est disponible sur Amazon et Lenovator .

Image de la carte HiKey 960

Figure 2. Carte HiKey 960 de Lenovator

Compilation de l'espace utilisateur

Utilisez les commandes suivantes pour télécharger et créer Android sur la carte HiKey 960.

  1. Télécharger l'arborescence des sources Android

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Télécharger le package fournisseur actuel

    ./device/linaro/hikey/fetch-vendor-package.sh
    
  3. Construire

    . ./build/envsetup.sh
    lunch hikey960-userdebug
    make -j24
    

Installation d'images locales

  1. Sélectionnez le mode de démarrage rapide en activant le commutateur 3 (pour plus de détails, reportez-vous au guide de démarrage du HiKey 960 ).

  2. Alimentez la carte.

  3. Flasher les images locales :

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
    
  4. Éteignez l'interrupteur 3 et redémarrez la carte.

Construire le noyau

Pour créer les artefacts du noyau HiKey960 Android GKI :

  1. Exécutez les commandes suivantes :

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.hikey960 build/build.sh
    
  2. Supprimez tous les objets dans ${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/ puis copiez les artefacts de construction du noyau build in out/android12-5.4/dist/ vers ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/

  3. Concaténez le DTB :

    cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  > 
    device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    
  4. Créer un espace utilisateur Android

    lunch hikey960-userdebug
    make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
    

    et flashez le périphérique avec le nouveau noyau (voir Compilation de l'espace utilisateur)

  5. Tester le noyau Generic Kernel Image (GKI)

    • Affichez la dernière version de kernel_aarch64 .

    • Dans les artefacts , téléchargez le fichier Image et copiez-le dans ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/ .

    • Compresser l'image et concaténer le DTB

    gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
    cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
    
    • Construisez et flashez le périphérique avec le nouveau noyau (voir Compilation de l'espace utilisateur).

Définition du numéro de série

Pour définir le numéro de série aléatoire, exécutez :

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

Bootloader exporte le numéro de série généré vers le noyau en utilisant androidboot.serialno= . Ce paramètre est transmis via la ligne de commande du noyau dans Android 11 et versions antérieures, et via bootconfig dans Android 12 avec la version 5.10 ou supérieure du noyau.

Réglage de la résolution du moniteur

Modifiez le device/linaro/hikey/hikey960/BoardConfig.mk BOARD_KERNEL_CMDLINE et configurez le paramètre video . Par exemple, le paramètre pour un moniteur 24 pouces est video=HDMI-A-1:1280x800@60 .

Cartes VIM3 et VIM3L

Les cartes Vim3 et VIM3L de Khadas sont disponibles sur le site de Khadas

Image de la carte VIM3

Figure 3. Carte VIM3 par Khadas

Compilation de l'espace utilisateur

Utilisez les commandes suivantes pour télécharger et compiler Android sur la carte VIM3.

  1. Téléchargez l'arborescence des sources Android :

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Construire:

    . ./build/envsetup.sh
    lunch yukawa-userdebug
    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
    

    Par défaut, Android est construit avec le noyau 5.10. Pour utiliser les précompilations du noyau 5.4 :

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
    

    Pour VIM3L, utilisez :

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
    

Installation des images initiales

  1. Mettez la carte en mode de mise à niveau USB en suivant les instructions de clignotement VIM3 .

  2. Flasher les images initiales vers la RAM :

    cd path/to/aosp/device/amlogic/yukawa/bootloader/
    ./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
    ./tools/update run 0xfffa0000
    ./tools/update bl2_boot u-boot_kvim3_noab.bin
    
    • Si vous rencontrez des problèmes d'autorisation, reportez-vous à la section des règles udev pour ajouter les règles USB appropriées.
    • Si les tools/update ne fonctionnent pas, utilisez l' outil pyamlboot pour flasher la carte à la place.
  3. Une fois U-Boot démarré et exécuté fastboot, exécutez les commandes suivantes :

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
    
  4. Débranchez et branchez le câble d'alimentation.

La carte doit démarrer dans le U-boot qui vient d'être flashé et entrer en mode de démarrage rapide.

Images clignotantes

  1. Entrez en mode de démarrage rapide (voir la section précédente pour les instructions).

  2. Flashez toutes les images Android :

    cd out/target/product/yukawa
    fastboot flash boot boot.img
    fastboot flash super super.img
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    fastboot flash dtbo dtbo-unsigned.img
    fastboot reboot
    

Construire le noyau

Pour compiler les artefacts du noyau pour VIM3 ou VIM3L :

  1. Téléchargez des chaînes d'outils supplémentaires :

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
    
  2. Clonez la source du noyau :

    # for 4.19
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
    # for 5.4
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
    # for 5.10
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
    # for 5.15
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
    
  3. Exporter les variables de compilation :

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    export LLVM=1
    
  4. Compilez le noyau :

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
    
  5. Compressez le noyau et copiez build_artifacts dans ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel :

    lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
    KERN_VER=4.19 # for 4.19 kernel
    KERN_VER=5.4  # for 5.4 kernel
    KERN_VER=5.10 # for 5.10 kernel
    KERN_VER=5.15 # for 5.15 kernel
    for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do
        cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f)
    done
    cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
    
  6. Reconstruisez l'espace utilisateur Android (voir Compilation de l'espace utilisateur ) et flashez le nouveau noyau (voir Flasher les images ).

Carte robotique Qualcomm RB5

La carte robotique RB5 est disponible sur 96boards.org .

rb5_board

Figure 4. Carte robotique RB5

Compilation de l'espace utilisateur

Utilisez les commandes suivantes pour télécharger et créer Android sur le RB5.

  1. Téléchargez l'arborescence des sources Android :

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Téléchargez le package fournisseur actuel :

    ./device/linaro/dragonboard/fetch-vendor-package.sh
    
  3. Construire AOSP :

    . ./build/envsetup.sh
    lunch rb5-userdebug
    make -j24
    

Installation d'images locales

  1. Démarrez RB5 en mode de démarrage rapide.

  2. Exécutez la commande suivante :

    ./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
    

Si nécessaire, vous pouvez effectuer une récupération de la carte QDL en exécutant le script suivant après avoir démarré RB5 en mode flash USB (voir RB5 Recovery ):

   ./device/linaro/dragonboard/installer/rb5/recovery.sh

Construire le noyau

Pour créer les artefacts de noyau RB5 Android Generic Kernel Image (GKI) :

  1. Exécutez les commandes suivantes pour cloner la source du noyau et les chaînes d'outils Android prédéfinies et les scripts de génération :

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
    
  2. Supprimez tous les objets dans ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/ , puis copiez les artefacts de construction de out/android-mainline/dist/ vers ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ , puis reconstruisez l'espace utilisateur avec :

    make TARGET_KERNEL_USE=mainline -j24
    

    et flashez le périphérique avec boot.img et super.img résultants (voir Compilation de l'espace utilisateur).

  3. Testez le noyau GKI :

    1. Affichez la dernière version de kernel_aarch64 .
    2. Dans les artefacts , téléchargez Image.
    3. Gzippez l'image

      gzip Image
      
    4. Copiez-le dans ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ .

    5. Reconstruisez AOSP et flashez le périphérique avec le nouveau boot.img (voir Compilation de l'espace utilisateur).