Unable to use a custom splash screen in Ubuntu 16.04LTS

Solution 1:

I also encountered this problem, here's how I fixed it.

The basis of the problem

Put simply, the file layout in Ubuntu 16 changes the location of plymouth themes from /lib/plymouth/themes to /usr/share/plymouth/themes and so all of the theme install scripts that assumed the previous layout now install to the wrong location. Thus, when update-initramfs runs, the source data is not where it's supposed to be which causes this error.

plymouth module "(/usr/lib/i386-linux-gnu/plymouth//.so)" missing, skipping that theme

and because of that, the theme is not installed. The fallback is the default ubuntu logo theme.

Fixing things

I found it convenient to simply perform things manually, and since you're familiar with Ubuntu, I'll concentrate on describing the approach rather than making it cut-and-paste like.

Partially initialize-correct with apt-get

Run the following command which will not only install a number of new themes into the correct location but also will fix the now incorrect update-alternatives scheme.

apt-get install plymouth-themes

after this runs there will be a new directory structure anchored in /usr/share/plymouth/themes which will have an identical layout to the previous path.

Move old themes

Consider if each theme is worth migrating, there might be duplicates in which case use the already installed ones.

ls -ltrd /lib/plymouth/themes
ls -ltrd /usr/share/plymouth/themes

migrating to the new location is simple; just move the directory as each theme is contained in a directory named after the theme

cd /lib/plymouth/themes
mv <theThemeDirectory> /usr/share/plymouth/themes

Fix old themes

The old themes are self-referential in that the .plymouth theme file contains a reference to the directory that the theme is installed. Change these references to the correct ones (e.g. vi /usr/share/plymouth/themes/orb/orb.plymouth and then replace /lib/plymouth with /usr/share/plymouth).

Update list with update-alternatives

Extending the orb example, use update-alternatives to make the theme list selectable.

update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/orb/orb.plymouth 100

This has the added benefit of leveraging the script update-plymouth that is included with most themes from gnome-look. I'll include the text

#!/bin/bash

echo "Choose the number of the theme you want to use, then [ENTER]"
echo
sudo update-alternatives --config default.plymouth
sudo update-initramfs -u
echo
read -p "Do you want to test the theme? (Y/N) "
if [ "$REPLY" != "n" -a "$REPLY" != "N" ] ; then
 echo
 echo "Running 10-second test..."
 sudo plymouthd ; sudo plymouth --show-splash ; for ((I=0; I<10; I++)); do sleep 1 ; sudo plymouth --update=test$I ; done ; sudo plymouth --quit
fi
exit

Running update-plymouth will allow you to select the theme you want, automatically build the new initramfs and let you preview it.

Bonus: use art from deviantart

Armed with this knowledge, we don't blindly have to run an installer, but rather with the understanding that all it takes to install a new theme is

  1. copy a theme directory to /usr/share/plymouth/themes
  2. run update-alternatives as described above
  3. run update-plymouth

That gives us access to larger selection of themes of which I think this sonic theme is the best.

Solution 2:

If you have followed @wateim answer and still getting the error W: plymouth module "(/usr/lib/i386-linux-gnu/plymouth//.so)" missing, skipping that theme. then most probably the theme is old. New theme convention is slightly different

  • Theme directory name should match with Plymouth file name. Ex: If Directory name is aurora-penguinis then plymouth file name should be aurora-penguinis.plymouth
  • Change ImageDir and ScriptFile in plymouth file to new base location (/usr/share/plymouth/themes/)

Do these changes. It should work :) If you want to start all over again, check out my blog post. Its almost same as @wateim answer but with slight modifications (works for me in Ubuntu 16.04+)

Solution 3:

I also stumbled around with W: plymouth module "(/usr/lib/i386-linux-gnu/plymouth//.so)" missing, skipping that theme.

I copied over the current theme, in my case ubuntu-gnome-logo customized and installed it.

Make sure the .grub, .plymouth and .script files located in your theme have the same name as the theme folder. After proper file renaming the error message was gone and the custom splash screen appeared as expected.

Solution 4:

This error happens because the location of the Plymouth files has changed. In older versions of Ubuntu they were located in /lib/plymouth but now they are located in /usr/share/plymouth. What you have to do is reinstall like this:

sudo apt-get install --reinstall  plymouth-themes

Then choose a theme that is in the path /usr/share/plymouth/themes after running:

sudo update-alternatives --config default.plymouth

Then to save the theme, so that it starts with this at the beginning of the system run:

sudo update-initramfs -u

To test you can execute this command:

sudo plymouthd --debug  ; sudo plymouth --show-splash ; for ((I=0;I<10;I++)); do sleep 1 ; sudo plymouth --update=event$I ; done ; sudo plymouth --quit

If you want the old themes then you have to move them from your old location and edit the file with *.plymouth extension with the new path that is /usr/share/plymouth/themes/your_you and then install them like this:

sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/BootSplash/BootSplash.plymouth 100

Then select it by running:

sudo update-alternatives --config default.plymouth

To start the system with this:

sudo update-initramfs -u