[HowTo] Enable Bootsplash Provided by the kernel

Difficulty: ★☆☆☆☆

:warning: This How-To aren’t working anymore on Linux 6.4 and above. :warning:

Updated repost from:

Easy going?
Just install bootsplash-manager

:information_source: x86_64 Only
:warning: This wiki article can still be improved, so feel free to add your tips.

Download and install required packages

  1. install bootsplash-systemd and bootsplash-theme-* (example: bootsplash-theme-manjaro more listed below)
sudo pacman -S bootsplash-systemd bootsplash-theme-manjaro

Additionally if encrypted disk is used

  1. Enable bootsplash-ask-password-console.path
sudo systemctl enable bootsplash-ask-password-console.path

Setup GRUB

  1. add bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash to end of GRUB_CMDLINE_LINUX_DEFAULT=
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="apparmor=1 security=apparmor bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash"

Setup mkinitcpio

  1. add bootsplash-manjaro to end of HOOKS
sudo vim /etc/mkinitcpio.conf
HOOKS=(base udev autodetect modconf block consolefont keymap keyboard encrypt filesystems bootsplash-manjaro)

Finally update mkinitcpio and GRUB

sudo mkinitcpio -P && sudo update-grub 

Notes:
“*” You can use any bootsplash-theme you like:

  • bootsplash-theme-nemo
  • bootsplash-theme-kde
  • bootsplash-theme-glitch
  • bootsplash-theme-manjaro
4 Likes

There’s also a handy GUI in the repos: bootsplash-manager by @ANDRoid7890.

Is “provided by the kernel” accurate?
:thinking:

Yes, because Manjaro has bootsplash patches for the kernel to make this work.

1 Like

I tried it in my VM as my testing.
But that does not work with LUKS password prompt, but you must manually press any key to switch console for asking password. I tried to install mkinitcpio-encrypt-bootsplash from AUR but build failed.

I’m sticking plymouth which supports displaying theme and prompting for password.

@Zesko I use this on my host system and it works.
What does sudo systemctl status bootsplash-ask-password-console.path say?

The password prompt is text based so it has no theming etc. and I don’t have to press any key, bootsplash come up when typed in the password.

But yes in case of wrong password you have to press ctrl+alt+del

I mean that bootsplash theme runs infinitely until you manually press any key to switch text/console for asking password.

$ sudo systemctl status bootsplash-ask-password-console.path

bootsplash-ask-password-console.path - Dispatch Password Requests to Console Directory Watch when bootsplash is active
     Loaded: loaded (/usr/lib/systemd/system/bootsplash-ask-password-console.path; enabled; preset: disabled)
     Active: active (waiting) since Sat 2022-08-20 09:52:45 CEST; 22s ago
      Until: Sat 2022-08-20 09:52:45 CEST; 22s ago
   Triggers: ● bootsplash-ask-password-console.service

Notice: journal has been rotated since unit was started, output may be incomplete.

Hm, strange maybe something is wrong configured on your end.

Or use the GUI as @Yochanan Mentioned:

Maybe it is strange in VM as my testing but it mostly uses default configurations that I did not change.

I did, the same issue again.

Ah, Linux Kernel is encrypted in /boot on your disk, so the password prompt as text based appears first before Bootsplash or Plymouth will start.

Linux Kernel is unencrypted in /boot on my disk, rest all directories are encrypted. That is why the password prompt appears in text console or theming after Bootsplash or Plymouth started.

Then it sounds like a bug, in bootsplash-systemd.

I do not find any information about how to customize Bootsplash theme, e.g how to load the original firmware logo from BIOS?

There are many infos about Plymouth theme but not Bootsplash theme.

@philm
Maybe you know that?

I found the solution:

  1. Git clone
git clone https://github.com/Blacksuan19/Bootsplash-Themes.git
cd Bootsplash-Themes/manjaro-bootsplash-tux
  1. You customize tux-logo.png

  2. Make the script executable:

chmod +x bootsplash-packer bootsplash-manjaro-tux.sh
  1. Build
makepkg -fi
  1. Open bootsplash-manager to select your theme.

However, I have no idea how to load the original firmware logo from BIOS, but Plymouth works.

I tried changing default animation: spinner in Bootsplash, but it is pretty hardcode which should match defined contents of spinner.gif.

When spinner.gif is modified, you must carefully match its GIF content with a shell script to build a new bootpslash firmware, otherwise bootsplash build will fail.

This is why I no longer use Bootsplash after switching to Plymouth.

Just install kernel 6.6 and I realised that systemd bootsplash doesn’t work for kernel above 6.4 anymore. Is Plymouth the only way to go in this case?

Yes, there is no alternative to Plymouth today.

Maybe it’s not!
I tested unified kernel image (UKI) and enabled splash image in the mkinitcpio preset file.
A custom image just shows up during boot process. but it’s static and there is no fancy animations.

I knew this a few months ago. However, it is very limited and can’t beat Plymouth.