एम्बेडेड सॉफ्टवेयर - कस्टम स्प्लैश स्क्रीन Yocto काले पाठ के साथ एक सफेद लोडिंग बार

Yocto Raspberry Pi

प्रोग्रेस बार वाली कस्टम स्प्लैश स्क्रीन

स्प्लैश स्क्रीन की इमेज तैयार करें

स्प्लैश स्क्रीन को "psplash" नाम की एक रेसिपी के ज़रिए हैंडल किया जाता है। यह रेसिपी सोर्स ट्री के "/workdir/poky-honister/meta-raspberrypi/recipes-core" डायरेक्टरी में मौजूद होती है।

चूँकि "psplash" के लिए यह ज़रूरी है कि इमेज हेडर फ़ाइल फ़ॉर्मेट में होनी चाहिए, इसलिए पहले आपको अपनी इमेज को "make-image-header.sh" नाम की स्क्रिप्ट का इस्तेमाल करके हेडर फ़ाइल फ़ॉर्मेट में बदलना होगा।

क्लोन psplash रिपॉज़िटरी

स्क्रिप्ट हासिल करने के लिए, yocto प्रोजेक्ट 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 से meta-layer में कॉपी करें:

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/ में कॉपी करें

<:code9>

अंत में "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 लाइसेंस के तहत लाइसेंस पर दिया जाता है।