Individual bootsplash for your own system
Splashing Out
Users interested in customizing even the smallest detail of their machines will probably want to modify the boot screen. We show you how to carry out this task with openSUSE 11, Ubuntu 8.x, and their derivatives.
Many recent distributions hide the Linux system's start messages behind a colorful image with a progress indicator. The bootsplash [1] has long become the trademark of each distribution – and is a well-known phenomenon in the world of Windows. A customized system needs a fair amount of manual attention.
Thus far, modifying the bootsplash meant manually modifying the kernel [2]. For one thing, you needed to enable support for the framebuffer device with support for at least 16-bit color. For another, it also meant installing a patch from the bootsplash homepage, although the makers of the original bootsplash system refer to more state-of-the-art approaches on their front page.
Several alternative approaches are available to Linux users now: Splashy [3], USplash [4], and Red Hat Graphical Boot. Splashy and USplash run in userspace, which means on a user account. This offers a number of advantages. For one thing, it does not affect system stability if the program code turns out to be buggy. For another, it makes configuration and customization easier.
OpenSUSE 11.0
OpenSUSE still relies on the legacy, kernel-based bootsplash method. After installing the system, YaST2 takes you to two packages with data for the bootsplash: bootsplash contains the framework and bootsplash-branding-openSUSE has the files with the current openSUSE theme (Figure 1).
On your local filesystem you need the files from the second package in /etc/bootsplash/themes. Check the directory for the folder openSUSE, which contains all the critical files for an animated bootsplash along with the background for the kernel and startup messages. Pressing F2 at boot toggles between the normal startup screen and detailed messages.
The hierarchy in the openSUSE folder does not completely reflect the instructions on the bootsplash homepage. According to the HOWTO, if you want to define a new theme, you need images/, config/, and animations/ directories for the graphics data and configuration. The additional bootloader folder stores the files with the text that openSUSE displays in the boot menu.
Whether or not you get to see a bootsplash, and which one if so, is configured in the /etc/sysconfig/bootsplash file with two variables: SPLASH and THEME. The first of these can be set to yes or no to enable or disable the boot screen. The second variable references the folder (below /etc/bootsplash/themes) with the bootsplash data.
The variety of screen resolutions makes working with a generic theme for distribution on the Internet difficult. To avoid seeing black borders or just a section of the original image, you will need a separate background image for each screen size. The easiest way of handling this is to create a copy of the openSUSE directory.
To modify the background image, use an image manipulation tool like GIMP (see the GIMP article on page FIXME ff.) or a vector drawing program such as Inkscape [5]. In this way, you can create the required files by scaling the original image to the right size or by cropping the image. The Convert tool from the Imagemagick package does this for you automatically; you just need to modify the original graphic.
To add animation to your boot screen, create a series of PNG-formatted images, which you should number in the correct sequence. Make sure you pad the start of the file name with zeros to help the filesystem sort files in the right order. Then use convert to add individual files to the animation:
convert -delay 20 anim*.png anim.mng
The next step is to put the pieces together. All the central settings are located in the config/ directory, and you can edit the files for the individual screen sizes, all of which start with the word bootsplash- and have a .cfg suffix. Various configuration commands are available, depending on the bootsplash package version you are using.
The current openSUSE uses commands from version 3. The "Bootsplash Commands" table gives you an overview, and more details are available on the web [6] or in the/usr/share/doc/bootsplash/README.config file on any openSUSE machine with the bootsplash package installed.
Finally, you need to create a new initial ramdisk. The following command takes care of this for you:
mkinitrd -s Screen width x Screen height
This completes the package deal, and after you shut down your machine and restart, you should see the new graphics and texts you created.
Ubuntu StartUp Manager
The Grub boot manager supports the use of individual splash screens; however, the process for modifying and integrating them is fairly convoluted [7]. The steps for creating splash screens for the USplash system introduced by Ubuntu, which displays the Ubuntu logotype and a progress indicator when you boot the distribution, turns out to be even more complex. To do this, you need to integrate the required image with a shared library (.so) and dump it at the right place on the system.
Fortunately, an easier approach lets users of Debian, Ubuntu, and their derivates define splash screens for Grub and USplash via a graphical interface. The tool for this is the StartUp Manager [8], which can modify a number of other startup settings into the bargain. On Ubuntu and its derivatives, you need to install the StartUp Manager by loading the startupmanager package from the Universe repository. After loading the package, the StartUp Manager will be available in System | System Management in your Gnome menu.
The tool has four tabs with various options for the boot environment. The options you need for configuring the Grub and USplash settings are located in the first two tabs: Boot Options and Appearance.
Finding Graphics
In the Display tab in Boot Options (Figure 2), you can set the resolution and color depth for displaying the USplash image. Others lets you specify whether the boot menu and bootsplash should be visible and whether system messages should appear in the bootsplash. The Appearance tab has Boot menu themes and Usplash themes sections in which you can specify the images to use. To do so, you need to populate the lists with candidates from your filesystem by pressing Manage….
Boot menu themes can be practically any graphic in a format that Linux supports (e.g., GIF, JPG, PNG). The StartUp Manager will then attempt to use Imagemagick to convert the file to a format that Grub can handle.
Some fairly strict rules apply to the formats, and the results are not always what you expect. In most cases, some TLC makes sense (see the "Bootsplashes for Grub" box).
Images for the USplash theme must be packed in a shared library, as mentioned earlier. For a selection, check out Ubuntu-art.org [9] or Gnome-look.org [10] (Figure 3) – type "usplash" as your search key. Typically, you can then download tarballs with packed USplash themes and unpack the library (file suffix .so) in any directory. Then browse and select by pressing Manage Usplash Themes.
Bootsplashes for Grub
The maximum resolution for a Grub bootsplash is 640x480 pixels, with a maximum of 14 colors. Despite these restrictions, it is still possible to define attractive boot screens if you choose the right background image. Vector graphics and cartoons in particular are an excellent choice for use with Grub.
Images with fewer colors can best be converted to a Grub-compatible format with the command:
$ convert -resize 640x480 -colors 14 image.png image.xpm
For images with a higher color depth, the use of GIMP is a better choice. After modifying the image size, select Image | Mode | Indexed… and reduce the number of colors. Gimp has a selection of algorithms for this task, and choosing the right one can vastly improve the results.
Now pack your future Grub bootsplash by typing gzip image.xpm. Although this is not strictly necessary, it will normally reduce the time required to load the graphic. Finally, copy the resulting file image.xpm.gz to the directory that your StartUp Manager accesses.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.
-
OSI and LPI Form Strategic Alliance
With a goal of strengthening Linux and open source communities, this new alliance aims to nurture the growth of more highly skilled professionals.
-
Fedora 41 Beta Available with Some Interesting Additions
If you're a Fedora fan, you'll be excited to hear the beta version of the latest release is now available for testing and includes plenty of updates.
-
AlmaLinux Unveils New Hardware Certification Process
The AlmaLinux Hardware Certification Program run by the Certification Special Interest Group (SIG) aims to ensure seamless compatibility between AlmaLinux and a wide range of hardware configurations.
-
Wind River Introduces eLxr Pro Linux Solution
eLxr Pro offers an end-to-end Linux solution backed by expert commercial support.
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.