Plymouth
Plymouth is a project from Fedora providing a flicker-free graphical boot process. It relies on kernel mode setting (KMS) to set the native resolution of the display as early as possible, then provides an eye-candy splash screen leading all the way up to the login manager.
Contents
Preparation
Plymouth primarily uses KMS (Kernel Mode Setting) to display graphics. If you can't use KMS (e.g. because you are using a proprietary driver) you will need to use framebuffer instead. In EFI/UEFI systems, plymouth can utilize the EFI framebuffer, otherwise Uvesafb is recommended as it can function with widescreen resolutions.
If you have neither KMS nor a framebuffer, Plymouth will fall back to text-mode.
Installation
Plymouth is available from the AUR: the stable package is plymouthAUR and the development version is plymouth-gitAUR.
If you also use KDM, you need to install the kdebase-workspace-plymouthAUR, otherwise kdm may not start correctly.
The plymouth hook
Add plymouth
to the HOOKS array in mkinitcpio.conf. It must be added after base
and udev
for it to work:
/etc/mkinitcpio.conf
HOOKS="base udev plymouth [...] "
For early KMS start (if you are using the open drivers) add the module radeon (for radeon cards), i915 (for intel cards) or nouveau (for nvidia cards) to the MODULES line in /etc/mkinitcpio.conf
:
/etc/mkinitcpio.conf
MODULES="i915" or MODULES="radeon" or MODULES="nouveau"
The kernel command line
You now need to set quiet splash
as your kernel command line parameter in your bootloader. See Kernel parameters for more info.
Rebuild your initrd image (see mkinitcpio article for details), for example:
# mkinitcpio -p linux
Configuration
Smooth transition
For smooth transition to display manager you have to:
- Disable your Display Manager Unit, e.g.
systemctl disable kdm.service
- Enable the respective DM-plymouth Unit (GDM, KDM, LXDM, SLiM units provided), e.g.
systemctl enable kdm-plymouth.service
Show Delay
As of version 0.9.0 plymouth has a new configuration option available in /etc/plymouth/plymouthd.conf
/etc/plymouth/plymouthd.conf
[Daemon] Theme=spinner ShowDelay=5
On systems that boot quickly, you may only see a flicker of your splash theme before your DM or login prompt is ready. You can set ShowDelay to an interval (in seconds) longer than your boot time to prevent this flicker and only show a blank screen. The default is 5 seconds, but you may wish to change this to a lower value to see your splash earlier during boot.
Changing the Theme
Plymouth comes with a selection of themes:
- Fade-in: "Simple theme that fades in and out with shimmering stars"
- Glow: "Corporate theme with pie chart boot progress followed by a glowing emerging logo"
- Script: "Script example plugin" (Despite the description seems to be a quite nice Arch logo theme)
- Solar: "Space theme with violent flaring blue star"
- Spinner: "Simple theme with a loading spinner"
- Spinfinity: "Simple theme that shows a rotating infinity sign in the center of the screen"
- (Text: "Text mode theme with tricolor progress bar")
- (Details: "Verbose fallback theme")
By default, spinner theme is selected. You can change the theme by editing /etc/plymouth/plymouthd.conf
, for example:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=spinner ShowDelay=5
You will also need to rebuild your initrd image every time you change your theme.
All currently installed themes can be listed by using this command:
$ plymouth-set-default-theme -l
or:
$ ls /usr/share/plymouth/themes
details glow solar spinner tribar fade-in script spinfinity text
Themes can be previewed without rebuilding, press Ctrl+Alt+F2
to change to console, log in as root and type:
# plymouthd # plymouth --show-splash
To quit the preview, press Ctrl+Alt+F2
again and type:
# plymouth --quit
every time a theme is changed, the kernel image must be rebuilt with:
# mkinitcpio -p <name of your kernel preset; e.g. linux>
To change theme and rebuild initrd image:
# plymouth-set-default-theme -R <theme>
Reboot to apply the changes.
Tips and tricks
During boot you can switch to kernel messages by pressing "Home" key.