Boot logo

Hi!
I would to like to develop a boot component that does the following:
- Switch to a new console lets say, console 2, while console 1 is booting.
- In that new console load a gif or even a static logo while all boot output is happening and accessible in console 1.

The user takes the decision if he wants to see the output or not by switching consoles.
Then it's expected that when LightDM is launched it will switch to console 9 as it usually does.
The effect I want to achieve is to have a boot logo showing on screen during system boot instead of the text output that is happening in console 1.

I would like to know where to start.
I'm thinking on taking a look at LightDM code because seems like it's something similar to it.
Any help?

Thank you.
 
It's called a 'splash screen'. It used to work rather well with the old sc(4) terminal, see splash(4). There should be some rudimentary splash screen support in vt(4) nowadays. But last time I tried it it was fairly limited.


First place I'd probably start looking is in loader.efi(8), it's capable of showing some graphics through the EFI framebuffer. That seems like a good place for a 'splash' screen. Another thing to look at is the current splash screen implementation in vt(4).
 
It's called a 'splash screen'. It used to work rather well with the old sc(4) terminal, see splash(4). There should be some rudimentary splash screen support in vt(4) nowadays. But last time I tried it it was fairly limited.

Yes I know.
I found some other posts requesting the same but seems that it's still not developed.
But in my opinion this is not different from what lightdm does when it loads.
It switches to other terminal and shows up the login form.

I want to do the same but with other terminal number and show a simple logo would be enough to me.
 
Thinking about it a little further, the splash screen should kick in before the kernel is loaded. Starting the kernel also produces a lot of output. So it has to kick in during loader.efi(8), right after the loader menu. That would be the 'ideal' place in my opinion. Luckily you have access to the EFI framebuffer there, assuming the system EFI boots. Still, you don't have the luxury of an Xserver that does all the actual work of pushing pixels onto the screen.
 
It has to be part of the base OS, it's implemented in vt(4). Which means you can't use anything from outside the base OS.
Can't it be a sort of boot service/drivers just like the boot flags sshd_enable but instead of launching sshd service it launches the boot splash?
 
Thinking about it a little further, the splash screen should kick in before the kernel is loaded. Starting the kernel also produces a lot of output. So it has to kick in during loader.efi(8), right after the loader menu. That would be the 'ideal' place in my opinion. Luckily you have access to the EFI framebuffer there, assuming the system EFI boots. Still, you don't have the luxury of an Xserver that does all the actual work of pushing pixels onto the screen.
It has to work with MBR boot as well so I was thinking on creating a sort of boot service the first in boot order that does the job of switching terminal, launch some graphics/X11 and display the image.
 
Can't it be a sort of boot service/drivers just like the boot flags sshd_enable but instead of launching sshd service it launches the boot splash?
Well, you could implement a port with the functionality. And figure out a way to start it very early on in the boot process. But with today's hardware it's going to be a real 'splash' screen, meaning it'll be on-screen for about half a second before the display manager takes over. And it would still show lots of boot output before this splash screen is shown.
 
It has to work with MBR boot as well
Forget about that. There simply isn't enough space for anything complex. Probably best to focus forward and assume modern (and future) systems are going to be UEFI booting. Nobody is going to enable a splash screen on a server. So this is just for the bragging rights of desktop and laptop users.
 
Well, you could implement a port with the functionality. And figure out a way to start it very early on in the boot process. But with today's hardware it's going to be a real 'splash' screen, meaning it'll be on-screen for about half a second before the display manager takes over. And it would still show lots of boot output before this splash screen is shown.
enabling the flags
beastie_disable="YES"
boot_mute="YES"
autoboot_delay=0
verbose_loading="NO"

Shows very few messages, I can live with those few that still shows up.
But I would not like to see IP addresses and whatever it's doing during boot that's why I came up with this idea.
 
Forget about that. There simply isn't enough space for anything complex. Probably best to focus forward and assume modern (and future) systems are going to be UEFI booting. Nobody is going to enable a splash screen on a server. So this is just for the bragging rights of desktop and laptop users.
Ok, got it, seems a bad idea after all.
 
But anyway, I'm still looking at SLIM source just in case. :)
then maybe by using the
# BEFORE
I can set it's boot priority
 
Ok, got it, seems a bad idea after all.
That's not what I meant. There is a use-case, besides looking 'cool'. Every 'commercial' device I own, or have used, boots showing some sort of splash screen, often an animated one nowadays. Typically some branding (company name, logo, etc.). Embedded devices, mobile devices, media players, thin clients, that sort of thing. But to implement this properly (and you posted this in "FreeBSD Development") it needs to be done with the tools you get with the loader, kernel or base OS, and nothing else.
 
Well, I'm not the only one who is looking to have an eye candy boot for FreeBSD.
People may think that it's something useless and doesn't pay the effort but in my opinion it really does.
All my effort of trying to set up a boot splash ended with no boot splash at all or to an non bootable system.
That's why I'm trying to resolve this my way.
 
Back
Top