iMX8M/Yocto Splashscreen - Brief Black Screen Before Splashscreen on Shutdown Only


I am working with a Verdin iMX8M Plus SoM with a Dahlia carrier board and video over HDMI. I have a custom Yocto build based off of the Toradex Minimal Reference Image and have implemented a splash screen in the kernel.

On boot up, there is a seamless transition between the splash screen and my Qt application starting. However, when the system is shutdown (via the Qt application executing “poweroff”), there is a brief black screen between when the application ends and the splash screen appears again. The black screen is brief (~0.25s), but very noticeable.

Any idea how to prevent this black screen and make the transition as seamless as boot up? Any advice or recommendations are greatly appreciated!


The black screen you’re seeing when transitioning from your Qt application to the shutdown splash screen is likely due to the termination of the application’s graphical context and the time it takes to initialize the splash screen context.
You can try:

  • Modify Your Application - Depending on how your application is designed, it might be possible to modify it so that it does not close until the very last possible moment during the shutdown process. This would likely involve moving your poweroff call to the end of your application’s exit routine, if it is not already there.
  • Use Different Shutdown Method - Another option might be to use a different shutdown method. Rather than calling poweroff, you could try calling halt or shutdown -h now. These commands accomplish the same goal, but they do it in slightly different ways, and one might produce a less noticeable black screen than the others.
  • Create Seamless Transition Application: You might consider creating a small application or script that only exits after the splash screen has successfully started. This way, your main Qt application can terminate, start the transitional application, which then starts the splash screen, initiate a shutdown and only exits once the splash screen is showing. It’s a bit more complex but could provide the seamless transition you’re looking for.