Make Plymouth Start Earlier In The Boot Process

closeThis post was published 7 years 6 months 9 days ago which may make many or all of its content outdated. Please follow at your own risk.

Starting Ubuntu 11.04 I have observed that Plymouth starts late in the boot process. Often you can only catch a glimpse of it before GDM/LightDM pops up. The same is true for Ubuntu 11.10. After a quick search on the Internet, I found out that Ubuntu 11.x versions appear to have gone away from the framebuffer technique that was used in earlier versions. Accessing the video memory directly through the framebuffer is an old technique.  The newer way, supposedly, is to have Kernel Mode Setting (KMS) handle  the graphics card and setup the display resolution early in the boot process to allow  Plymouth to display correctly. One other reason for moving into KMS is to minimize screen flicker that is often observed when using the framebuffer technique.

The disadvantage of using KMS is that it does not correctly identify  the graphics card or is incompatible with it. From what I understand, this is part of the reason why Plymouth starts very late for some configurations. If you have this issue, observe how in 11.04 and/or 11.10 you would only see a magenta/aubergine-like background with nothing on it on most of the boot duration. On my laptop that has Intel HD Graphics 3000 and desktop with a NVIDIA GeForce GTS 250 graphics card, I can hardly see the boot splash.

Fortunately you can force the use of framebuffer. The steps to do this is quite simple. Put a file named splash inside /etc/initramfs-tools/conf.d/ with the following content:

FRAMEBUFFER=y

You can do this with any text editor or issue the following command in a terminal:

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

Followed by updating the initramfs image with the following command:

sudo update-initramfs -u

Reboot your Ubuntu. If everything went well, and it should, you will now see Plymouth start way earlier in the boot process.

However, another issue comes up. The Grub menu on Ubuntu 11.x sports a magenta/aubergine-like background. During boot the transition from that color to black and then Plymouth does not look very smooth. The default theme for Plymouth follows the Ubuntu color Aubergine. My fix for this is to revert to the old Grub color scheme which was white over black.

Editing Grub is a tricky process. If you are not sure of what you are doing, I strongly advise that you don’t. Lucky for us there is a tool available that makes editing Grub simpler and less prone to errors. The name of the app is Grub Customizer. You can grab it here – https://launchpad.net/~danielrichter2007/+archive/grub-customizer.

Download/install Grub Customizer, then run it. We don’t have to edit the menu entries. Lets get to changing the background color instead. Go to Preferences > Appearance as shown in the image below.

I have tried looking for a way to change the background color without using an image but I came up blank. So what I did was to create a 640×480 PNG image with GIMP. Do the same. Fill it with black. Save the image, then we can now proceed to load the image on Grub Customizer and set that as the background. Just click on background image indicated with a blue line above to do so. Save the changes. By the way you don’t have to change the menu font colors. Leave it as it is.

If you know a better way to change the background color of Grub menu, please drop a comment. I’d love to hear it.

Now we are done. Reboot Ubuntu and you should now see the changes reflected in the Grub menu.

Tip: Save that background image to a place where you won’t delete it by accident. This is because when that file is gone the background on grub will revert to the original.

One thing I’ve been meaning to do is find a minimalist Plymouth theme with a dark/black color scheme. I think that would make for a smoother-looking boot. Do you know any? Maybe I should just edit the default theme and change the colors from aubergine to black. I don’t know how that will end up but it’s worth a try.

Related Posts:

10 thoughts on “Make Plymouth Start Earlier In The Boot Process

    • You can try it out. I highly doubt it will adversely affect your system if the above won’t work. It is also easy to undo. Just remove the line from the splash file. However, always backup your important files beforehand whenever you do something that could potentially damage your system.

      The issue you have may be related to this bug report here: https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/540801.

      Go through the thread. Do you experience similar behaviors such as Plymouth shows properly on a Live Ubuntu 11.10 or on shutdown.

  1. I fixed through modification to grub:

    sudo gedit /etc/grub.d/10_linux

    68 for word in $GRUB_CMDLINE_LINUX_DEFAULT; do
    69 if [ “$word” = splash ]; then
    70 # GRUB_CMDLINE_LINUX_DEFAULT=”$GRUB_CMDLINE_LINUX_DEFAULT vt.handoff=7″
    71 GRUB_CMDLINE_LINUX_DEFAULT=”$GRUB_CMDLINE_LINUX_DEFAULT”
    72 fi
    73 done

    sudo update-grub2

    Now plymouth starts late in the boot process, maybe I can fix through your indication with

    file splash inside /etc/initramfs-tools/conf.d/ with the content:

    FRAMEBUFFER=y

    echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

    sudo update-initramfs -u

    what do you think and what does sudo tee serve?

    Thanx

    • You can just edit the file /etc/initramfs-tools/conf.d/splash directly with your favorite text editor then place FRAMEBUFFER=y in it. This does the same effect as the command above.

  2. Is it the same with no splash file needed?

    sudo echo FRAMEBUFFER=y > /etc/initramfs-tools/conf.d/splash

    sudo update-initramfs -u

    How can I undo this one?

    • Any command will do as long as the outcome of that is the text “FRAMEBUFFER=y” (don’t include the quotes) is in the file named ‘splash’ and save it into /etc/initramfs-tools/conf.d/ directory. The file ‘splash’ is nothing more but ASCII text file.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>