Kernel Boot Logo

I am facing a problem of displaying early in boot the Kernel boot logo on Kernel 5.10.168-ti-r73 from the Monthly Snapshot images from 2023-10-07 on both Debian 11 and Debian 12. Connected is a TFT display ILI931 in uEnv.txt, and also to speedup the boot process I disabled all unnecessary virtual capes too:

###Custom Cape
dtb_overlay=/boot/dtbs/5.10.168-ti-r73/overlays/BB-LCD-ADAFRUIT-24-SPI1-00A0.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
disable_uboot_overlay_wireless=1
disable_uboot_overlay_adc=1

I this configuration the display power up in Bookworm 12.x after 42 seconds, way to late after loading the Kernel. I am expecting to see a Kernel logo after 11 seconds in this case. Also the Kernel logo is not displayed, only black screen.

Startup finished in 11.012s (kernel) + 32.928s (userspace) = 43.940s 
graphical.target reached after 32.477s in userspace.

The same configuration in Debian Bullseye 11.x image preform somehow better for the same Kernel 5.10.168-ti-r73 and power up the TFT screen after 30 seconds, but also don’t show the Kernel logo image.

Startup finished in 9.758s (kernel) + 19.313s (userspace) = 29.072s 
graphical.target reached after 18.825s in userspace

Furthermore the output from systemd-analyze for reaching graphical.target after 18.825s is kind of strange.

My question is why is powering of the display so late in the boot process, and way the boot logo is not shown, but only black display? I also disable getty@tty1 to not overlap the Kernel Logo.
Is there a way to move the screen initialisation in some early boot stage? Is there a better way to show a custom logo early on powering the BBB for example over U-Boot?

Best Regards,

Normally on x86 grub/plymouth can be used to load an initial image on a display. Waiting for systemd’s graphical target for early display won’t work…

Looking at u-boot, i do not see a mainline driver for the ILI931…

This might be doable as a simple video driver in u-boot

Regards,

@RobertCNelson thank you for the prompt reply! On the Buster with Kernel 4.19, I was able to get the black screen to only 5 seconds during the loading of the Kernel and this was acceptable. The Kernels are getting bigger, resulting in longer loading time. I was able to initialize early the TFT screen by means of a simple systemd service:

[Unit]
Description=Display ili9341
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=/sbin/modprobe ili9341

[Install]
WantedBy=basic.target

The service powers the display and shows a custom logo in bookworm in 12.5 s and 11 s in bullseye images. Before I write a custom video driver for u-boot is there a way to reduce the size of the Linux image? For example, I don’t use the PRUs…

Best Regards,

If you aren’t using the PRU’s switch over to the 5.10.x-bone branch, it’s more optimized for am335x. [ARMHF] Debian 10.x/11.x/12.x Kernel Updates

Regards,

1 Like

Super idea! Thank you @RobertCNelson