ซอฟต์แวร์ฝังตัว - Yocto สูตรการพึ่งพาภาพหน้าจอของคอมพิวเตอร์

การพึ่งพาสูตร Yocto

วิธีรับการพึ่งพาระหว่างตัวแปรสูตร

คุณเคยสร้างการแทนที่ตัวแปรสูตรในเลเยอร์เมตาที่กําหนดเองของคุณและไม่มีอะไรเกิดขึ้นหรือไม่?

อย่าสงสัยตัวเองและดูลําดับความสําคัญของเลเยอร์เมตาที่ใช้แล้ว

ตัวอย่าง

เราต้องการสร้าง Yocto Linux distro สําหรับ 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' เรา bitbake Linux distro แฟลชไปยังการ์ด SD และบูต Raspberry Pi 4 ด้วย

แต่ไม่มีการใช้ภาพพื้นหลังที่กําหนดเองสําหรับหน้าจอสแปลช - ทําไม?

อะไรทําให้เกิดพฤติกรรมนี้?

หลังจากค้นหา 'ข้อผิดพลาด' เราจะดูตัวแปรลําดับความสําคัญของเลเยอร์เมตา Meta-layers มีตัวแปรสําหรับลําดับความสําคัญในการกําหนดอันดับที่ใช้ meta-layer เมื่อ bitbaking Linux distro

ตัวแปรถูกตั้งค่าในไฟล์ 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"
ในกรณีของเราลําดับความสําคัญของ 'meta-interelectronix' ถูกตั้งค่าเป็น '6' และลําดับความสําคัญของ 'meta-raspberrypi' ถูกตั้งค่าเป็น '9'

ยิ่งลําดับความสําคัญสูงเท่าใดตัวแปรของไฟล์ bbappend ที่ใช้กับ bitbake ก็ยิ่งมากขึ้นเท่านั้น เช่นเดียวกับใน '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 Interelectronix e.K.
ซอร์สโค้ดของโครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต GPL-3.0