Wbudowane oprogramowanie - Niestandardowy ekran powitalny Yocto, biały pasek ładowania z czarnym tekstem

Yocto Raspberry Pi

Niestandardowy ekran powitalny z paskiem postępu

Przygotuj obraz dla ekranu powitalnego

Ekran powitalny jest obsługiwany przez recepturę o nazwie „psplash” znajdującą się w katalogu „/workdir/poky-honister/meta-raspberrypi/recipes-core” drzewa źródłowego.

Ponieważ „psplash” oczekuje, że obraz będzie w formacie nagłówka, najpierw musisz przekonwertować obraz na format nagłówka za pomocą skryptu o nazwie „make-image-header.sh”.

Klonuj repozytorium psplash

Aby uzyskać skrypt, sklonuj repozytorium yoctoproject psplash - w tym przypadku do katalogu/workdir

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

W katalogu psplash znajdziesz skrypt „make-image-header.sh”.

Zainstaluj bibliotekę

Skrypt wymaga zainstalowania w systemie „libgdk-pixbuf2.0-dev”. Można to zrobić w drugim oknie terminala za pomocą:

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

Teraz możesz użyć skryptu, aby przekonwertować plik png do pliku .h

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

W rezultacie powinieneś otrzymać plik o nazwie „psplash-ixlogo-img.h”. Nagłówek wygląda następująco:

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

Jeśli chcesz zmienić kolor tła ekranu powitalnego, możesz dodać następujący wiersz:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Spowoduje to ustawienie koloru tła na zielony.

Utwórz niestandardową warstwę meta

Aby dołączyć utworzony obraz ekranu powitalnego, potrzebujemy niestandardowej warstwy meta.

Pierwsze źródło dla rpi-build.

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

Za pomocą „bitbake-layers” tworzymy nową warstwę meta i dodajemy tę warstwę meta do conf/bblayers.conf bieżącego projektu.

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

Po skopiowaniu katalogu „psplash” z meta-raspberrypi/recipes-core do nowej meta-warstwy:

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

Kopiuj psplash-ixlogo-img.h do meta-interelectronix-rpi/recipes-core/psplash/files/

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

Na koniec edytuj „meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend” i zmień „psplash-raspberrypi-img.h” na „psplash-ixlogo-img.h”.

Dołącz psplash

W ostatnim kroku pakiet psplash musi zostać dodany do pliku local.conf projektu. Aby to zrobić, edytuj plik /workdir/rpi-build/conf/local.conf

Mój local.conf wygląda następująco:

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

Licencja na prawa autorskie

Copyright © 2022 Interelectronix e.K.
Ten kod źródłowy projektu jest udostępniany na licencji **GPL-3.0 * *.