Issues Adding Custom Splash Screen Using Plymouth


Here is some information about my setup

Board: imx8qxp-colibri-eval
Image: Colibri-iMX8X_Reference-Multimedia-Image

I have followed the tutorial here to add a custom splash screen but I am facing two issues
First Issue
When I create the recipe as mentioned in the tutorial above and run bitbake command to compile the image, I get the following error

ERROR: plymouth-0.9.4-r0 do_configure: QA Issue: plymouth: configure was passed unrecognised options: --with-runtimedir [unknown-configure-option]
ERROR: plymouth-0.9.4-r0 do_configure: Fatal QA errors found, failing task.

Second Issue
If I remove the argument of --with-runtimedir which is causing the above error from the *.bbappend file then the image gets compiled but after flashing the image to the board the splash screen doesn’t show up and the kernel boots up. During the bootup process it hangs with this trace
[ ] A start job is running for Hold unt… finishes up (1min 11s / no limit)

I can ssh to the system and it works. My expectation was that during boot instead of the kernel boot messages, I would see my splash screen.

Let me know if you require further information

Hello @mshahabuddin,

Welcome to Toradex Community :partying_face:

Regarding your question: I tried to reproduce the error but could not. For me, the build was finished successfully. I would ask you to do some checks:

  1. Have you added the new custom layer to your conf/bblayers.conf file?
  2. Have you added the correct spinner.plymouth file?

Please go through the documentation again to make sure that you haven’t missed any steps.


Please see my reply below

  1. Yes I added the new layer to conf/bblayers.conf. The error I mentioned above happens when I run Bitbake to compile the image after adding the new layer to conf/bblayers.conf file.
  2. I am using this spinner.plymouth. This file is mentioned in the tutorial.

Here are the logs just before it fails

config.status: creating themes/fade-in/Makefile
config.status: creating themes/tribar/Makefile
config.status: creating themes/text/Makefile
config.status: creating themes/details/Makefile
config.status: creating themes/solar/Makefile
config.status: creating themes/glow/Makefile
config.status: creating themes/spinner/Makefile
config.status: creating themes/script/Makefile
config.status: creating images/Makefile
config.status: creating scripts/plymouth-generate-initrd
config.status: creating scripts/plymouth-populate-initrd
config.status: creating scripts/plymouth-set-default-theme
config.status: creating scripts/Makefile
config.status: creating systemd-units/plymouth-halt.service
config.status: creating systemd-units/plymouth-kexec.service
config.status: creating systemd-units/plymouth-poweroff.service
config.status: creating systemd-units/plymouth-quit.service
config.status: creating systemd-units/plymouth-quit-wait.service
config.status: creating systemd-units/plymouth-read-write.service
config.status: creating systemd-units/plymouth-reboot.service
config.status: creating systemd-units/plymouth-start.service
config.status: creating systemd-units/plymouth-switch-root.service
config.status: creating systemd-units/systemd-ask-password-plymouth.path
config.status: creating systemd-units/systemd-ask-password-plymouth.service
config.status: creating systemd-units/Makefile
config.status: creating docs/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
**configure: WARNING: unrecognized options: --with-runtimedir**
DEBUG: Shell function do_configure finished
DEBUG: Executing python function do_qa_configure
NOTE: Checking autotools environment for common misconfiguration
NOTE: Checking configure output for unrecognised options
**ERROR: QA Issue: plymouth: configure was passed unrecognised options: --with-runtimedir [unknown-configure-option]**
**ERROR: Fatal QA errors found, failing task.**
DEBUG: Python function do_qa_configure finished

Let me know if you need the entire log file

Below is *.bbappend file

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI += " \
    file://Getinge_800x480_Splashscreen.png \
    file://spinner.plymouth \

PACKAGECONFIG = "pango drm"

EXTRA_OECONF += "--with-udev --with-runtimedir=/run"

do_install:append () {
    install -m 0644 ${WORKDIR}/Getinge_800x480_Splashscreen.png ${D}${datadir}/plymouth/themes/spinner/watermark.png
    install -m 0644 ${WORKDIR}/spinner.plymouth ${D}${datadir}/plymouth/themes/spinner/spinner.plymouth

If I remove --with-runtimedir=/run from this file it will compile the image successfully but when I flash this image the splash screen does not show up I still see kernel log.

Hello @mshahabuddin,

I still haven’t been able to reproduce the error. Your bbappend file looks good to me and for me, the build was successful with that file.
I’m assuming that it could be something related to the build configuration itself. Could you please send me your full Build configuration? You should be able to see it in the output of bitbake command.

Here is the build configuration “meta-custom” is the layer I added which contains plymouth recipe

Build Configuration:
BB_VERSION = “1.46.0”
BUILD_SYS = “x86_64-linux”
TARGET_SYS = “aarch64-tdx-linux”
MACHINE = “colibri-imx8x”
DISTRO = “tdx-xwayland”
DISTRO_VERSION = “5.7.2-devel-20230912194833+build.0”
TUNE_FEATURES = “aarch64”
meta-toradex-nxp = “HEAD:b288744310a77181db0fde2bee5d86e7d890f28b”
meta-freescale = “HEAD:325c08c0773a2f1c54d28ea8aeda7c3d110d88a3”
meta-freescale-3rdparty = “HEAD:f37f72a85ba273b27347169b727c889f42b91d6c”
meta-toradex-tegra = “HEAD:43b5af1d01a9c166e41e0ec3c93efc57c5c130b9”
meta-toradex-bsp-common = “HEAD:f88e4c50e64ca144a7a15bd50c92a13d325f6780”
meta-python = “HEAD:e707e9b7cf5c62bff4fee029965a87b22dd4ccba”
meta-freescale-distro = “HEAD:5d882cdf079b3bde0bd9869ce3ca3db411acbf3b”
meta-toradex-demos = “HEAD:a5ab14682a0b863f36987ee6f8f3f2ec8b637250”
meta-qt5 = “HEAD:5ef3a0ffd3324937252790266e2b2e64d33ef34f”
meta-toradex-distro = “HEAD:e9a1072abf323fe3e91c7aead182130417c2226d”
meta-poky = “HEAD:e422c92724c8456d57c7914dd29615b13861fefd”
meta = “HEAD:daaee6fcb0d201f041678af433d8e1cd6f924d09”
meta-custom = “master:e3ba15f6c602547d85900c3013ddabc442fa9231”

Hello @mshahabuddin,

From your build configuration, I see that you are trying to build a reference image version 5.7.2 which also uses an older bitbake version (BB_VERSION = “1.46.0”) in the build configuration. The error message that you received during the build was a known issue that was fixed on the later Bitbake version. I was able to reproduce this error while trying to build a BSP 5 image with the custom layer for the Plymouth splash screen while I could successfully build a BSP 6 image.

There are two suggestions that I can give you here:

  1. To add a custom splash screen on BSP version 5 (if you really want to go with BSP 5), you should follow this article: Splash Screen on the Linux Kernel | Toradex Developer Center

  2. The build configuration for BSP 6 uses a newer bitbake engine (BB_VERSION = “2.0.0”) and you could also use Plymouth for the kernel splash screen. The document that you are referring to explains how to add a custom splash screen using Plymouth on BSP 6.

I would really recommend you upgrade to BSP 6 as it comes with newer kernel support and some bugs were also fixed on this version. You can read more about the release notes on different versions here: Embedded Computing News

If it helps I can also send you my build configuration (for the successful build for BSP 6) here:

Build Configuration:
BB_VERSION           = "2.0.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-tdx-linux"
MACHINE              = "colibri-imx8x"
DISTRO               = "tdx-xwayland"
DISTRO_VERSION       = "6.4.0-devel-20230913081042+build.0"
TUNE_FEATURES        = "aarch64 armv8a crc cortexa35"
TARGET_FPU           = ""
meta-toradex-nxp     = "HEAD:021194ccd174fdb2b939636c40a2b518f51d6e7a"
meta-freescale       = "HEAD:3e9ef23d98aa842cf84251a27c9b8dde8925ea61"
meta-freescale-3rdparty = "HEAD:6dbdabe09e410818dcda8801e1cbd8b68d539e63"
meta-toradex-ti      = "HEAD:bd357480c60445012b0ab8b09ebec82184a3aa2d"
meta-arm             = "HEAD:b187fb9232ca0a6b5f8f90b4715958546fc41d73"
meta-ti-extras       = "HEAD:1ccba22923b1c0ce3558075f3de3846ba983155c"
meta-toradex-bsp-common = "HEAD:56e195b10849e2973130695a1917c987a4fe1813"
meta-python          = "HEAD:529620141e773080a6a7be4615fb7993204af883"
meta-freescale-distro = "HEAD:d5bbb487b2816dfc74984a78b67f7361ce404253"
meta-toradex-demos   = "HEAD:ac087af8ca07b847e48e9f321a1e606b61b156c1"
meta-qt5             = "HEAD:bff5bd937f0776166e81a63f3dd39ede348ef758"
meta-toradex-distro  = "HEAD:491e249099a36c2eb7f8c0192f100265c1eae0b1"
meta-poky            = "HEAD:d45be9886a9680b88ecf2f1b9717492a0df9158e"
meta                 = "HEAD:ea920e3c8075f3a1b79039341f8c889f6197a07f"
meta-custom          = "<unknown>:<unknown>"

I hope that helps.

Hello @mshahabuddin,

May I know if you could make any progress on this topic here?