I am using Yocto tools to modify Boot2Qt running on a Toradex Colibri-imx8x module. Specifically, I am trying to add a custom splash screen and at the same time prevent console messages from going to the LCD during Linux boot. I followed directions here (Splash Screen on the Linux Kernel | Toradex Developer Center), but so far I have not been able to get it to work.
As a first step, I would like to simply continue using the Standard 224-color Linux logo (rather than a custom one), and display it without any of the console messages going to the touchscreen.
I have tried the following:
- Remove framebuffer console from the kernel by disabling CONFIG_FRAMEBUFFER_CONSOLE with menuconfig (“Device Drivers Graphics support Console display driver support”). This disabled text output to the LCD, but no splash screen appeared, and the LCD seemed to show random pixel values before a Qt application started.
- Disable framebuffer console by changing U-boot environment variables: set “console” to null, set “consoleblank” to 0, set “vt.global_cursor_default” to 0 (as described here: Framebuffer (Linux) | Toradex Developer Center). However, that did not disable the text output to the screen.
Can you share the sequence of steps needed to display an image during Linux boot while eliminating text output?
I have not had any luck getting the Linux logo running on the downstream (ie NXP provided) BSPs. I have not specifically tried on the i.MX8 but I did try on the Apalis i.MX6 platform and could only get it working with the upstream BSP. But, the i.MX8 platform does not have a fully functional upstream BSP so I think you will have even more difficulty. Additional the system controller that is part of the i.MX8 puts some extra restrictions on it. For example, my understanding is that the Torizon splash screen (which is implemented via Plymouth) does not work. You can see that here. You may be able to use one of the other splash screen managers in Yocto (psplash or dietsplash) but I suspect those will suffer from the same issue.
To disable text output to the screen, make sure “quiet” is in your kernel command line arguments. You can go one step further by adding “console=null” to your arguments and remove any other “console=” arguments.
I’m sorry I don’t have better news on the splash screen but if you get all the LCD output prior to your app cleaned up then the best recommendation is to optimize the boot time such that a splash screen is not needed.
Thanks for the info. How about U-boot splash screen? I see some posts (U-boot splash screen dual LVDS Apalis imx8 - #9 by henrique.tx and Kernel splash screen not showing in BSP 5.2.0 - #18 by henrique.tx) indicating that U-boot splash screens are not supported on the imx8 modules. Apparently, Splash Screen on U-Boot | Toradex Developer Center is not applicable to imx8 modules… Can you confirm this? Thanks.
Yes, I would presume that has the same issue due to the system controller on the i.MX8 platforms.
I’ll confirm with the team and see about adding a note to the docs.
Just wanted to follow up here. There are 3 ways to get a splash screen on the display:
- Linux Kernel boot logo
- Userspace SPLASH utility
Depending on the exact hardware you are using and your objectives we may be able to get you up and running with one or more of the above options. Obviously the earlier in the boot chain the display is lit up with a screen, the better the user experience is. But sometimes there can be flickering as one splash option hands off to the other. Can you share more about your setup and goals?