Real Raspberry Pi homebrewers love to get every detail right. Such as the splash screen when you boot.
You have just built a beautiful digital picture frame. Now let’s customize the boot-up screen like a painter signs his work at the end of his artistic journey.
Make sure you use the most recent set of instructions
When I did some research about splash screen customization, I found many incomplete and outdated instructions.
With every new Raspbian release, some things change, and earlier instructions may not work anymore.
So here is the definitive manual of April 2019 that I have tested with the Raspberry Pi 3 Model B+ and Raspbian Stretch desktop kernel version 4.14.
One word of advice: It probably makes sense that you do this when everything else works fine.
Although I found that the start-up commands scroll down far too fast to be able to read much anyway, the boot screen may contain some useful information if you are still in debugging mode.
But fear not, you can revert to the Raspberry Pi’s original boot show quickly.
Polishing the boot process
To present a clean and undisturbed splash screen, we are disabling the display of these items (in order of appearance)
- The four raspberries in the top left corner
- The boot message log
- A blinking cursor top left
- The splash image “Welcome to the Raspberry Pi Desktop”
- A one-liner with boot notifications below the splash image
Creating the new splash screen
Find out what the resolution of your screen is. If you don’t know, connect to your Raspberry Pi Terminal and enter
It will return something like
mode "1920x1080" geometry 1920 1080 1920 1080 32 timings 0 0 0 0 0 0 0 rgba 8/16,8/8,8/0,8/24 endmode
There you have it: 1920×1080.
Now start Photoshop or whatever program you use and create a PNG image in the same pixel size and call it “splash.png”.
Move the file over to your Raspberry Pi home directory.
If you haven’t installed file sharing, open a new Terminal window on your PC or Mac (do not connect to the Raspberry Pi!), navigate to the directory where you keep your splash.png file, e.g.
Secure copy (scp) splash.png (replace the IP number with the IP of your Raspberry Pi) and enter the password of your Raspberry Pi at prompt.
scp splash.png email@example.com:/home/pi/
Now the file is on your Raspberry Pi.
Cleaning up the boot process
Open a Terminal connection to your Raspberry Pi again and copy the splash.png file from the desktop into the Plymouth directory.
sudo cp /home/pi/splash.png /usr/share/plymouth/themes/pix/splash.png
If you like it clean, you can now remove the splash.png from your home directory. It has safely been copied to its rightful place somewhere deep down in the system hierarchy.
Let’s remove the one-liners below the splash screen.
sudo nano /usr/share/plymouth/themes/pix/pix.script
Comment out the following lines (i.e., add a “#” at the beginning):
message_sprite = Sprite(); message_sprite.SetPosition(screen_width * 0.1, screen_height * 0.9, 10000); my_image = Image.Text(text, 1, 1, 1); message_sprite.SetImage(my_image);
Let’s clean up everything else. Type:
sudo nano /boot/cmdline.txt
A long line will open. At the end of this line add
My entire line then looks like this: (don’t just copy it; your PARTUUID will be different)
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=f404ba9e-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default=0
You should now have a clean boot process, only displaying your customized splash screen.
While these instructions for work Raspbian Stretch, I am also working on a solution for the latest Raspbian Buster release. This proves a bit a bit more complicated but as soon as I have it figured out, I will publish an article about it.
So, subscribe to the article updates in the footer to not miss the update!
- What to do when you get the warning message “REMOTE HOST IDENTIFICATION HAS CHANGED”
- How to get rid of the blinking rainbow square on your Raspberry Pi picture frame
- How to start realtime systemd timer services as a crontab replacement on the Raspberry Pi
- The ultimate guide on using systemd to autostart scripts on the Raspberry Pi