layer:
base: trixie-minbase
splash: rpi-splash-screen
splash:
image_path: /home/user/my-logo.tga
Raspberry Pi fullscreen splash screen support with custom image configuration.
The rpi-splash-screen layer provides fullscreen splash screen support for Raspberry Pi devices. It configures the kernel and initramfs to display a custom image during boot, hiding kernel messages and providing a cleaner boot experience.
Fullscreen boot logo: Display a custom image that covers the entire screen
Early boot display: Image appears as early as possible in the boot process
Automatic configuration: Handles initramfs and kernel command line setup
Flexible validation: Optional image checks can be skipped for testing
Customisable behaviour: Control whether cmdline.txt is automatically updated
The splash screen layer:
Installs the rpi-splash-screen-support package containing the configuration tools
Validates your splash image meets the technical requirements
Copies the image to /lib/firmware/logo.tga
Adds an initramfs hook to load the image early in boot
Updates the kernel command line with required parameters
Rebuilds the initramfs with the new configuration
The splash screen uses the kernel’s built-in fullscreen_logo functionality, which requires specific image formats and dimensions.
Format: TGA (Targa) image file
Colour depth: 24-bit
Maximum dimensions: 1920×1080 pixels
Maximum colours: 224 colours
Compression: Uncompressed
The layer configures the following kernel command line parameters:
fullscreen_logo=1: Enable fullscreen logo display
fullscreen_logo_name=logo.tga: Specify the logo filename
vt.global_cursor_default=0: Hide the cursor
The layer declares the following configuration variables with prefix splash:
image_pathType: String (path)
Default: ${DIRECTORY}/default-splash.tga
Required: No (can be empty to skip installation)
Description: Path to the splash screen image file. Can be absolute or relative to the layer directory.
skip_image_checksType: Boolean
Default: n
Required: No
Description: Skip validation of image dimensions, colour depth and colour count. Not recommended for production use.
update_cmdlineType: Boolean
Default: y
Required: No
Description: Automatically update /boot/firmware/cmdline.txt to enable the splash screen. Set to n if using custom boot configurations.
layer:
base: trixie-minbase
splash: rpi-splash-screen
splash:
image_path: /home/user/my-logo.tga
layer:
base: trixie-minbase
splash: rpi-splash-screen
splash:
image_path: "" # Empty string skips installation
layer:
base: trixie-minbase
splash: rpi-splash-screen
splash:
image_path: /path/to/splash.tga
update_cmdline: n # Don't modify cmdline.txt automatically
layer:
base: trixie-minbase
splash: rpi-splash-screen
splash:
image_path: /path/to/test-splash.tga
skip_image_checks: y # For testing only
The layer includes a helper script for quick testing:
# Generate a simple text-based splash screen
./layer/rpi/device/splash-screen/EXAMPLE-splash.sh "Welcome to Raspberry Pi" splash.tga
# The script creates a 1920×1080 black background with centred white text
# Output is automatically in the correct TGA format
This is the easiest way to create a splash screen for testing or simple deployments.
# Convert and optimise an existing image
convert input.png \
-resize 1920x1080 \
-background black \
-gravity center \
-extent 1920x1080 \
-depth 8 \
-colors 224 \
-type truecolor \
output.tga
Open your image in GIMP
Scale to 1920×1080 or smaller (Image → Scale Image)
Ensure RGB mode (Image → Mode → RGB)
Reduce colours: Image → Mode → Indexed → Set 224 colours maximum
Convert back to RGB: Image → Mode → RGB
Export as TGA: File → Export As
Select 24-bit, disable RLE compression
The layer requires:
rpi-essential-base: Provides basic system utilities
rpi-splash-screen-support: Raspberry Pi splash screen configuration tool
initramfs-tools: For initramfs generation and hooks
The layer modifies the following files in the target system:
/lib/firmware/logo.tga: The splash screen image
/etc/initramfs-tools/hooks/splash-screen-hook.sh: Initramfs hook
/boot/firmware/cmdline.txt: Kernel command line (if update_cmdline=y)
Initramfs images in /boot/firmware/
Check that /lib/firmware/logo.tga exists in the built image
Verify /boot/firmware/cmdline.txt contains the required parameters
Ensure initramfs was rebuilt correctly
Check image meets technical requirements
Verify image is 24-bit TGA format
Check dimensions are ≤1920×1080
Reduce colour count to <224
Ensure image is uncompressed
Set update_cmdline: n and configure manually
Check initramfs hook installed correctly
Review build logs for errors
The layer includes EXAMPLE-splash.sh helper script for quick splash screen generation
Declares (prefix: splash):
| Variable | Description | Default | Validation | Policy |
|---|---|---|---|---|
IGconf_splash_image_path |
Path to the splash screen image file. Must be a 24-bit TGA file, smaller than 1920x1080px with fewer than 224 colours. The image will be copied to /lib/firmware/logo.tga and configured in the initramfs and kernel command line. If the path is relative, it's resolved relative to the layer directory. Set to an empty string to skip splash screen installation. |
${DIRECTORY}/default-splash.tga
|
String value (may be empty) | immediate |
IGconf_splash_skip_image_checks |
If y, skip validation of image dimensions, colour depth and colour count. This may be useful for testing or if using non-standard image formats, but the splash screen may not display correctly. |
n
|
Boolean value - accepts: true/false, 1/0, yes/no, y/n (case insensitive) | immediate |
IGconf_splash_update_cmdline |
If y, automatically update /boot/firmware/cmdline.txt to enable the splash screen. If n, the splash screen will be installed but cmdline.txt must be manually configured. This is useful if using custom boot configurations or alternative bootloaders. |
y
|
Boolean value - accepts: true/false, 1/0, yes/no, y/n (case insensitive) | immediate |
Installs:
rpi-splash-screen-supportinitramfs-toolsfileFile: rpi/device/splash-screen/splash-screen.yaml
Type: static