How do I make plymouth work on my system?

I use GRUB and dracut (EOS default).

  • I installed plymouth:
$ yay -Q plymouth
plymouth 22.02.122-7
  • I installed a theme and set it in the config files:
$ plymouth-set-default-theme -l
bgrt
details
fade-in
glow
hexagon_red
script
solar
spinfinity
spinner
text
tribar

$ cat /etc/plymouth/plymouthd.conf
# Administrator customizations go in this file
[Daemon]
Theme=hexagon_red
  • I made sure dracut includes the module:
$ sudo dracut --hostonly --no-hostonly-cmdline /boot/initramfs-linux.img --force

dracut: *** Including module: plymouth ***

Still I don’t see plymouth during boot.

How to make it work?

Do you mean a splash-screen that can be displayed by plymouth?

If you want to see the splash screen, append splash to the kernel parameters.

2 Likes

Since you’ve mentioned dracut, I’m assuming that you’re using systemd-boot. Have you run sudo reinstall-kernels and rebooted?

Doh!

As you mentioned that you are using grub above, have you tried running sudo grub-mkconfig -o /boot/grub/grub.cfg and rebooting.

looks like he has the hooks already configured so don’t forget to do that.
you need to add plymouth to the relevant secion of mkinicpio.conf
or to the myflags.conf (if using dracut)
see: https://wiki.archlinux.org/title/Plymouth

Also note the point about renaming to Watermark

Adding splash to kernel parameters worked.

  • I selected the OS in the GRUB menu
  • Bunch of services stopped (tangent: why are they stopping on a startup?! )
  • EOS said it is starting.
  • Bunch of services started.
  • Then the plymouth splash screen started.

Is that how it’s supposed to happen?

I thought the plymouth splash screen is displayed right after I select the OS in the GRUB menu and then until the login screen is displayed!

You probably need to load you gpu drivers earlier.

There is an example of how to do this in the EOS wiki page for dracut.

To rebuild your boot images after changibg the config run:

sudo dracut-rebuild

Actually I do load the nvidia drivers early. Before I did that the loading messages are big with low resolution. After I was loading nvidia drivers… the resolution is high and the letter are small. Only after that I started messing with plymouth.

Try adding plymouth.ignore-serial-consoles in your kernel params.

What is the difference between GRUB_CMDLINE_LINUX_DEFAULT and GRUB_CMDLINE_LINUX in /etc/default/grub ?!

1 Like

I did not notice any difference.

1 Like

I think rebuilding dracut and/or grub changed the situation.

  1. I select OS in GRUB menu.
  2. EOS says it’s starting.
  3. A few services start.
  4. plymouth splash!

Better than before. :+1:

The difference in short black’n’white text:

  • Options in GRUB_CMDLINE_LINUX are always effective.
  • Options in GRUB_CMDLINE_LINUX_DEFAULT are effective ONLY during normal boot (NOT during recovery mode).

Source.

2 Likes

Yeah, those are horribly named. The reality is that it doesn’t matter unless GRUB_DISABLE_RECOVERY is set to true in the config.

If it is set to true, then grub generates two entries, a “default” entry and a “recovery” entry. However, we don’t set that to true so it doesn’t matter much. I might argue that we really should be putting our options in GRUB_CMDLINE_LINUX but the typical convention is to do the opposite. :man_shrugging:

1 Like