Встроенное программное обеспечение - Пользовательский экран-заставка Yocto белая панель загрузки с черным текстом

Yocto Raspberry Pi

Пользовательский экран заставки с индикатором выполнения

Подготовка изображения для заставки

Экран заставки обрабатывается набором параметров под названием "psplash", расположенным в каталоге "/workdir/poky-honister/meta-raspberrypi/recipes-core" в исходном дереве.

Поскольку "psplash" ожидает, что изображение будет в формате файла заголовка, сначала вам нужно преобразовать свое изображение в формат файла заголовка, используя скрипт под названием "make-image-header.sh".

Клонируйте репозиторий

Чтобы получить скрипт, клонируйте репозиторий yoctoproject psplash, в даном случае в каталог /workdir.

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

В каталоге psplash вы найдете скрипт "make-image-header.sh".

Установите библиотеку

Скрипту потребуется "libgdk-pixbuf2.0-dev" для установки в систему. Это можно сделать во втором окне терминала с помощью команды:

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

Теперь вы можете использовать скрипт для преобразования своего png-файла в .h-файл.

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

В результате, вы должны получить файл с именем "psplash-ixlogo-img.h". Заголовок выглядит следующим образом:

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

Если вы хотите изменить цвет фона экрана заставки, вы можете добавить следующую строку:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Задает зеленый цвет фона.

Создайте пользовательский слой метаданных

Чтобы включить созданное изображение заставки, нам понадобится пользовательский мета слой.

Первый источник для rpi-build.

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

С помощью "bitbake-layers" мы создаем новый мета слой и добавляем этот мета слой в conf/bblayers.conf текущего проекта.

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

После этого скопируйте каталог "psplash" из meta-raspberrypi/recipes-core в новый мета слой:

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

Скопируйте psplash-ixlogo-img.h в meta-interelectronix-rpi/recipes-core/psplash/files/

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

Наконец, отредактируйте "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" и измените "psplash-raspberrypi-img.h" на "psplash-ixlogo-img.h".

Включите psplash

На последнем шаге пакет psplash необходимо добавить в файл local.conf проекта. Для этого отредактируйте файл /workdir/rpi-build/conf/local.conf

Мой local.conf выглядит следующим образом:

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

Лицензия на авторские права

Авторское право © 2022 Interelectronix e.K.
Данный исходный код проекта лицензирован под лицензией GPL-3.0.