組み込みソフトウェア - カスタムスプラッシュ画面 Yocto 黒いテキストの白いローディングバー

Yocto Raspberry Pi

プログレスバー付きカスタムスプラッシュスクリーン

スプラッシュスクリーン画像の準備

スプラッシュ画面は、ソースツリーの"/workdir/poky-honister/meta-raspberrypi/recipes-core"ディレクトリにある" psplash"というレシピによって処理されます。「psplash」はヘッダーファイル形式の画像を想定しているため、まず「make-image-header.sh」というスクリプトを使用して画像をヘッダーファイル形式に変換する必要があります。### psplashリポジトリを複製スクリプト

を取得するには、yoctoproject psplashリポジトリを複製します。この場合は/workdirディレクトリに複製します。

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

psplashディレクトリに「make-image-header.sh」というスクリプトがあります。###ライブラリのインストール

スクリプトには、システムにインストールする"libgdk-pixbuf2.0-dev"が必要です。2番目のターミナルウィンドウで次の操作を行うことができます。

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

スクリプトを使用して、pngファイルを.h-fileに変換できるようになりました

./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 "

著作権ライセンス

** Copyright © 2022 Interelectronix e.K.** このプロジェクトのソースコードは、** GPL-3.0 **ライセンスの下でライセンスされています。