Skip to main content
Beágyazott szoftver - Yocto receptek függőség, egy számítógép képernyőképe

Yocto receptek függőségei

A receptváltozók közötti függőségek lekérése

Előfordult már, hogy receptváltozók felülbírálását hozta létre az egyéni metarétegben, és semmi sem történik?

Ne kételkedj magadban, és nézd meg a használt metarétegek prioritását.

Példa

Szeretnénk építeni egy Yocto Linux disztribúciót a Raspberry Pi 4-hez, és megváltoztatni a psplash recept háttérképét. Ehhez létrehozunk egy "psplash" mappát az egyéni "meta-interelectronix" metarétegünkben, és hozzáadjuk a "psplash_%.bbappend" fájlt az "SPLASH_IMAGES" változóinak felülbírálásához.

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

Miután hozzáadtuk a "meta-interelectronix" -ot a "bblayers.conf" -hoz, bitbak a Linux disztribúciót, flasheljük egy SD-kártyára, és elindítjuk vele a Raspberry Pi 4-et.

De nem használtak egyéni háttérképet a kezdőképhez - miért?

Mi okozza ezt a viselkedést?

A "hiba" keresése után megnézzük a metarétegek prioritási változóját. A metarétegeknek van egy változója a prioritáshoz, amely meghatározza, hogy a metaréteget melyik rangsorban használják a Linux disztribúció bitsütéséhez.

A változó a 'meta-interelectronix/conf/layer.conf' fájlban van beállítva:

BBFILE_PRIORITY_meta-interelectronix = "6"

Esetünkben a "meta-interelectronix" prioritását "6"-ra, a "meta-raspberrypi" prioritását pedig "9"-re állítottuk be.

Minél magasabb volt a prioritás, annál később voltak a bitbake-re alkalmazott bbappend fájlok változói. Mivel a 'meta-raspberrypi' is egy 'psplash_%.bbappend' fájl, ennek a fájlnak a változói ismét felülírják a 'meta-interelectronix' rétegünk felülbírálásait, semmi sem változik.

Jegyzet

Módosítsa az egyéni metaréteg prioritását nagy számra, például 50-re, hogy a módosításokat később az idegen metarétegek összes felülbírálásaként alkalmazhassa.

### Hogyan lehet megkönnyíteni a változók rangsorolását?

Van egy egyszerű parancs egy változó rangsorolására az összes metarétegen:

bitbake-getvar -r recipe VARIABLE

Esetünkben a parancs a következő volt:

bitbake-getvar -r psplash SPLASH_IMAGES

Az eredmény, miután a "meta-interelektronix" réteg prioritását "50" -re változtatta, így néz ki:

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

A használt fóliák prioritását a következő paranccsal is megjelenítheti:

bitbake-layers show-layers

Szerzői jogi licenc

Copyright © 2022 Interelectronix e.K.
Ez a Project forráskód a GPL-3.0 licenc alatt van licencelve.