Boot Logo in kernel

Hi,

We are trying to show the custom boot logo in our carrier board with LCD.
We were able to change the cboot logo and nvidia logo in the xsession.rc file.

But between the cboot logo and xsession rc logo, the LCD is blank. We want to fill the blank screen with logo. We added the logo in drivers/video/logo/logo_linux_clut224.ppm . But it is not showing up during kernel boot.

Please let us know what is missing.
Thanks in andvance

Hi,

What is your current method to change them? Could you describe it?

we used this method to convert PNG to PPM

pngtopnm  <logo_file>.png > linuxlogo.pnm
pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm > logo_linux_clut224.ppm

No, I mean how you change the cboot logo and what is done in xsession.rc?

And do you also see such blank when you boot default jetapck with nv logo?

  1. For cboot, we followed steps in /tools/bmp-splash/ bmp-blob-README.txt and in .xsession.rc we replaced NVIDIA logo with our PNG file.

  2. And do you also see such blank when you boot default jetapck with nv logo? - Yes it is blank with default jetpack.

Sorry, I have edited the question. Logo is not showing up in the kernel.

Sorry that there is nothing I can help if even the default jetpack has such issue.

The png file is the only logo that we put in kernel.

Thanks @WayneWWW.

Usually we will enable the kernel logo by adding these values in kernel config.
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

It have worked in other platforms. But it is not working in jetson platforms. Any idea on that ?

Sorry, no experience on this driver.

Could you add some print in fbmem.c and see if the show logo function really gets called?

1 Like

@WayneWWW
I have added print fb_show_logo(), I was able to see the debug prints.
I debugged further, and found that fb_show_logo_line() returns with this condition

if (logo == NULL || info->state != FBINFO_STATE_RUNNING ||
    info->flags & FBINFO_MODULE)
{
	return 0;
}

I checked that logo is not null and the state is FBINFO_STATE_SUSPENDED.

So the Frame buffer is suspended at that point. Any reason for this ?

Sorry, I don’t know.

Maybe you can check if tegra display driver is up at that time or not. Search the function fb_set_suspend. This one should set the state of fb.

I was able to retain the cboot logo till boot completion by removing the framebuffer console in the kernel.

-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=n

@WayneWWW thanks for your help.

1 Like