Perangkat Lunak Tertanam - Layar splash khusus Yocto bilah pemuatan putih dengan teks hitam

Yocto Raspberry Pi

Layar splash kustom dengan bilah kemajuan

Siapkan gambar layar splash

Layar splash diatur oleh sebuah rumus yang disebut "psplash" yang dapat ditemukan di direktori "/workdir/poky-honister/meta-raspberrypi/recipes-core" di pohon sumber.

Karena "psplash" hanya menerima gambar dalam format file header, pertama, Anda perlu mengonversi gambar Anda menjadi file header dengan menggunakan skrip yang disebut "make-image-header.sh".

Kloning repositori psplash

Untuk mendapatkan skripnya, kloning repositori pslplash yoctoproject - dalam hal ini direktori /workdir

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

Di dalam direktori psplash, Anda akan menemukan skrip "make-image-header.sh".

Instal perpustakaan

Skrip memerlukan "libgdk-pixbuf2.0-dev" agar terinstal ke dalam sistem. Anda dapat melakukan ini di jendela terminal kedua dengan:

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

Sekarang, Anda dapat menggunakan skrip untuk mengonversi file png ke .h-file

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

Hasilnya, Anda akan mendapatkan file yang bernama "psplash-ixlogo-img.h". Header-nya akan terlihat seperti:

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

Jika Anda ingin mengubah warna latar dari layar splash, Anda dapat menambahkan baris berikut:

#define PSPLASH_BACKGROUND_COLOR 0x07,0x85,0x00

Ini akan menjadikan warna layar menjadi hijau.

Buat lapisan meta kustom

Untuk menyertakan gambar layar splash yang dibuat, kami memerlukan lapisan meta kustom.

Pertama, ambil dari sumber untuk rpi-build.

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

Menggunakan "bitbake-layers", kami membuat lapisan meta baru dan menambahkan lapisan meta ini ke conf/bblayers.conf proyek saat ini.

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

Setelah ini, salin direktori "psplash" dari meta-raspberrypi/recipes-core ke lapisan meta baru:

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

Salin psplash-ixlogo-img.h ke meta-interelectronix-rpi/recipes-core/psplash/files/

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

Terakhir, edit "meta-interelectronix-rpi/recipes-core/psplash/psplash_%.bbappend" dan ubah "psplash-raspberrypi-img.h" menjadi "psplash-ixlogo-img.h".

Sertakan psplash

Di langkah terakhir, paket psplash harus ditambahkan ke file local.conf file proyek. Untuk melakukan hal ini, edit file /workdir/rpi-build/conf/local.conf

local.conf saya menjadi seperti:

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

Lisensi Hak Cipta

Hak Cipta © 2022 Interelectronix e.K.
Kode sumber proyek ini dilisensikan di bawah lisensiGPL-3.0.