Ugrađeni softver - Yocto recepti ovisnost snimka zaslona računala

Yocto recepti ovisnosti

Kako dobiti ovisnosti između varijabli recepta

Stvarate li ikada nadjačavanje varijabli recepata u prilagođenom meta-sloju i ništa se ne događa?

Ne sumnjajte u sebe i pogledajte prioritet korištenih meta-slojeva.

Primjer

Želimo izgraditi Yocto Linux distro za Raspberry Pi 4 i promijeniti pozadinsku sliku recepta za psplash. Da bismo to učinili, stvaramo mapu 'psplash' u našem prilagođenom meta-sloju 'meta-interelectronix' i dodajemo datoteku 'psplash_%.bbappend' kako bismo nadjačali varijable 'SPLASH_IMAGES'.

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

Nakon dodavanja 'meta-interelectronix' u 'bblayers.conf', bitbake Linux distribuciju, bljesnemo je na SD karticu i s njom pokrenemo Raspberry Pi 4.

Ali nije korištena prilagođena pozadinska slika za početni zaslon - zašto to?

Što uzrokuje takvo ponašanje?

Nakon traženja 'pogreške', pogledamo prioritetnu varijablu meta-slojeva. Meta-slojevi imaju varijablu za prioritet kako bi se definiralo u kojem se rangu meta-sloj koristi prilikom bitpečenja Linux distribucije.

Varijabla je postavljena u datoteci "meta-interelectronix/conf/layer.conf":

BBFILE_PRIORITY_meta-interelectronix = "6"
U našem slučaju prioritet "meta-interelektronix" postavljen je na "6", a prioritet "meta-malina" na "9".

Što je veći prioritet, kasnije su bile varijable bbappend datoteka primijenjenih na bitbake. Budući da je u 'meta-raspberrypi' također datoteka 'psplash_%.bbappend', varijable ove datoteke ponovno nadjačavaju nadjačavanja u našem 'meta-interelectronix' sloju, ništa se ne mijenja.

Bilješka

Promijenite prioritet prilagođenog metasloja na velik broj, npr. 50, kako biste kasnije primijenili promjene kao i sva nadjačavanja stranih metaslojeva.

### Kako lako postići rangiranje varijabli?

Postoji jednostavna naredba za rangiranje varijable u svim meta-slojevima:

bitbake-getvar -r recipe VARIABLE

U našem slučaju, naredba je bila:

bitbake-getvar -r psplash SPLASH_IMAGES

Rezultat nakon promjene prioriteta sloja "meta-interelektronix" u "50" izgleda ovako:

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"

Prioritet korištenih slojeva možete prikazati i sljedećom naredbom:

bitbake-layers show-layers

Licenca za autorska prava

Autorska prava © 2022. Interelectronix e.K.
Ovaj izvorni kod projekta licenciran je pod licencom GPL-3.0.