Kernel splash screen not showing in BSP 5.2.0

Hi @jars121,

Your post came up in a myriad of different posts I was using to solve a similar issue. I am developing on an IMX6 system and using a framebuffer display, and I also had an issue where my framebuffer would not show the boot logo I had specified in logo_custom_clut224.ppm.

After two weeks of debugging, I finally found my solution, and I’m going to share it in hopes that it may help you too.

After booting my embedded device (with no logo showing), I looked through my dmesg to see where my LCD was being initialized. Sure enough, it was found at around 0.4s into boot:

[    0.420074] mxc_sdc_fb fb@2: registered mxc display driver lcd

The troubleshooting I performed that set me on the right track was editing my kernel’s mxc framebuffer code at drivers/video/fbdev/mxc/mxc_ipuv3_fb.c (applicable to my screen) and writing in printk messages to see where the device was “blanked” or “un-blanked”. Eventually, I found that around the same time as my device reached login in dmesg, I also found that my screen was set to “unblank” (resume) for the first time during boot.

I figured, why not try to set my screen to unblank immediately after probing rather than at login? So, at the end of the function mxcfb_probe, I placed a single statement (around line 3580, before “return 0”):

    	mxcfb_blank(0,fbi);
	return 0;

This immediately gave me access to the framebuffer pre-login (fbi, psplash, etc. all work now). In order to get the boot logo to work I had to re-enable framebuffer console in my configuration. Psplash works without it, though.

I hope this might help, I’m not sure if the file mxc_ipuv3_fb.c is applicable to your situation but you may be able to find out if another file will work in a similar manner.

Hi @jars121 ,
Since I’m facing the same problem you described in the thread, I would ask if finally you find a solution to this issue or not…
I’m going mad and apparently all the suggestion I received didn’t work.

Le me know, please.

Merlin

Hi @Merlin

Unfortunately I haven’t been able to solve this yet. I will note that per my thread here, I’ve got other display-related issues which may or may not be related to this issue.

To be clarify, which version are your modules? Similarly, which BSP version are you using? I’m confident that we can find a solution one way or another!

Hi @jars121 !
I hope we can find a solution, my boss will kill me if I won’t find a way to show splash image XD.

About your qeustions, I’m working with:

Apalis iMX8QM V1.1B 4GB WB IT(but also V1.1C)
Carrier Board Ixora V1.2A
Yocto with BSP 5.5.

Furthermore, my Kernel version is linux-toradex_5.4-2.3.x

Hi @Merlin !

Could you check the overlays you have enabled?

cat /boot/overlays.txt

If there is the HDMI overlay, please remove it and test it again.

Best regards,

1 Like

hi @henrique.tx ,
OMG it works :star_struck:

The image is 29 pixel smaller as told in the GUI but it works.

Thank you very much. Finally my problem is solved.

I’m looking for a solution about images size (if it exists)

I hope this solution will work also for @jars121

Merlin

1 Like

Hi @henrique.tx ,
I applied a patch my ex-collegue Enrico realized with BPS 4.0.
The patch is the following:

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 75b7705140673..53648c68466dd 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -582,6 +582,8 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
 	unsigned short *save = NULL, *r, *q;
 	int logo_height;
 
+	vc->vc_bottom = 68;
+
 	if (info->fbops->owner) {
 		logo_shown = FBCON_LOGO_DONTSHOW;
 		return;
--

It allows me to use a 1920x1080 splash image.

Thanks all for your support.
I will indicate the solution also under my opened thread .

Hi @Merlin !

Great!

We will review our documentation about splash screen to try to improve it by discussing this overlay interaction behavior.

Best regards,

1 Like

Hi @henrique.tx !
Your documentation is always great, I think it will be enough a little edit :wink:

Regarding the 29 pixel issue instead, I don’t know if my system is now at risk of explosion XD, but it might be a good idea to also talk about changing the vc->vc_bottom parameter. A full screen image is definitely better than one with cropped edges.
Surely there is a better way to accomplish that done by our patch.
But look ad the attached image: fullscreen splash image :heart_eyes:

Thanks for precious support.

2 Likes

Great to see that you got it working @Merlin !

Unfortunately I’m still unable to get it working. I’ve now done a number of clean builds using the latest BSP (i.e. repo init -u http://git.toradex.com/toradex-manifest.git -b dunfell-5.x.y -m tdxref/default.xml), and have modified the fbcon.c file per Merlin’s patch. In my case I used a vc->vc_bottom value of 30, as my display is 800x480, and a value of 30 should prevent the ‘image is too large’ issue associated with the fbcon implementation.

I don’t have a /boot/overlays.txt file, and in reading this article, I’m finding some potential anomalies with my installation. The linked article states that for BSP versions 5.0 and later, I should have a number of *.dtbo files in the /boot/overlays directory. My installation doesn’t have a /boot/overlays directory; my /boot directory contains the following:

Image.gz
Image.gz-5.4.161-5.6.0-devel+git.0f0011824921
imx8qm-apalis-eval.dtb
imx8qm-apalis-ixora-v1.1.dtb
imx8qm-apalis-v1.1-eval.dtb
imx8qm-apalis-v1.1-ixora-v1.1.dtb
imx8qm-apalis-v1.1-ixora-v1.2.dtb
imx8qp-apalis-v1.1-eval.dtb
imx8qp-apalis-v1.1-ixora-v1.1.dtb
imx8qp-apalis-v1.1-ixora-v1.2.dtb

This may not be linked in any way to the splash screen issue I’m having, but I do find it strange that my installation does not align with the published article nor with Merlin’s.

One final note on overlays, my u-boot reports the following during boot:

Applying Overlay: apalis-imx8_hdmi_overlay.dtbo

This appears to be the HDMI overlay which @henrique.tx asked Merlin to remove from his /boot/overlays.txt file. Given that this is in u-boot I’m not sure whether it’s relevant, but figured I’d point it out just in case.

Hi @jars121 ,
I’m not very skilled but… are you sure that there is no overlay.txt?

Also mounting /boot runtime you can’t see that file?

If you run

root@localhost:~# mount /dev/mmcblk0p1 /tmp/
root@localhost:~# ls /tmp/

what is your output?

Just asking, because if I remove overlay.txt the boot fails on my device and I don’t get

Applying Overlay: apalis-imx8_hdmi_overlay.dtbo

So it sounds strang to me that you haven’t overlays.txt anywhere.

Merlin

Hi @Merlin

Thanks for your input! I have mounted /dev/mmcblk0p1 to /tmp/ as you’ve suggested, and do indeed have an /overlays/ directory as well as an overlays.txt file. I can comment out the fdt_overlays=apalis-imx8_hdmi_overlay.dtbo line in overlays.txt and my system boots normally. The

Applying Overlay: apalis-imx8_hdmi_overlay.dtbo

line doesn’t appear during boot (as expected), but the splash screen is still not displayed.

Hi @jars121
Maybe your custom image is incorrect?

Did you also try to show LOGO_LINUX_CLUT ?
Can you try with the following configuration?

# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
# CONFIG_LOGO_CUSTOM_CLUT224 is not set
# end of Graphics support

Let me know, I’m really interested in this issue now :smiley:

Hi @jars121, have you been able to get it working?

Sorry for the delay in reaching back to you. Please don’t forget that if you remove the reference to HDMI, you should still add the proper overlays to your display. As you can see on the article you mentioned, we have a few pre-compiled device tree overlays that you could use if your display has similar properties: Device Tree Overlays (Linux) | Toradex Developer Center.

Therefore, the line can be commented, but it’d better having it in accordance with your display type. Like:
fdt_overlays=apalis-imx8_lvds_overlay.dtbo apalis-imx8_atmel-mxt_overlay.dtbo display-lt170410_overlay.dtbo

If you’re using a display compatible with our LVDS overlays, for instance.

Best regards,
Guilherme