Splash screen with Framebuffer Console disabled

Is there a way to use the linux splash and framebuffer device while disabling pretty much everything else?

For context:
I’ve previously disabled the Framebuffer Console and managed to run a graphical application directly on the framebuffer device without issues.

However, I have not managed to optimize the boot sequence as I expected and now I need to use the linux splash image. I’ve managed to do so only when re-enabling the framebuffer console.

I’m already having some advances:
On U-Boot:

setenv 'setup setenv setupargs console=null console=${console},${baudrate}n8 ${memargs} consoleblank=0; setenv bootm_boot_mode sec'

After disabling the getty@.service the only thing left is the blinking cursor. I will try to get it fixed in the Device Tree.

I have managed this changes by modifying the Kernel and compiling it. However, I am using YOCTO to generate a distro with a custom layer configuration. How can I change the linux splash and change the boot settings when building the toolchain?

Appending the logo image with linux-toradex_4.14%.bbappend, as reference:

https://www.toradex.com/community/questions/5906/how-to-change-toradex-logo-in-to-custom-logo.html

Hello @Ilan_Figueiredo ,

Have the steps mentioned above bring you the desired result? Or is there something still missing?

BR, Janani

There is still a line at the bottom of the screen.

On the U-Boot I set:

setenv setup 'setupargs vt.global_cursor_default=0 console=null console=${console},${baudrate}n8 ${memargs} consoleblank=0; setenv bootm_boot_mode sec'

setenv vidargs 'video=mxsfb:800x480M-16@60,pixclockpol=1'

setenv defargs 'quiet vt.global_cursor_default=0'

and in the linux I set:

systemctl disable getty@service

The line itself holds the last kernel message.

The command

echo 0 > /sys/class/vtconsole/vtcon1/bind

fix the issue after boot.

How can I unbind the console 1 from framebuffer at boot? Is there a defargs similar to vt.global_cursor_default=0?

By the way, if I change defargs to include fbcon=map:1 I lose the splash as well, so that would not be an option.

HI @Ilan_Figueiredo

You need to setup the U-Boot Parameter setupargs to the following:

vt.global_cursor_default=0 consoleblank=0 quiet console=${console}

And this should work.

Best regards,
Janani

Hi @saijanani.tx ,

I’ve tried:

setenv setup ‘setupargs vt.global_cursor_default=0 consoleblank=0 quiet console=${console},${baudrate}n8 ${memargs}; setenv bootm_boot_mode sec’

setenv setup ‘setupargs console=null console=${console},${baudrate}n8 ${memargs} vt.global_cursor_default=0 consoleblank=0 quiet; setenv bootm_boot_mode sec’

setenv setup ‘vt.global_cursor_default=0 consoleblank=0 quiet console=${console}; setenv bootm_boot_mode sec’

All resulting in the last line still being printed.
If I change defargs to ‘’, not only the last last is still enabled, but the boot as if without the “quiet” parameter.

My current defargs is:
defargs=quiet consoleblank=0 vt.global_cursor_default=0 fbcon=map:0

Hello @Ilan_Figueiredo ,

This is a bit strange. I will look into reproducing this on my side. Meanwhile, have you already had a chance to look at this ticket here?
https://www.toradex.com/community/questions/46861/splash-screen-on-apalis-imx8qm.html?childToView=47106#comment-47106.

BR, Janani

Hi @Ilan_Figueiredo

Is this issue solved?

The ticket mentioned got the solution. The order of the arguments was the trick. The correct setup for me is:

setenv setup 'setupargs console=null console=${console},${baudrate}n8 ${memargs} consoleblank=0; setenv bootm_boot_mode sec'

setenv vidargs 'video=mxsfb:800x480M-16@60,pixclockpol=1'

setenv defargs ' vt.global_cursor_default=0 consoleblank=0 quiet console=${console}'

The ticket mentioned got the solution. The order of the arguments was the trick. The correct setup for me is:

setenv setup 'setupargs console=null console=${console},${baudrate}n8 ${memargs} consoleblank=0; setenv bootm_boot_mode sec'

setenv vidargs 'video=mxsfb:800x480M-16@60,pixclockpol=1'

setenv defargs ' vt.global_cursor_default=0 consoleblank=0 quiet console=${console}'