Préparer l'image du splash screen
Le splash screen est géré par une recette appelée « psplash » qui se trouve dans le répertoire « /workdir/poky-honister/meta-raspberrypi/recipes-core » l'arborescence source.
Puisque « psplash » s'attend à ce qu'une image soit au format de fichier d'en-tête, vous devez d'abord convertir votre image en format de fichier d'en-tête en utilisant un script appelé « make-image-header.sh ».
Cloner le référentiel psplash
Pour obtenir le script, clonez le référentiel psplash de yoctoproject, dans ce cas dans le répertoire /workdir
git clone https://git.yoctoproject.org/psplash
Dans le répertoire psplash, vous trouverez le script « make-image-header.sh ».
Installer la bibliothèque
Le script a besoin de « libgdk-pixbuf2.0-dev » pour être installé dans le système. Vous pouvez le faire dans une deuxième fenêtre de terminal avec :
docker exec -it --user=root crops-poky bash
apt-get install libgdk-pixbuf2.0-dev
exit
Vous pouvez maintenant utiliser le script pour convertir votre fichier png en .h-file
./make-image-header.sh <path-to-png>/psplash-ixlogo.png POKY
Comme résultat, vous devriez obtenir un fichier nommé « psplash-ixlogo-img.h ». L'en-tête ressemble à :
/* 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 vous voulez changer la couleur de fond du splash screen, vous pouvez ajouter la ligne suivante :
#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00
Définit la couleur d'arrière-plan sur un vert.
Créer une méta-couche personnalisée
Pour inclure l'image créée du splash screen, nous avons besoin d'une méta-couche personnalisée.
Première source à rpi-build.
source poky-honister/oe-init-build-env rpi-build
Avec « bitbake-layers » nous créons une nouvelle méta-couche et ajoutons cette méta-couche au conf/bblayers.conf du projet en cours.
bitbake-layers create-layer meta-interelectronix-rpi
bitbake-layers add-layer meta-interelectronix-rpi
Après cela, copiez le répertoire « psplash » de meta-raspberrypi/recipes-core vers la nouvelle méta-couche :
mkdir meta-interelectronix-rpi/recipes-core
cp -r /workdir/poky-honister/meta-raspberrypi/recipes-core/psplash meta-interelectronix-rpi/recipes-core/
Copier psplash-ixlogo-img.h vers meta-interelectronix-rpi/recipes-core/psplash/files/
cp <path-to-h-file>/psplash-ixlogo-img.h meta-interelectronix-rpi/recipes-core/psplash/files/
Enfin, éditez « meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend » et changez « psplash-raspberrypi-img.h » en « psplash-ixlogo-img.h ».
Inclure psplash
Dans la dernière étape, le paquet psplash doit être ajouté au fichier local.conf du projet. Pour ce faire, modifiez le fichier /workdir/rpi-build/conf/local.conf
Mon local.conf ressemble à :
## 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 "
Licence de copyright
Copyright © 2022 Interelectronix e.K.
Le code source de ce projet est sous licence GPL-3.0.