Eingebettete Software - Benutzerdefinierter Begrüßungsbildschirm Yocto eine weiße Ladeleiste mit schwarzem Text

Yocto für Raspberry Pi

Benutzerdefinierter Begrüßungsbildschirm mit Fortschrittsbalken

Vorbereiten des Begrüßungsbildschirmbilds

Der Begrüßungsbildschirm wird von einem Rezept namens "psplash" verwaltet, das im Verzeichnis "/workdir/poky-honister/meta-raspberrypi/recipes-core" des Quelltextverzeichnis zu finden ist.

Da "psplash" erwartet, dass ein Bild im Header-Dateiformat vorliegt, müssen Sie zuerst Ihr Bild in ein Header-Dateiformat konvertieren, indem Sie ein Skript namens "make-image-header.sh" verwenden.

psplash-Repository klonen

Um das Skript zu erhalten, klonen Sie das "yoctoproject psplash"-Repository – in diesem Fall in das Verzeichnis /workdir

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

Im Verzeichnis psplash finden Sie das Skript "make-image-header.sh".

Bibliothek installieren

Das Skript benötigt "libgdk-pixbuf2.0-dev", um im System installiert zu werden. Sie können dies in einem zweiten Terminalfenster tun, mit:

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

Jetzt können Sie das Skript verwenden, um Ihre PNG-Datei in eine .h-Datei zu konvertieren

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

Als Ergebnis sollten Sie eine Datei namens "psplash-ixlogo-img.h" erhalten. Der Header sieht wie folgt aus:

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

Wenn Sie die Hintergrundfarbe des Begrüßungsbildschirms ändern möchten, können Sie die folgende Zeile hinzufügen:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Dadurch wird die Hintergrundfarbe auf Grün gesetzt.

Benutzerdefinierten Meta-Layer erstellen

Um den erstellten Begrüßungsbildschirmbild einzubinden, benötigen wir einen benutzerdefinierten Meta-Layer.

Erste Quelle für rpi-build.

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

Mit "bitbake-layers" erstellen wir einen neuen Meta-Layer und fügen diesen Meta-Layer dem "conf/bblayers.conf" des aktuellen Projekts hinzu.

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

Kopieren Sie danach das Verzeichnis "psplash" von "meta-raspberrypi/recipes-core" zum neuen Meta-Layer:

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

Kopieren Sie "psplash-ixlogo-img.h" nach "meta-interelectronix-rpi/recipes-core/psplash/files/"

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

Bearbeiten Sie schließlich "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" und ändern Sie "psplash-raspberrypi-img.h" in "psplash-ixlogo-img.h".

psplash einfügen

Im letzten Schritt muss das "psplash"-Paket zur "local.conf"-Datei des Projekts hinzugefügt werden. Bearbeiten Sie dazu die Datei /workdir/rpi-build/conf/local.conf

Meine local.conf sieht wie folgt aus:

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

Urheberrechtslizenz

Copyright © 2022 Interelectronix e.K.
Dieser Projekt-Quellcode ist unter der GPL-3.0 Lizenz lizenziert.