Splash-screen with Plymouth on BSP Refrence Multimedia Image

Hi all, I’m Pipe from Italy,

We develop a machine based on Apalis IMX6 that basically boots the OS and launch a gui QT5 application. The app uses some periferals, com, I/O. The machine works offline and doesn’t need remote maintenance.

Up to now I’ve developed the app on Ms Windows with Qt Creator and cross-compile for Boot2Qt OS. I have to (this is a constrain) build the app with QT 5.14.2 or Qt 5.15.1. All works fine.
Now the customer asks for an upgrade where the system have to boot with a splash-screen. The binary Boot2Qt kernel is not modifiable. So I want to change the OS.

I’ve read on Toradex website (Build a Reference Image with Yocto Project/OpenEmbedded | Toradex Developer Center) how to setup the environment and build the BSP Reference Image to later add Plymouth. Based on Ubuntu 22.04, Yocto 6 kirkstone I can succesfully bitbake the tdx-reference-multimedia-image, flash the resulting image to my target and run my application.

I’ve read on Toradex website (How to Add a Custom Splash Screen (Linux) | Toradex Developer Center) how to add Plymouth, so I added the “CORE_IMAGE_EXTRA_INSTALL += “plymouth”” directive on local.conf file (without the other modifications to layers as suggested on the tutorial so to proceed step by step). I launched the bitbake tdx-reference-multimedia-image process but it exits with errors:

pipe@pipe-ESPRIMO-P520:~/oe-core/build$ bitbake tdx-reference-multimedia-image
Loading cache: 100% |############################################| Time: 0:00:01
Loaded 4743 entries from dependency cache.
WARNING: No recipes in default available for:

  • /home/pipe/oe-core/build/…/layers/meta-toradex-nxp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bbappend*
    NOTE: Resolving any missing task queue dependencies
    ERROR: Nothing RPROVIDES ‘dracut’ (but /home/pipe/oe-core/build/…/layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.5.bb RDEPENDS on or otherwise requires it)
    NOTE: Runtime target ‘dracut’ is unbuildable, removing…
    Missing or unbuildable dependency chain was: [‘dracut’]
    NOTE: Runtime target ‘plymouth’ is unbuildable, removing…
    Missing or unbuildable dependency chain was: [‘plymouth’, ‘dracut’]
    ERROR: Required build target ‘tdx-reference-multimedia-image’ has no buildable providers.
    Missing or unbuildable dependency chain was: [‘tdx-reference-multimedia-image’, ‘plymouth’, ‘dracut’]

Summary: There was 1 WARNING message.
Summary: There were 2 ERROR messages, returning a non-zero exit code.

Please, can you help me?

Note: I already had a support question open on Toradex Community (From Boot2Qt to Torizon Image) about this problem but now is off-topic because at first steps I wanted to use Torizon, and i don’t receive anymore Josep answers…

Greetings @Pipe,

without the other modifications to layers as suggested on the tutorial so to proceed step by step

This is the issue right here, you didn’t follow the rest of the steps on the tutorial which affects how the plymouth recipe gets configured and built. In that tutorial notice that we create a bbappend to plymouth that sets:

PACKAGECONFIG = "pango drm"

Without this, the plymouth recipe defaults to:

PACKAGECONFIG ??= "pango initrd"

As seen in the original recipe file: plymouth_0.9.5.bb « plymouth « recipes-core « meta-oe - meta-openembedded - Collection of OpenEmbedded layers

Now the problem is that since initrd is present this pulls in dracut as a required dependency. If you look at your error message the issue is nothing providing dracut in your build:

Missing or unbuildable dependency chain was: [‘tdx-reference-multimedia-image’, ‘plymouth’, ‘dracut’]

Hence the error, since without dracut this build can’t complete. Therefore you should follow the rest of that tutorial and add the recommended bbappend as instructed. Unless you have a reason not to, in which case you must satisfy this dependency chain.

Best Regards,
Jeremias

Thanks Jeremias,

you identified my error, tchnically explained the reasons, suggested the right solution.
This is what I call “support”.

Today I re-bitbaken the BSP 6.4.0 with success, flashed the image to the target and… it worked!
My splash image is displayed on-screen.

I still see u-boot logo and read-out and I will manage to hide them.
More I want to hide the weston background and upper bar.
Any suggestion?

Thanks,
Pipe

More I want to hide the weston background and upper bar.
Any suggestion?

Weston can be customized via the weston.ini file, which is the configuration file for Weston. There are various options as seen here: weston.ini(5) — weston — Debian unstable — Debian Manpages

For removing the upper bar you probably want to look at panel-position, and for background I’m not quite sure what you mean by “hide” it, but there’s probably some option here that will help you.

Keep in mind after any changes you’ll probably need to restart Weston for these to take effect.

Best Regards,
Jeremias