Software încorporat - dependența de rețete Yocto: o captură de ecran a unui computer

Dependențele rețetelor Yocto

Cum se obțin dependențe între variabilele rețetei

Ați creat vreodată o suprascriere a variabilelor rețetei în meta-stratul personalizat și nu se întâmplă nimic?

Nu vă îndoiți de voi înșivă și aruncați o privire la prioritatea meta-straturilor utilizate.

Exemplu

Vrem să construim o distribuție Yocto Linux pentru Raspberry Pi 4 și să schimbăm imaginea de fundal a rețetei psplash. Pentru a face acest lucru, creăm un folder 'psplash' în meta-stratul nostru personalizat 'meta-interelectronix' și adăugăm fișierul 'psplash_%.bbappend' pentru a suprascrie variabilele 'SPLASH_IMAGES'.

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

După ce adăugăm "meta-interelectronix" la "bblayers.conf", bichetăm distribuția Linux, o conectăm pe un card SD și pornim Raspberry Pi 4 cu ea.

Dar nu a fost folosită nicio imagine de fundal personalizată pentru ecranul de pornire - de ce?

Ce cauzează acest comportament?

După căutarea "erorii", aruncăm o privire asupra variabilei prioritare a meta-straturilor. Meta-straturile au o variabilă pentru prioritatea de a defini în ce rang este utilizat meta-stratul atunci când bitbaking distro Linux.

Variabila este setată în fișierul 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"
În cazul nostru, prioritatea "meta-interelectronix" a fost setată la "6", iar prioritatea "meta-raspberrypi" este setată la "9".

Cu cât prioritatea era mai mare, cu atât mai târziu erau variabilele fișierelor bbappend aplicate bitbake. Ca și în "meta-raspberrypi" este, de asemenea, un fișier "psplash_%.bbappend", variabilele acestui fișier suprascriu suprascrierile din stratul nostru "meta-interelectronix" din nou, nimic nu se schimbă.

Notă

Modificați prioritatea metastratului personalizat la un număr mare, de ex. 50, pentru a aplica modificările ulterior, ca suprareglări ale metastraturilor străine.

### Cum să obțineți ușor clasamentul variabilelor?

Există o comandă ușoară pentru a obține clasarea unei variabile pe toate meta-straturile:

bitbake-getvar -r recipe VARIABLE

În cazul nostru, comanda a fost:

bitbake-getvar -r psplash SPLASH_IMAGES

Rezultatul după schimbarea priorității stratului "meta-interelectronix" la "50" arată astfel:

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"

De asemenea, puteți afișa prioritatea straturilor utilizate cu următoarea comandă:

bitbake-layers show-layers

Licență pentru drepturi de autor

Copyright © 2022 Interelectronix e.K.
Acest cod sursă al Proiectului este licențiat sub licența GPL-3.0.