Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Showing a splash image while loading a huge initrd

Consider a live GNU/Linux distro with the following constraints: all the software should be contained in an initrd image (which results in its huge size) and the kernel contains as few statically-compiled modules as possible.

Consider the bootup process of the described distro: the bootloader (e.g. grub or isolinux) loads the kernel, which then loads and extracts the initrd into the memory. During the extraction (which takes 20-30 seconds on old computers) nothing happens on the screen.

I was wondering, is there a ready-made solution of showing a splash screen during the initrd extraction process? If not, can you please comment on the following ideas:

  1. Statically compile an e.g. 600x480x8bit image into the kernel and somehow flush it into the framebuffer while initrd is being extracted.

  2. Do the same, but force a particular video driver to be loaded (e.g. VESA) and hack into its code, rather that kernel's framebuffer.

Thank you.

like image 914
Zaur Nasibov Avatar asked Nov 19 '12 09:11

Zaur Nasibov


People also ask

What is splash image in Linux?

A splash screen is nothing but the picture that's gets displayed in the background while booting the Linux operating system. You might be knowing that Grub (GRand Unified Bootloader) is the commonly used famous bootloader among major Linux distributions.

Do I need initrd?

The initrd contain the modules required to understand the root filesystem, and thus be able to access the normal store of kernel modules. If your kernel is compiled with all that code built-in, rather than as modules, then an initrd shouldn't be required.


1 Answers

Perhaps you can make it simpler: Create 2 initrd files. The first one can be small. Then it can call Plymouth to show a splash screen while the real initrd is extracted.

like image 63
M. Ivanov Avatar answered Oct 19 '22 10:10

M. Ivanov