Software integrado: pantalla de presentación personalizada Yocto una barra de carga blanca con texto negro

Yocto para Raspberry Pi

Pantalla de bienvenida personalizada con barra de progreso

Prepara la imagen de la pantalla de bienvenida

La pantalla de bienvenida se gestiona a través de una receta llamada «psplash» que se encuentra en el directorio «/workdir/poky-honister/meta-raspberrypi/recipes-core» del árbol de código.

Dado que «psplash» espera que una imagen esté en formato de archivo de encabezado, primero necesita convertir tu imagen en este tipo de archivo utilizando un script llamado «make-image-header.sh».

Clonar el repositorio psplash

Para conseguir el script, clona el repositorio psplah del Proyecto Yocto, en este caso, el directorio /workdir

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

En el directorio psplash encontrarás el script «make-image-header.sh».

Instalar la biblioteca

El script requiere que se instale «libgdk-pixbuf2.0-dev» en el sistema. Puedes hacerlo en una segunda ventana del terminal con:

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

Ahora puedes utilizar el script para convertir tu archivo PNG a .h-file

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

Como resultado, deberías obtener un archivo llamado «psplash-ixlogo-img.h». El encabezado tiene este aspecto:

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

Si quieres cambiar el color de fondo de la pantalla de bienvenida, puedes añadir la siguiente línea:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Con esto, el color de fondo pasa a ser verde.

Crea una capa meta personalizada

Para incluir la imagen de la pantalla de bienvenida que has creado, necesitamos una capa meta personalizada.

Primera fuente para rpi-build.

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

Con «bitbake-layers» creamos una nueva capa meta y la añadimos a conf/bblayers.conf del proyecto actual.

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

Después, copia el director «psplash» de meta-raspberrypi/recipes-core a la nueva capa meta:

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 a meta-interelectronix-rpi/recipes-core/psplash/files/

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

Finalmente, edita «meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend» y cambia «psplash-raspberrypi-img.h» por «psplash-ixlogo-img.h».

Incluye psplash

En el último paso, debe añadirse el paquete psplash al archivo local.conf del proyecto. Para hacerlo, edita el archivo /workdir/rpi-build/conf/local.conf

Mi local.conf tiene este aspecto:

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

Licencia de copyright

Copyright© 2022 Interelectronix e.K.
El código fuente de este Proyecto está autorizado en virtud de la licencia GPL-3.0.