Perisian Terbenam - Yocto resipi kebergantungan tangkapan skrin komputer

Kebergantungan resipi Yocto

Bagaimana untuk mendapatkan kebergantungan antara pembolehubah resipi

Adakah anda pernah membuat penggantian pembolehubah resipi dalam lapisan meta tersuai anda dan tiada apa yang berlaku?

Jangan ragu-ragu dengan diri sendiri dan lihat keutamaan meta-lapisan yang digunakan.

Contoh

Kami ingin membina distro Yocto Linux untuk Raspberry Pi 4 dan menukar imej latar belakang resipi psplash. Untuk berbuat demikian, kami mencipta folder 'psplash' dalam meta-lapisan tersuai kami 'meta-interelectronix' dan menambah fail 'psplash_%.bbappend' untuk mengatasi pemboleh ubah 'SPLASH_IMAGES'.

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

Selepas menambah 'meta-interelectronix' kepada 'bblayers.conf', kami menggigit distro Linux, berkelipnya ke kad SD dan but Raspberry Pi 4 dengannya.

Tetapi tiada imej latar belakang tersuai untuk skrin percikan digunakan - mengapa itu?

Apa yang menyebabkan tingkah laku ini?

Selepas mencari 'ralat', kita melihat pemboleh ubah keutamaan lapisan meta. Lapisan Meta mempunyai pemboleh ubah untuk keutamaan untuk menentukan kedudukan lapisan meta digunakan semasa menggigit distro Linux.

Pemboleh ubah ditetapkan dalam fail 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"
Dalam kes kami, keutamaan 'meta-interelectronix' ditetapkan kepada '6' dan keutamaan 'meta-raspberrypi' ditetapkan kepada '9'.

Semakin tinggi keutamaan, kemudian adalah pemboleh ubah fail bbappend yang digunakan untuk bitbake. Seperti dalam 'meta-raspberrypi' juga merupakan fail 'psplash_%.bbappend', pemboleh ubah fail ini mengatasi overrides dalam lapisan 'meta-interelectronix' kami sekali lagi, tiada perubahan.

Ambil perhatian

Tukar keutamaan lapisan meta tersuai anda kepada nombor yang tinggi, contohnya 50, untuk menggunakan perubahan anda kemudian kerana semua penggantian lapisan meta asing.

### Bagaimana untuk mendapatkan kedudukan pembolehubah yang mudah?

Terdapat arahan mudah untuk mendapatkan kedudukan pembolehubah ke atas semua lapisan meta:

bitbake-getvar -r recipe VARIABLE

Dalam kes kami, arahan itu ialah:

bitbake-getvar -r psplash SPLASH_IMAGES

Hasilnya selepas menukar keutamaan lapisan 'meta-interelectronix' kepada '50' kelihatan 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 boleh menunjukkan keutamaan lapisan yang digunakan dengan arahan berikut:

bitbake-layers show-layers

Lesen Hak Cipta

Hakcipta Terpelihara © 2022 Interelectronix e.K.
Kod sumber Projek ini dilesenkan di bawah lesen GPL-3.0.