How can I encode my own custom splash screen for Linux?

This is not a matter of simple, simple, boring setup; I really want to create a program, you know, with source code, etc.

Iโ€™m thinking about programming my own media center interface, and I decided that it would look better if I encoded my own screensaver when the OS boots up.

Note. The media center interface will be launched in X, but this question is about what will happen before the X server boots.

I just wanted to create a splash screen application to hide Linux kernel boot messages. Is there a way that I can program some animation for this, for example, some kind of animated progress bar? I assume that I will not be able to encode 2D / 3D graphics (since this will require X to work, right?), So how can I do this?

I would prefer to do this in C ++, but C is also an option.

Note. I donโ€™t want to use any existing โ€œthemesโ€ or anything like that, just interested in programming.

Update:

Some recommendations were to use standard images (.bmp, .jpeg, etc.). I am not interested in uploading images to an existing application. But maybe I want to upload the images to the download screen app, which I will do.

I am not tied to a Linux distribution, so it could be anything, although a Debian distribution or a Debian distribution would be nice.

I like the suggestion of loading the X server at an early stage and starting the loading screen from there, but is there a more direct approach? Surely you can create a program that hides boot messages and shows a user program? Obviously this would be a very low level programming, but this is what I am looking for ...

In addition, I am not interested in changing the bootloader (LILO, GRUB, etc.).

Update 2:

So far, good suggestions have looked at the source code for applications like splashy and fbsplash. Could someone better this suggestion?

+6
c ++ c linux
source share
6 answers

For graphical output, you can use the Linux framebuffer ; for application development, you can use gtk, which supports rendering directly in the GtkFB framebuffer.

For video, etc. you can use mplayer, which also supports rendering for the framebuffer.

For initialization, you should look around the system you are using, debian uses sysv initialization style initialization http://www.debian-administration.org/articles/212 , ubuntu uses the upstart.

+3
source share

I would consider splashy source code. But you will need to enter the code C.

If you have the skills, you can implement a 3D software engine (for example, in the good old days). A simple rotating cube does not have to be very difficult to code, and there are tons of tutorials. The disadvantage is that you increase the download time, something not very pleasant in the media center.

+3
source share

Here's what: there is a library / kernel patch, fbsplash , which has already been written to do what it sounds like you want. It displays an image instead of the usual boot messages, and may also contain a progress bar. When you try to do something for which an installed open source implementation already exists, there is no better way to find out how to do it yourself than look at the source code.

Even if you are looking for something more complex (say, if you want to create an animation more attractive than the progress bar), you can start with fbsplash and change it to suit your needs.

+2
source share

There are several ways to do this. You could load the X server very quickly and just write a program to display the splash screen. You can also use the framebuffer device. If you use Intel hardware or want to use AMD or Nouveau OSS drivers for Nvidia, you can use the kernel mode setting. To do this, I would look at Fedora Plymouth. You can simply write the Plymouth plugin to display your splash screen.

+1
source share

A screensaver is just an image (.bmp, .jpg, etc.) and can be downloaded by the bootloader. Since you did not specify the distribution you are using, take a look at LILO, grub, or whichever one is appropriate. Check the /boot directory for tips that will guide your search.

0
source share

If all you want to do is a good clean boot sequence with your own splash and absolutely no message loading, you can do the following:

First disable grub, boot messaging, and the console cursor:

 GRUB_CMDLINE_LINUX_DEFAULT = quiet fastboot splash vt.cur_default=1 loglevel=0 GRUB_TIMEOUT = 0 

It is very fast and quiet (fades to black) and takes you to the login screen where you can place the splash. Your distribution may display its own splash, which you can change if you want.

This is a professional clean boot sequence without all the usual warts and wrinkles. (Like OSX and Windows).

I personally use Ubunutu with LXDE and get a clean popup in less than 3 seconds even on older hardware.

0
source share

All Articles