البرامج المضمنة - تبعية وصفات Yocto لقطة شاشة لجهاز كمبيوتر

تبعيات وصفات Yocto

كيفية الحصول على التبعيات بين متغيرات الوصفة

هل قمت من قبل بإنشاء تجاوز لمتغيرات الوصفة في الطبقة الوصفية المخصصة الخاصة بك ولم يحدث شيء؟

لا تشكك في نفسك وألق نظرة على أولوية الطبقات الوصفية المستخدمة.

مثال

نريد بناء جهاز استدعاء Yocto Linux لـ Raspberry Pi 4 وتغيير صورة الخلفية لوصفة psplash. للقيام بذلك، ننشئ مجلدًا 'psplash' في الطبقة الوصفية المخصصة 'meta-interelectronix' ونضيف الملف 'psplash_%.bbappend' لتجاوز متغيرات 'SPLASH_IMAGES'.

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

بعد إضافة 'meta-interelectronix' إلى 'bblayers.conf'، مع تكوين Linux distro، ونومضه إلى بطاقة SD ونمهد Raspberry Pi 4 به.

ولكن لم يتم استخدام صورة خلفية مخصصة لشاشة البداية - لماذا ذلك؟

ما الذي يسبب هذا السلوك؟

بعد البحث عن "الخطأ "، سنلقي نظرة على متغير الأولوية للطبقات الوصفية. تحتوي الطبقات الوصفية على متغير للأولوية لتحديد الترتيب الذي يتم فيه استخدام الطبقة الوصفية عند تكون توزيع Linux.يتم تعيين المتغير في الملف 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"

في حالتنا، تم تعيين أولوية 'meta-interelectronix' على '6' وتم تعيين أولوية 'meta-raspberrypi' على '9'.

كلما كانت الأولوية أعلى، كانت متغيرات ملفات bbappend تنطبق على التكوين. كما هو الحال في 'meta-raspberrypi' هو أيضا ملف 'psplash_%.bbappend'، فإن متغيرات هذا الملف تتجاوز التجاوزات في طبقة 'meta-interelectronix' مرة أخرى، ولا يتغير شيء.

ملاحظة

قم بتغيير أولوية الطبقة الوصفية المخصصة إلى عدد كبير، على سبيل المثال 50، لتطبيق تغييراتك في وقت لاحق كما جميع التجاوزات من الطبقات الوصفية الأجنبية.

كيف تسهل ترتيب المتغيرات؟

هناك أمر سهل للحصول على ترتيب متغير على جميع الطبقات الوصفية:

bitbake-getvar -r recipe VARIABLE

في حالتنا، كان لأمر:

bitbake-getvar -r psplash SPLASH_IMAGES

تبدو النتيجة بعد تغيير أولوية طبقة 'meta-interelectronix' إلى '50' كالتالي:

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"

يمكنك أيضًا إظهار أولوية الطبقات المستخدمة مع الأمر التالي:

bitbake-layers show-layers

ترخيص حقوق الطبع والنشر

حقوق الطبع والنشر © 2022 Interelectronixe.K.
رمز مصدر المشروع هذا مرخص بموجب ترخيص** GPL-3.0 **.