ซอฟต์แวร์ฝังตัว - หน้าจอสแปลชแบบกําหนดเอง Yocto แถบโหลดสีขาวพร้อมข้อความสีดํา

Yocto ราสเบอร์รี่ Pi

หน้าจอ Splash แบบกําหนดเองพร้อมแถบความคืบหน้า

เตรียมภาพหน้าจอเริ่มต้น

หน้าจอสแปลชได้รับการจัดการโดยสูตรที่เรียกว่า "psplash" ที่พบภายใต้ไดเรกทอรี "/workdir/poky-honister/meta-raspberrypi/recipes-core" ของต้นไม้ต้นทาง

เนื่องจาก "psplash" คาดว่ารูปภาพจะอยู่ในรูปแบบไฟล์ส่วนหัวก่อนอื่นคุณต้องแปลงรูปภาพของคุณเป็นรูปแบบไฟล์ส่วนหัวโดยใช้สคริปต์ที่เรียกว่า "make-image-header.sh"

ที่เก็บโคลน psplash

ในการรับสคริปต์ให้โคลนที่เก็บ psplash yoctoproject - ในกรณีนี้ไปยังไดเร็กทอรี /workdir

git clone https://git.yoctoproject.org/psplash

ในไดเรกทอรี psplash คุณจะพบสคริปต์ "make-image-header.sh"

ติดตั้งห้องสมุด

สคริปต์ต้องการ "libgdk-pixbuf2.0-dev" เพื่อติดตั้งในระบบ คุณสามารถทําได้ในหน้าต่างเทอร์มินัลที่สองด้วย:

docker exec -it --user=root crops-poky bash
apt-get install libgdk-pixbuf2.0-dev
exit

ตอนนี้คุณสามารถใช้สคริปต์เพื่อแปลงไฟล์ png ของคุณเป็น. h-file

./make-image-header.sh <path-to-png>/psplash-ixlogo.png POKY

ดังนั้นคุณควรได้รับไฟล์ชื่อ"psplash-ixlogo-img.h" ส่วนหัวมีลักษณะดังนี้

/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */

#define POKY_IMG_ROWSTRIDE (4080)
#define POKY_IMG_WIDTH (1020)
#define POKY_IMG_HEIGHT (768)
#define POKY_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */
#define POKY_IMG_RLE_PIXEL_DATA ((uint8*) \
...

ถ้าคุณต้องการเปลี่ยนสีพื้นหลังของหน้าจอเริ่มต้นคุณสามารถเพิ่มบรรทัดต่อไปนี้:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

สิ่งนี้จะตั้งค่าสีพื้นหลังเป็นสีเขียว </:code5:></:code4:></:code3:></:code2:></:code1:>

สร้างเลเยอร์เมตาที่กําหนดเอง

ในการรวมภาพหน้าจอสแปลชที่สร้างขึ้นเราจําเป็นต้องมีเลเยอร์เมตาที่กําหนดเอง

แหล่งแรกในการสร้าง rpi

source poky-honister/oe-init-build-env rpi-build

ด้วย "bitbake-layers" เราสร้างเลเยอร์เมตาใหม่และเพิ่มเลเยอร์เมตานี้ลงใน conf/bblayers.conf ของโครงการปัจจุบัน

bitbake-layers create-layer meta-interelectronix-rpi
bitbake-layers add-layer meta-interelectronix-rpi

หลังจากนี้คัดลอกไดเรกทอรี"psplash"จาก meta-raspberrypi/recipes-core เพื่อ meta - layer ใหม่ :

mkdir meta-interelectronix-rpi/recipes-core
cp -r /workdir/poky-honister/meta-raspberrypi/recipes-core/psplash meta-interelectronix-rpi/recipes-core/

คัดลอก psplash-ixlogo-img.h ไปยัง meta-interelectronix-rpi/recipes-core/psplash/files/

cp <path-to-h-file>/psplash-ixlogo-img.h meta-interelectronix-rpi/recipes-core/psplash/files/

สุดท้ายแก้ไข "meta-interelectronix-rpi / recipes-core / psplash / psplash_%.bbappend" และเปลี่ยน "psplash-raspberrypi-img.h" เป็น "psplash-ixlogo-img.h"</:code9:></:code8:></:code7:></:code6:>

รวม psplash

ในขั้นตอนสุดท้ายต้องเพิ่มแพ็คเกจ psplash ลงในไฟล์ local.conf ของโครงการ ในการดําเนินการนี้ ให้แก้ไขไฟล์ /workdir/rpi-build/conf/local.conf

local.conf ของฉันมีลักษณะดังนี้:

## systemd settings
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME:init_manager = "systemd"
VIRTUAL-RUNTIME:initscripts = ""
IMX_DEFAULT_DISTRO_FEATURES:append = " systemd"

enable some hardware

ENABLE_I2C = "1" ENABLE_UART = "1" DISABLE_SPLASH = "1" DISABLE_RPI_BOOT_LOGO = "1"

IMAGE_INSTALL:append = " psplash" IMAGE_FEATURES += " splash "

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

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