Splash Logo on Kernel loading

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.


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.


Hi @henrique.tx
I did the cleanall of my kernel (linux-toradex) so bitbake downloaded all the kernel again (I confirm that the I’m using the right branch since the compiled recipes is linux-toradex_5.4-2.3.x.bb).
I did it with a configuration that set as splash screen the Linux Standard Clut, see my configuration:

# CONFIG_LOGO_LINUX_VGA16 is not set
# end of Graphics support

I really don’t know what I’m doing wrong.
Can you try to compile my configuration ad tell me if it works on your system?

Let me know please,
I’m stuck on this little problem but I have really close deadline since the device need to be shipped for certification.


does anyone have a suggestion for my problem?
I feel a bit stupid since I can’t solve it XD, but honestly I don’t know what to try, I tried everything.


Any chance you can move to trying to get the splash screen running via uboot and then just take over normally later?

Hi @Merlin,

just for curiosity - where exactly CONFIG_LOGO_LINUX_CLUT224=y is set? In the past, I was trying to patch arch/arm64/configs/toradex_defconfig to make CONFIG_LOGO_CUSTOM_CLUT224 active. I also tried to modify the defconfig file and replace the original .config file during kernel compilation with it. Without any success.
How to use defconfig file to apply your custom kernel configuration correctly is described in this thread. The solution was found. I personally prefer to use fragments to update kernel config. Please see my post related to kernel logo configuration.

Best regards,

Hi @John1 , really thanks for your suggestion.
I’m pretty sure I tried all the step you indicated in your post.
Once the operating system is up i can get Kernel “real” configuration from /proc/config.gz.
Reading this configuration I can understand if my patch was applied or not.

Also bootargs seems to be equals to mine.

Consider that in my last configuration I just set CONFIG_LOGO_LINUX_CLUT224=y and not CUSTOM_CLUT to see if the problem was with the image.
No succes.

To be honest I didn’t include the following part in my recipes:

 addtask do_after_unpack after do_unpack before do_configure
 do_after_unpack() {
  cp "${SAVEDIR}/logo_custom_clut224.ppm" "${WORKDIR}/git/drivers/video/logo/logo_custom_clut224.ppm"

But I can see that kernel image increase or reduce its size changing the configuration (switching from CUSTOM_CLUT and LINUX_CLUT) so I presume the image was correctly uploaded in the kernel.


Hi @Merlin,

I am sorry my suggestions did not help you with your problem. Basically, if you would just turned on the standard logo with Tux without any other kernel/u-boot modification, you should see Tux logos (their count is equal to the number of SoC CPUs) and console output on the display.

do_after_unpack() function makes sure my custom ppm file replaces the original file soon enough. When a full Linux image is compiled, you can cross check the logo source using logo_custom_clut224.c file (or any other file you are replacing). This c file contains info from which source it was generated. You can check if the source is your image. In my case:
/tmp/work/.../linux-toradex/build/drivers/video/logo/logo_custom_clut224.c points to /tmp/work-shared/.../kernel-source/drivers/video/logo/logo_custom_clut224.ppm = my custom logo.

I provided you a hint how to disable console output on the display during the kernel loading. It is for Colibri iMX8X, but I am sure you will find the way how to implement it for Apalis iMX8X. It is important to set tty and baudrate properly too.
The size of the image is important too, you wrote the logo size is smaller than the display resolution so this should not be the problem.

I am afraid this is the best I can offer you to help you solve the problem together with my previous post.

Best regards,

Hi all,
I’m back again, we sold the machine, so I am really in big problems now :crazy_face:
I tried to go back to the original configuration un boot args and, as you can see in the attached image, the display seems to be right driven (I can see console log on it) but the splash image doesn’t appear.
It doesn’t appear choosing “CUSTOM CLUT” and not even if i choose “LINUX_CLUT” image
So i try to do as follow:
setenv setupargs 'vt.global_cursor_default=0 consoleblank=0 quiet console=ttyLP1 earlycon'

Nothing appears on the screen, not even the splash image.

I really have just few day to solve this issue, it is disheartening to know that I have managed to fix “everything” except this problem.


Hi @Merlin,

when you type dmesg | grep logo in the console, is there any output? When everything is ok, no output is expected.
I presume you also have CONFIG_FRAMEBUFFER_CONSOLE=y and FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y in your kernel config, right?


Hi @John1,
The only thing I get is the following:

root@localhost:~# dmesg | grep logo
[ 6.745895] in teoria logo mostrato.

“in teoria mostrato” in a print I put jn the kernl where THEORETICALLY the logo should be showed.
As I told I also add that I tried custom image and standard image. None of them splash.

Both the parameters you indicated are set as you can see in the attached images



your case seems to be quite tough. My knowledge of the kernel framebuffer is very limited, so I hope somebody from Toradex will reply soon.
But I have to say your time when the kernel logo should appear looks strange - when do you start the clock? My Colibri iMX8X boots to kernel after 3-4 seconds, kernel splash screen appears almost immediately. And after 7 seconds of kernel booting, weston starts with wayland app.


You are rigth but consider that I alway get something similar to this:

root@localhost:~# dmesg | grep logo
[ 3.559498] in teoria logo mostrato.

I have already did 10 On/off an the time is always around 3.54 3.55 sec.

Maybe I did something strange when I provided you the previous dmesg.

Thank for your help, I hope someone can provide a solution for my issue because I really tried everything.
I’m pretty sure there is some stupid thing/flag/stuff wrong flagged and I can’t see it.


Hi all,

sorry for being so pushy but I need to find a solution.
I have controlled all the steps i did on the old distro (4.0) and I everything is the same on the new system.

Let me know pls.


Hi all,

If I try to attach my config and my patches… could someone try to compile the kernel and saying me this stuff works on your system or not?

I feel a bit frustrate being so close to the target for a long time and not find a solution to this little problem


I tried every single suggestion found on the internet,
I guess jars121 had the same problem in this post: Kernel splash screen not showing in BSP 5.2.0

No answer is marked as solution so I’m at the same point of 10 days ago: kernel splash screen does not appear.
No custom Logo, no standard Logo, NOTHING.

I guess the panel is well configured since if I don’t disable frambuffer console, I see all the messages on the screen.

I don’t know where to find a solution.

I have 25 Apalis ready to be programmed, it should be better for me to find a solution XD

Hi all,

I found the solution in this post: Kernel splash screen not showing in BSP 5.2.0 - #27 by henrique.tx
They replied me this night and the problem on my system was that in /boot/overlays.txt there was a reference to hdmi.
I deleted that line in overlays.txt and now logo appears.

I also find a solution to the issue about the size of the logo: in the GUI Toradex indicates to use an image 29px smaller when you use 1920x1080 resolution.
appling the following patch it is possible to use 1920x1080 image:

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;

Thanks all for your support.
I’m sure I will be back with ore hundreds of question XD


1 Like

please help me on this,
as per your solution, I seen overlays present on the reference image are (see the attached png)

not knows what needs to remove exactly

and in overlays.txt
there is only one line is present, there is no reference to HDMI(pls see attached png)

please reply.


Hi @Akhil.y !

You are using a different Toradex module.

It is better to create a new thread.

Thanks for your comprehension.

Best regards,