Splash Logo on Kernel loading

Hi,
The platform I am working with is the following:

Apalis imx8qm V1.1B (I hope nothing will change on V1.1C)
Carrier Ixora 1.2A
Full HD 15.6’’ Ampire display (LVDS)
BSP 5.x

Finally I have a working system with a Cranksoftware application which autostart after boot, so the LVDS is driven correctly.

I can’t see Splash Logo on kernel loading and I don’t understand why: I enabled the following option in kernel configuration:
CONFIG_LOGO=y

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

I copy-pasted the image I used in the old system: /drivers/video/logo/logo_custom_clut224.ppm

In the kernel working-directory, after compiling I can see logo_custom_clut224.c and logo_custom_clut224.o but during the kernel loading I can’t see anaything on the display (the backlight is on).

Furthermore, during kernel loading I see on the display some messages (the same I see on the debug console). Obviously I don’t want to see this messages and I want to see the my custom splash logo.

How can I achive this target?

Thanks,
Merlin

Hi @Merlin ,

Thanks for using the Toradex community.

I recommend giving the following article a quick read.

Splash Screen Linux Kernel

Let us know if this resolved the issue.

Best Regards
Kevin

1 Like

Hi @kevin.tx , thanks for answeing.
I guess my .ppm was created in the right way (i can easy use it in 4.x kernel).
Maybe the problem is that I didn’t disabled framebuffer console yet.
I’m having some trouble with this, I tried to do it from kernel configuration but because of some dependencies I can’t disable it.
I tried the instruction in the gui but I still have some print on the LVSD during the kernel loading/launching.
It print something like

[0.711577] imx-audmix imx-audmix.0: failed to find SAI platform device

Obviously I need theese message, but only the debug console, not on the LVDS.

On the old system my collegue did it but I can’t understand how i achived this

Hi @Merlin,
are you using the ‘quiet’ kernel boot option? If yes, this also disables the kernel splash logo. Here is a kernel patch to show the splash logo when quiet boot option is enabled:

From 30235ceb71656af9d5b3a92256e38c01d181e2ff Mon Sep 17 00:00:00 2001
From: xxxxxxxxxxxxxx
Date: Fri, 15 Oct 2021 11:10:14 +0200
Subject: [PATCH] show logo when quiet

---
 drivers/video/fbdev/core/fbcon.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 75b770514067..96ba685520dc 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -1040,8 +1040,10 @@ static void fbcon_init(struct vc_data *vc, int init)
 	info = registered_fb[con2fb_map[vc->vc_num]];
 	cap = info->flags;
 
+/*
 	if (logo_shown < 0 && console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
 		logo_shown = FBCON_LOGO_DONTSHOW;
+*/
 
 	if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
 	    (info->fix.type == FB_TYPE_TEXT))
-- 
2.17.1

1 Like

Hi @s.steiger ,
I tried to disable quiet option from u-boot env vars but the problem is still present.
The display “works well” since I can see the boot log on the display (the same I see on the debug console).
I tried to replace the .ppm image with a new one, I compiled the kernel again, but it doesn’t appear.

Is there something like an “image error” I can search in boot log?

Thanks,

Merlin

Hi @Merlin !

We have two other posts that solved what seems to be the same issue as yours.

Please try out their solutions and let us know which one helps you (or if none helped :stuck_out_tongue: )

Best regards,

Hi @henrique.tx ,
very thanks for your answer.
Enrico was a collegue of mine and he started this project on BSP 4.0.
I applied (after reviewing them) his patches to the meta and I reached good result.
Now I have a working system, I also removed framebuffer console from the display and everything seems to work correctly… except from the logo :sweat_smile:

I know it might sound silly but I have no idea why the splash image doesn’t appear.
I have already created kernel splash images for other systems without any problem, I guess I’m doing something wrong.

Splash screen is the only thing I need to do before starting the optimization of the system.

Merlin

During the start-up process I noticed this error:

panel-simple panel-lvds: Reject override mode: panel has a fixed mode

Should be this related to my issue?

Merlin

Hi all,
I’m back to this problem and really can’t find a solution.
Maybe I’m setting a wrong configuration, I don’t know.

I changed the image many times, I tried with different image size, I never saw the kernel splash image.

Here my . config file :
defconfig (192.6 KB)

Is it possible to have a working .config from you?
In this way I can compare my config and yours and understand where is the problem.
I’m going mad with this Logo

Probably a non-starter for you, but could you go the other way and get the splash screen up and running in uboot, tell the kernel to leave it alone, and then take over once your app starts?

Hello @Merlin,

To recap, Could you please confirm that you have tried all of the following and the splash screen still did not work?!:

  • The patch from s.steiger (in teh comments above)
  • Disabling the framebuffer console via
    fw_setenv setupargs "vt.global_cursor_default=0 consoleblank=0 console=ttyLP3 earlycon"
  • And having a Splash screen image of the size 29 pixels less than your resolution as stated in the developer article?

And here is a reference config from us, but I do not see much of changes
config_jane (190.7 KB)

Best Regards,
Janani

Hi @saijanani.tx ,
I confirm all points and I add this consideration:

  • I applied the patch from s.steiger and I also added some print to see if the patch was apllied correctly.
  • I disabled frambuffer console, infact my setupargs is : vt.global_cursor_default=0 consoleblank=0 quiet console=ttyLP1 earlycon
  • The very first time I used a 1920x1080 image, since in BSP 4 I used that image and everything worked.
    After reading the article I tried also with smaller images: 1000x1000 for example and now I’m doing with a 1891x1051 image.

I did the steps described in your gui to get this image.

I’m sure there is something silly I am ignoring because everything seems correct.

If it can be usefull, here you can download my splash image.

I also want to say that display seems to be set correctly also in the Kernel, infact If I don’t disable framebuffer console I see all messages on the display, so it seems to work.

Hello @Merlin ,

I tried with your image and it doesn’t work for me either. So, I believe there is something wrong with how the image has been created. Could you maybe try to make the image again, according to the article here.

I would also check if the splash screen works, by trying with the default logo_linux_clut224.ppm. When this works, you can confirm that there is nothing wrong with your frame buffer or so. This helps to narrow down the source of the issue.

Best Regards,
Janani

Hi @saijanani.tx

I tried logo_linux_clut224.ppm and also this image does not appear.
Con you confirm that using that image on your device, it appears on the display?

Do you think it should be a good idea try to use your .config file to compile my kernel?

Hello @Merlin ,

Yes, the splash screen works with the default image.

I have attached my config file for you to try with it.
config_jane (190.7 KB)

Best regards,
Janani

Hello @saijanani.tx ,

Sorry for my late in answering, I was working on sides part of the project.
The good news is that I improved system performance, the bed one is that Splash Image still doesn’t appear :frowning:

I tried your configuration with default image and with custom image but in any case it works in the right way.

Can you help me pls? Is there something I have to check in order to understand why splash logo does not appear?

Merlin

Hello @Merlin ,

Do you mean the splash image works with our default image? or it doesn’t work either ways?

BR,
Janani

Hi @saijanani.tx ,

Omg my english is very bad, sorry :sweat_smile:

I meant to say that the image does not appear even using your kernel configuration.
I followed this step:

  • Compiled the kernel with my .config and custom splash image → FAIL
  • Compiled the kernel with my .config and standard splash image → FAIL
  • Compiled the kernel with YOUR .config and custom splash image → FAIL
  • Compiled the kernel with YOUR .config and standard splash image → FAIL

Perhaps the problem lies in the configuration of the frambuffer.

The thing that sounds strange to me is: If I don’t set quiet console in boot args, I see text on the screen, so in my opinion the framebuffer is configured in the right way.

I really don’t know what to try to complete my work.

BR,
Merlin

Hi @Merlin !

I would advise you to restart fresh.

Clean all your kernel repository (or maybe download it again) and check if you are on the right branch (should be toradex_5.4-2.3.x-imx for Apalis iMX8)

And work towards the default linux slpash screen logo (the penguin).

And let us know it goes for you.

Best regards,

Hi @henrique.tx !

Restart fresh… again… :smiling_face_with_tear:

I will try another time to do this and I will back to you soon with news.

BR,
Merlin