Software Embarcado - Tela inicial personalizada Yocto uma barra de carregamento branca com texto preto

Yocto Raspberry Pi

Tela inicial personalizada com barra de progresso

Preparação de imagem da tela inicial

A tela inicial é configurada por uma receita chamada "psplash", encontrada no diretório "/workdir/poky-honister/meta-raspberrypi/recipes-core".

Como o "psplash" espera que uma imagem esteja no formato de arquivo de cabeçalho, primeiro você precisa converter sua imagem em um formato de arquivo de cabeçalho usando um script chamado "make-image-header.sh".

Clone do repositório psplash

Para obter o script, clone o repositório psplash do yoctoproject - neste caso para o diretório/workdir

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

No diretório psplash você encontrará o script "make-image-header.sh".

Instalação da biblioteca

O script precisa de "libgdk-pixbuf2.0-dev" para ser instalado no sistema. Você pode fazer isso em uma segunda janela de terminal com:

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

Agora você pode usar o script para converter seu arquivo png em arquivo .h

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

Como resultado, você irá obter um arquivo chamado "psplash-ixlogo-img.h". O cabeçalho será algo parecido com:

/* 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 você quiser alterar a cor de fundo da tela inicial, você pode adicionar a seguinte linha:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Isso define a cor de fundo como verde.

Criação de uma meta-camada personalizada

Para incluir a imagem de tela inicial criada, precisamos de uma meta-camada personalizada.

Primeiro, acesse rpi-build.

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

Com "bitbake-layers" criamos uma nova meta-camada e adicionamos essa meta-camada ao conf/bblayers.conf do projeto atual.

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

Depois, copie o diretório "psplash" do meta-raspberrypi/recipes-core para a nova meta-camada:

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

Copie psplash-ixlogo-img.h para meta-interelectronix-rpi/recipes-core/psplash/files/

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

Finalmente, edite "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" e mude "psplash-raspberrypi-img.h" para "psplash-ixlogo-img.h".

Inclusão de psplash

Na última etapa, o pacote psplash deverá ser adicionado ao arquivo local.conf do projeto. Para fazer isso, edite o arquivo /workdir/rpi-build/conf/local.conf

Meu local.conf é algo parecido com:

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

Licença de direitos autorais

Copyright © 2022 Interelectronix e.K.
Este código-fonte do Projeto está licenciado sob a licença * * GPL-3.0 * *.