Phần mềm nhúng - Tùy chỉnh màn hình giật gân Yocto một thanh tải màu trắng với văn bản màu đen

Yocto Mâm xôi Pi

Màn hình Splash tùy chỉnh với thanh tiến trình

Chuẩn bị hình ảnh màn hình giật gân

Màn hình giật gân được xử lý bởi một công thức gọi là "psplash" được tìm thấy trong thư mục "/workdir/poky-honister/meta-raspberrypi/recipes-core" của cây nguồn.

Vì "psplash" mong đợi một hình ảnh ở định dạng tệp tiêu đề, trước tiên bạn cần chuyển đổi hình ảnh của mình thành định dạng tệp tiêu đề bằng cách sử dụng tập lệnh có tên là "make-image-header.sh".

Sao chép kho lưu trữ psplash

Để lấy tập lệnh, hãy sao chép kho lưu trữ psplash yoctoproject - trong trường hợp này vào thư mục /workdir

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

Trong thư mục psplash, bạn sẽ tìm thấy tập lệnh "make-image-header.sh".

Cài đặt thư viện

Tập lệnh cần "libgdk-pixbuf2.0-dev" để được cài đặt trong hệ thống. Bạn có thể thực hiện việc này trong cửa sổ terminal thứ hai với:

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

Bây giờ bạn có thể sử dụng tập lệnh để chuyển đổi tệp png của mình thành tệp .h

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

Do đó, bạn sẽ nhận được một tệp có tên "psplash-ixlogo-img.h". Tiêu đề trông giống như:

/* 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*) \
...

Nếu bạn muốn thay đổi màu nền của màn hình giật gân, bạn có thể thêm dòng sau:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Điều này đặt màu nền thành màu xanh lá cây. </:code5:></:code4:></:code3:></:code2:></:code1:>

Tạo lớp meta tùy chỉnh

Để bao gồm hình ảnh màn hình giật gân đã tạo, chúng ta cần một lớp meta tùy chỉnh.

Nguồn đầu tiên để xây dựng rpi.

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

Với "bitbake-layers", chúng ta tạo một meta layer mới và thêm meta layer này vào conf/bblayers.conf của project hiện tại.

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

Sau đó, sao chép thư mục "psplash" từ meta-raspberrypi/recipes-core sang meta-layer mới:

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

Sao chép psplash-ixlogo-img.h vào meta-interelectronix-rpi/recipes-core/psplash/files/

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

Cuối cùng, chỉnh sửa "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" và thay đổi "psplash-raspberrypi-img.h" thành "psplash-ixlogo-img.h".</:code9:></:code8:></:code7:></:code6:>

Bao gồm psplash

Trong bước cuối cùng, gói psplash phải được thêm vào tệp local.conf của dự án. Để thực hiện việc này, hãy chỉnh sửa tệp /workdir/rpi-build/conf/local.conf

local.conf của tôi trông giống như:

## 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 "

Giấy phép bản quyền

**Bản quyền © 2022 Interelectronix ví dụ: **
Mã nguồn Project này được cấp phép theo giấy phép GPL-3.0.