Enable Kernel Phase Boot Logo on 35.5.0

Hi, so recently been trying to add some graphics to the boot process. The bootloader logo works, but during the kernel boot up, the default behavior is to show the boot logs, which I want to replace with an animation/static logo.

First thing I tried was enabling plymouth by adding quiet splash plymouth:debug to extlinux.conf. Upon inspecting the plymouth debug log under /var/log/ as well as journalctl, it seemed the plymouth thought it had displayed logo for 8 or so seconds, but during the boot, nothing changed and boot log still showed. After that, I have also tried changing the console parameters in extlinux.conf as people have made plymouth work by forcing it to use framebuffer. So such luck on r35.5.0.

Then, decided to modify the kernel to display a logo. Enabled logo CONFIG_LOGO_LINUX_MONO=y but nothing showed still. Found this post suggesting

-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=n

but once I did that the backlight turns off after bootloader logo…

Checked these conditions inside fbmem.c

if (logo == NULL || info->state != FBINFO_STATE_RUNNING ||
info->fbops->owner)

and indeed info->state was not in running state and info->fbops->owner was a nullptr. Upon checking the log, the tegradc registered framebuffer after this line was run so the logo was skipped.

Do people have any idea what could be done for plymouth to make the splash screen show instead of the boot log? If not, is modifying the kernel to display a static logo using framebuffer even supported on jetson? Thank you!

Hi xinsong.lin,

Are you using the devkit or custom board for AGX Xavier?

It seems you want to show a custom logo instead of debug message on display during boot up.
You have to disable framebuffer first.
and you can replace the usr/share/backgrounds/NVIDIA_Login_Logo.png and usr/share/backgrounds/NVIDIA_Logo.png with your custom logo file in rootfs.

Hi KevinFFF,

Thanks for the reply. I am using the reference AGX devkit for now.

However, as far as I understand, usr/share/backgrounds/NVIDIA_Login_Logo.png is for after you type in the password. usr/share/backgrounds/NVIDIA_Logo.png is for the icons on the desktop.

These two pictures don’t seem to affect the boot process… Do you see anything my approach above is missing or have other suggestions? Thank you!

It’s expected that nothing to display if you disable the framebuffer.

Okay. Any suggestion on how to initialize things correctly such that the framebuffer gets initialized before this line in fbmem.c?

if (logo == NULL || info->state != FBINFO_STATE_RUNNING ||
info->fbops->owner)

Thank you

Sorry that we don’t have the experience on this feature but it seems working since fb_show_logo() is available to be used.
Are you trying to modify the driver and use framebuffer to show the logo?

It’s okay. Yes. I think right now, the order of initialization makes fb_show_logo not work. It can be more than that since r32 vs r35 is quite different it seems after reading the boot architecture.

We are currently getting help from another nvidia source else that was able to prevent kernel from writing to the framebuffer and thus have the UEFI logo carry over. That solution seems promising. Thank you so much for your help!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.