Logiciel embarqué - Yocto recettes dépendance une capture d’écran d’un ordinateur

Les dépendances aux recettes Yocto

Comment obtenir des dépendances entre les variables de recette

Avez-vous déjà créé une surcharge de variables de recette dans votre méta-couche personnalisée et rien ne se passe ?

Ne doutez pas de vous et jetez un œil à la priorité des méta-couches utilisées.

Exemple

Nous voulons construire une distribution Yocto Linux pour Raspberry Pi 4 et changer l'image d'arrière-plan de la recette psplash. Pour ce faire, nous créons un dossier « psplash » dans notre méta-couche personnalisée « meta-interelectronix » et ajoutons le fichier « psplash_%.bbappend » pour remplacer les variables de « SPLASH_IMAGES ».

SPLASH_IMAGES:rpi = "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"

Après avoir ajouté 'meta-interelectronix' à 'bblayers.conf', nous bitbakeons la distribution Linux, flashons-la sur une carte SD et amorçons le Raspberry Pi 4 avec elle.

Mais aucune image de fond personnalisée pour l'écran de démarrage n'a été utilisée - pourquoi cela ?

Qu'est-ce qui cause ce comportement ?

Après avoir recherché l'erreur, nous jetons un coup d'œil à la variable de priorité des méta-couches. Les méta-couches ont une variable pour la priorité à définir dans quel rang la méta-couche est utilisée lors de la création de la distribution Linux.

La variable est définie dans le fichier 'meta-interelectronix/conf/layer.conf' :

BBFILE_PRIORITY_meta-interelectronix = "6"

Dans notre cas, la priorité de 'meta-interelectronix' a été définie sur '6' et la priorité de 'meta-raspberrypi' est définie sur '9'.

Plus la priorité est élevée, plus les variables des fichiers bbappend appliquées à bitbake sont récentes. Comme dans 'meta-raspberrypi' est aussi un fichier 'psplash_%.bbappend', les variables de ce fichier remplacent les substitutions dans notre couche 'meta-interelectronix' à nouveau, un rien change.

Remarque

Changez la priorité de votre méta-couche personnalisée en un nombre élevé, par exemple 50, pour appliquer vos modifications plus tard que toutes les substitutions de méta-couches étrangères.

Comment faciliter le classement des variables ?

Il y a une commande facile pour obtenir le classement d'une variable sur toutes les méta-couches :

bitbake-getvar -r recipe VARIABLE

Dans notre cas, la commande était :

bitbake-getvar -r psplash SPLASH_IMAGES

Le résultat après avoir changé la priorité de la couche 'meta-interelectronix' en '50' ressemble à ceci :

bitbake-getvar -r psplash SPLASH_IMAGES
#
# $SPLASH_IMAGES [4 operations]
#   set /workdir/poky-kirkstone/meta/recipes-core/psplash/psplash_git.bb:19
#     "file://psplash-poky-img.h;outsuffix=default"
#   set /workdir/poky-kirkstone/meta-interelectronix/recipes-core/psplash/psplash_%.bbappend:10
#     "file://psplash-ixlogo-white-img.h;outsuffix=interelectronix"
#   override[rpi]:set /workdir/poky-kirkstone/meta-raspberrypi/recipes-core/psplash/psplash_%.bbappend:2
#     "file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
#   override[rpi]:set /workdir/poky-kirkstone/meta-interelectronix/recipes-core/psplash/psplash_%.bbappend:9
#     "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"
# pre-expansion value:
#   "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"
SPLASH_IMAGES="file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"

Vous pouvez également afficher la priorité des calques utilisés avec la commande suivante :

bitbake-layers show-layers

Licence de copyright

Copyright © 2022 Interelectronix e.K.
Le code source de ce projet est sous licence GPL-3.0.