Perangkat Lunak Tertanam - Yocto resep ketergantungan tangkapan layar komputer

Dependensi resep Yocto

Cara mendapatkan dependensi antar variabel resep

Apakah Anda pernah membuat pengambilalihan variabel resep di meta-layer kustom Anda dan tidak ada yang terjadi?

Jangan meragukan diri sendiri dan lihatlah prioritas dari meta-layer yang digunakan.

Contoh

Kami ingin membangun distro Yocto Linux untuk Raspberry Pi 4 dan mengubah image latar belakang resep psplash. Untuk melakukan itu, kami membuat folder 'psplash' di meta-layer kustom kami 'meta-interelectronix' dan menambahkan file 'psplash %.bbappend' untuk mengambilalih variabel 'SPLASH_IMAGES'.

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

Setelah menambahkan 'meta-interelectronix' ke 'bblayers.conf ', kita bangun distro Linux di BitBake, flash ke kartu SD dan boot Raspberry Pi 4 dengan itu.

Tetapi tidak ada image latar belakang kustom untuk layar splash yang digunakan - mengapa demikian?

Apa yang menyebabkan perilaku ini?

Setelah mencari 'kesalahan', kita melihat pada variabel prioritas dari meta-layer. Meta-layer memiliki variabel untuk prioritas guna menentukan pada peringkat mana meta-layer digunakan ketika membangun distro Linux di BitBake.

Variabel diatur dalam berkas 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"

Dalam kasus kami, prioritas 'meta-interelectronix' disetel ke '6' dan prioritas 'meta-raspberrypi' disetel ke '9'.

Semakin tinggi prioritas, maka semakin lambat pula variabel file bbappend diterapkan untuk membangun di BitBake. Seperti dalam 'meta-raspberrypi' dan juga file 'psplash_%.bbappend', variabel dari file ini meng-override peng-override di lapisan 'meta-interelectronix' kami lagi, dan tidak ada yang berubah.

Catatan

Ubah prioritas meta-layer kustom Anda ke angka yang tinggi, misalnya 50, untuk menerapkan perubahan Anda nanti sebagai peng-override semua meta-layer asing.

Bagaimana cara mudah untuk mendapatkan peringkat variabel?

Ada perintah mudah untuk mendapatkan peringkat variabel di semua meta-layer:

bitbake-getvar -r recipe VARIABLE

Dalam kasus kami, perintahnya adalah:

bitbake-getvar -r psplash SPLASH_IMAGES

Hasil setelah mengubah prioritas lapisan 'meta-interelectronix' menjadi '50' akan terlihat seperti ini:

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"

Anda juga dapat menampilkan prioritas lapisan yang digunakan dengan perintah berikut:

bitbake-layers show-layers

Lisensi Hak Cipta

Hak Cipta © 2022 Interelectronix e.K.
Kode sumber proyek ini dilisensikan di bawah lisensiGPL-3.0.