Skip to main content
ซอฟต์แวร์ฝังตัว - 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="file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"

คุณยังสามารถแสดงลําดับความสําคัญของเลเยอร์ที่ใช้ด้วยคําสั่งต่อไปนี้:

bitbake-layers show-layers

ใบอนุญาตลิขสิทธิ์

ลิขสิทธิ์ © 2022 Interelectronix e.K.
ซอร์สโค้ดของโครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต GPL-3.0