Software incorporato - Schermata iniziale personalizzata Yocto una barra di caricamento bianca con testo nero

Yocto Raspberry Pi

Schermata iniziale personalizzata con barra di avanzamento

Prepara l'immagine della schermata iniziale

La schermata iniziale è gestita da una ricetta chiamata "psplash" che si trova nella directory "/workdir/poky-honister/meta-raspberrypi/recipes-core" dell'albero delle sorgenti.

Poiché "psplash" si aspetta che un'immagine sia in formato di file header, prima devi convertirla in un formato di file header usando uno script chiamato "make-image-header.sh".

Clona repository psplash

Per ottenere lo script, clona il repository psplash di yoctoproject, in questo caso nella directory/workdir

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

Nella directory psplash si trova lo script "make-image-header.sh".

Installa libreria

Lo script necessita di "libgdk-pixbuf2.0-dev" per essere installato nel sistema. È possibile eseguire questa operazione in una seconda finestra del terminale con:

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

Ora puoi usare lo script per convertire il tuo file png in file .h

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

Come risultato, dovresti ottenere un file chiamato "psplash-ixlogo-img.h". L'intestazione è simile alla seguente:

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

Se desideri modificare il colore di sfondo della schermata iniziale, è possibile aggiungere la seguente riga:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Imposta il colore di sfondo su verde.

Crea meta layer personalizzato

Per includere l'immagine della schermata iniziale creata, abbiamo bisogno di un meta layer personalizzato.

Prima sorgente per rpi-build.

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

Con "bitbake-layers" creiamo un nuovo meta layer e aggiungiamo questo meta layer al file conf/bblayers.conf del progetto corrente.

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

Dopo questo, copia la directory "psplash" da meta-raspberrypi/recipes-core al nuovo meta-layer:

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

Copia psplash-ixlogo-img.h in meta-interelectronix-rpi/recipes-core/psplash/files/

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

Infine modifica "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" e modifica "psplash-raspberrypi-img.h" in "psplash-ixlogo-img.h".

Includi psplash

Nell'ultimo passaggio, il pacchetto psplash deve essere aggiunto al file local.conf del progetto. A tale scopo, modifica il file /workdir/rpi-build/conf/local.conf

Il file local.conf è simile a:

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

Licenza sul diritto d'autore

Copyright © 2022 Interelectronix e.K.
Questo codice sorgente del Progetto è concesso in licenza sotto la licenza **GPL-3.0 * *.