Layers: CLI
Il comando bitbake-layers
ci permette di avere una panoramica
di tutto quello che è presente nel nostro
progetto.
Non solo “i layers attivi”, ma anche:
- i recipe che abbiamo a disposizione
- gli append applicati ad un recipe
- le dipendeze tra recipe
Questo a seconda del argomento che diamo al comando:
show-layersshow-recipesshow-appendsshow-cross-dependsshow-overlayed
Come sempre, per maggiori dettagli… documentazione ufficiale.
show-layers
Per avere una panoramica di quali layer sono presenti e attivi nel nostro progetto possiamo utilizzare:
bitbake-layers show-layerslayer path priority
==============================================================================================
meta /home/user/bitbake-builds/layers/openembedded-core/meta 5
meta-poky /home/user/bitbake-builds/layers/meta-yocto/meta-poky 5
meta-yocto-bsp /home/user/bitbake-builds/layers/meta-yocto/meta-yocto-bsp 5
workspace /home/user/bitbake-builds/build/workspace 99show-recipes
Per vedere quali recipe sono disponibili
nel nostro progetto:
bitbake-layers show-recipesParsing recipes...done.
Parsing of 3112 .bb files complete (3111 cached, 1 parsed). 5112 targets, 621 skipped, 0 masked, 0 errors.
=== Available recipes: ===
a2jmidid:
meta-oe 9
abseil-cpp:
meta-oe 20240116.3
accountsservice:
meta-gnome 22.08.8
ace:
meta-oe 6.5.19
ace-cloud-editor:
meta-oe 02.07.17+git
acl:
meta 2.3.2Questo comando non serve a dare informazioni
su quali recipe verranno effettivamente utilizzati
per costruire la nostra immagine e quali no,
ma per dirci quali recipe abbiamo a disposizione
grazie ai layer attivi nel nostro progetto.
show-appends
Per capire quali .bb e .bbappend
vengono utilizzati per definire un recipe:
bitbake-layers show-appends=== Appended recipes ===
base-files_3.0.14.bb:
/workdir/build/../layers/oe/meta-poky/recipes-core/base-files/base-files_%.bbappend
/workdir/build/../layers/st/meta-st-stm32mp/recipes-core/base-files/base-files_%.bbappend
bash_5.2.21.bb:
/workdir/build/../layers/st/meta-st-openstlinux/recipes-extended/bash/bash_%.bbappend
build-sysroots.bb:
/workdir/build/../layers/qt/meta-qt6/recipes-core/meta/build-sysroots.bbappend
busybox_1.36.1.bb:
/workdir/build/../layers/oe/meta-poky/recipes-core/busybox/busybox_%.bbappend
/workdir/build/../layers/st/meta-st-openstlinux/recipes-core/busybox/busybox_%.bbappend
/workdir/build/../layers/st/meta-st-stm32mp/recipes-core/busybox/busybox_%.bbappend
ckermit_302.bb:
/workdir/build/../layers/st/meta-st-openstlinux/recipes-support/ckermit/ckermit_%.bbappendshow-cross-depends
All’interno di un recipe esistono varie istruzioni che creano una dipendenza rispetto ad un altro recipe. Possiamo visualizzarle in dettaglio con:
bitbake-layers show-cross-dependsmeta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb inherits meta/classes-recipe/update-alternatives.bbclass
meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb inherits meta/classes-recipe/gettext.bbclass
meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb inherits meta/classes-recipe/pkgconfig.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb RDEPENDS meta/recipes-core/base-files/base-files_3.0.14.bb
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb RDEPENDS meta/recipes-core/base-passwd/base-passwd_3.6.3.bb
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb RDEPENDS meta/recipes-core/busybox/busybox_1.36.1.bb
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb RDEPENDS meta/recipes-core/netbase/netbase_6.4.bb
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb RRECOMMENDS meta-st-stm32mp/recipes-kernel/linux/linux-stm32mp_6.6.bb
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta-st-stm32mp/classes/flashlayout-stm32mp.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/base.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/patch.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes/terminal.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/staging.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/mirrors.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/utils.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/utility-tasks.bbclass
meta-oe/recipes-core/packagegroups/packagegroup-boot.bb inherits meta/classes-global/logging.bbclassshow-overlayed
Se in un progetto sono presenti due file .bb
con stesso nome, ma versioni diverse,
bitbake sceglie quello con versione più alta.
Esistono meccanismi per modificare questo comportamento,
ma rimane vero che un solo .bb può essere utilizzato
per un recipe.
Il termine overlayed si riferisce al fatto che un
.bb ha la precedenza su un altro .bb e lo oscura.
Possiamo visualizzare questi casi con:
bitbake-layers show-overlayed=== Overlayed recipes ===
noto:
meta-fg-software 1.0
meta-fg-bsp 1.0
pipewire:
meta-st-openstlinux 1.2.3
meta-multimedia 1.0.9
python3-qface:
meta-qt6 2.0.11
meta-python 2.0.8
wireplumber:
meta-st-openstlinux 0.5.6
meta-multimedia 0.5.1