Want to change what you see while Ubuntu boots up? Learn how to put your own image on that splash screen.
When Ubuntu starts up, it displays a progress bar, the Ubuntu logo, and scrolling messages showing what service is being started. Usplash, the userspace bootsplash system, allows you to customize the background, text, and progress bar of the splash screen.
To customize your splash screen, install GCC and the BOGL framebuffer library development package:
$ sudo apt-get install gcc libbogl-dev
Then create a PNG file to use as the splash-screen background. This is trickier than it sounds because there are some very severe restrictions on the format of the image: it must be 640x480 pixels in size and only 16 colors, so forget about using a nice photograph! Some of the colors are used for special purposes, such as to draw the text messages that appear onscreen as services are started, so the usable palette is even more restricted.
The special palette entries are shown in Table 5-1.
Index | Use |
---|---|
0 | Main and text backgrounds |
1 | Progress bar color |
2 | "OK" text color |
4 | Progress bar background color |
8 | Description text color |
13 | "Failed" text color |
Make a directory to work in, copy your PNG in, and rename it to something like usplash-mine.png:
$ mkdir usplash
$ cp myimage.png usplash/usplash-mine.png
Enter the working directory and convert the PNG to a hexadecimal source file, then "compile" it into a shared object file:
$ pngtobogl usplash-mine.png > usplash-mine.c
$ gcc -Os -g -I/usr/include/bogl -fPIC -c usplash-mine.c -o usplash-mine.o
$ gcc -shared -Wl,-soname,usplash-mine.so usplash-mine.o -o usplash-mine.so
In this case, the resulting object file is called usplash-mine.so, but you can give it a different name, as long as you don't call it usplash-artwork.so. That name is used by the system to find the current bootsplash artwork, so the safest thing to do is give all the object files unique names and reference the current file with a symlink:
$ sudo cp usplash-mine.so /usr/lib/usplash/usplash-mine.so
$ sudo ln -sf /usr/lib/usplash/usplash-mine.so //
/usr/lib/usplash/usplash-artwork.so
To give the kernel access to the splash image early in the boot process, it needs to be stored in the initramfs (initial RAM filesystem). The initramfs is built when the kernel package is installed, so force the currently installed kernel package to be reconfigured:
$ sudo dpkg-reconfigure linux-image-/Quname -r/Q
Once they have been created and installed in /usr/lib/usplash, you can switch between various splash screens, including the original Ubuntu splash, simply by updating the symlink and regenerating the initramfs. For example, to return to the original splash screen:
$ sudo ln -sf /usr/lib/usplash/usplash-default.so //
/usr/lib/usplash/usplash-artwork.so
$ sudo dpkg-reconfigure linux-image-/Quname -r/Q
Change Ubuntu Bootsplash Theme
- Usplash customization guide
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript" style="display: none;"> </script>
Requirements:
You will need to install some development packages first, so open Synaptic and search for:
gcc
libbogl-dev
usplash-dev
and install them. Or, if you prefer the "geek" method, please open a console and type:
sudo apt-get install gcc libbogl-dev usplash-dev
You will also need the following tools:
SUM - Start-up Manager
Usplash Switch (optional)
Get the deb packages and install them by simply right-clicking on each one, and then go to Kubuntu Package Menu -> Install Package (if you have Kubuntu). In Ubuntu, open a terminal and type:
sudo dpkg -i startupmanager_1.0.4-1_all.deb usplash-switcher_0.0.0svn20070519-1~getdeb1_i386.deb
Create the background:
This is actually the hard part of the whole process, because you must create a nice PNG image with maximum 256 colors. The resolution should be no higher than 800x600. Also, because some of the colors are used for special purposes, like drawing the text messages of the services that are started during the boot process, the color palette is restricted. The special palette entries are shown below:
Index | Usage |
0 | Background color |
0 | Text background color |
1 | Progress bar color |
2 | Text foreground color (right) |
4 | Progress bar background color |
8 | Text foreground color (left) |
13 | Failure text color |
For the creation of this PNG image, I suggest to use the latest development version of GIMP, as it will allow you to rearrange the palette with a nice included plugin, called 'Rearrange Colormap' (Colors -> Map -> Rearrange Colormap). Remember that you must use a different file format than PNG after you've used the 'Rearrange Colormap' plugin and then convert it back to PNG with another software, because the PNG plugin may rearrange the colormap.
Compile and install the new boot splash
Once you are done with the artwork, you must create a file with the .so extension. In order to achieve this you must open a console and type the following commands, but first create a folder called usplash, put the image you've just created and rename it to usplash-artwork.png.
pngtobogl usplash-artwork.png > usplash-artwork.c
gcc -Os -g -I/usr/include/bogl -fPIC -c usplash-artwork.c -o usplash-artwork.ogcc -shared -Wl,-soname,usplash-artwork.so usplash-artwork.o -o yourimage-splash.so
Open the StartUp-Manager application (in Kubuntu you'll find it in KMenu -> System and in Ubuntu you can find in Applications -> System Tools), switch to second tab (Appearance) and hit the 'Manage usplash themes...' button, then click on Add and search for the folder where you've created the .so file. Open the .so file, click 'Close' and then select your own usplash theme from the drop-down menu above the 'Manage usplash themes...' button. Close the StartUp-Manager and wait a few seconds before the window disappears.
![]() | ![]() |
Optional, whenever you want to switch to another usplash theme, you can open the Usplash Switcher application, which will show you a preview of the installed usplash themes; just click on the desired one and then on the 'Switch' button.
![]() |