Boot Logo¶
Note
- On Allwinner platforms, the logo is displayed in two stages: U‑Boot and Kernel.
bootlogo.bmpis used for the U‑Boot stage, andbootlogo_kernel.bmpis used for the Kernel stage. - On Rockchip platforms, the logo is also displayed in two stages:
logo.bmpfor U‑Boot andlogo_kernel.bmpfor the Kernel stage. - The logo resolution must be equal to or smaller than the display resolution.
- The replacement logo must match the original file format (e.g., BMP, bit depth, etc.).
Logo File Paths¶
| Motherboard | SoC | Platform | Logo Path |
|---|---|---|---|
| K5 / K5C | A133 | Allwinner | longan/device/config/chips/a133/configs/c3/android/bootlogo.bmp |
| K2B / K2C | H618 | Allwinner | longan/device/config/chips/h618/boot-resource/boot-resource/bootlogo.bmp |
| K10B | A733 | Allwinner | longan/device/config/chips/a733/configs/demo_aiot/bootlogo.bmp |
| K1 / K1B / K3 / K8 | RK3562 / RK3568 / RK3588 | Rockchip | kernel-5.10/logo.bmpkernel-5.10/logo_kernel.bmp |
| K7 / K7C | RK3576 | Rockchip | kernel-6.1/logo.bmpkernel-6.1/logo_kernel.bmp |
| K9 | T527 | Allwinner | longan/device/config/chips/t527/boot-resource/boot-resource/bootlogo.bmp |
psplash Userspace Boot Splash¶
psplash is a lightweight boot splash screen tool for embedded Linux, used to display a static logo and a progress bar.
Compilation¶
# Install dependencies
sudo apt update
sudo apt install build-essential autoconf automake libtool git libgdk-pixbuf2.0-dev -y
# Download source code
git clone git://git.yoctoproject.org/psplash
cd psplash
# Create autogen.sh
cat > autogen.sh << 'EOF'
#!/bin/bash
aclocal
autoheader
automake --add-missing
autoconf
EOF
chmod +x autogen.sh
# Compile
./autogen.sh
./configure --host=arm-linux
make
# Test run
sudo ./psplash
Replacing the Logo¶
# Method 1: Replace the default image directly
./make-image-header.sh psplash-poky.png POKY
make clean && make
# Method 2: Use a custom filename
./make-image-header.sh logo.png POKY
# Method 2 also requires updating the header file references in the source:
--- a/Makefile.am
+++ b/Makefile.am
- psplash-poky-img.h psplash-bar-img.h $(FONT_NAME)-font.h
+ logo-img.h psplash-bar-img.h $(FONT_NAME)-font.h
--- a/psplash.c
+++ b/psplash.c
-#include "psplash-poky-img.h"
+//#include "psplash-poky-img.h"
+#include "logo-img.h"
Configuring Startup¶
1. Create the startup script /etc/init.d/psplash.sh:
#!/bin/sh
export TMPDIR=/mnt/.psplash
mount tmpfs -t tmpfs $TMPDIR -o,size=40k
/usr/bin/psplash --angle 0 &
2. Create the systemd service file /usr/lib/systemd/system/psplash.service:
[Unit]
Description=Psplash Boot Logo
DefaultDependencies=no
[Service]
ExecStart=/etc/init.d/psplash.sh
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target
3. Deploy and enable:
sudo cp psplash /usr/bin/
sudo chmod 755 /usr/bin/psplash /etc/init.d/psplash.sh
sudo systemctl enable psplash.service
Other Customisations¶
Disable the progress bar and boot messages:
--- a/psplash-config.h
+++ b/psplash-config.h
-#define PSPLASH_STARTUP_MSG ""
+//#define PSPLASH_STARTUP_MSG ""
-#define PSPLASH_SHOW_PROGRESS_BAR 1
+//#define PSPLASH_SHOW_PROGRESS_BAR 1
Disable kernel framebuffer console logs (to prevent overwriting the boot splash):
--- a/arch/arm64/configs/linux_h618_defconfig
+++ b/arch/arm64/configs/linux_h618_defconfig
+CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
Q&A¶
- Compilation error: "command not found" – Install the dependencies:
sudo apt install build-essential autoconf automake libtool -y - Screen blank after running psplash – Check that the framebuffer device exists:
ls -l /dev/fb0 - Startup service does not take effect – Check the service status and logs:
sudo systemctl status psplash.service,sudo journalctl -u psplash.service - Logo display is abnormal – Ensure the image is in PNG format and regenerate the header:
./make-image-header.sh logo.png POKY