How to cus­tomize your Rasp­berry Pi splash screen (Rasp­bian Stretch April 2019 Ver­sion)

-

Real Rasp­berry Pi home­brew­ers love to get every detail right. Such as the splash screen when you boot.

You have just built a beau­ti­ful dig­i­tal pic­ture frame. Now let's cus­tomize the boot-up screen like a painter signs his work at the end of his artis­tic jour­ney.

Make sure you use the most recent set of instruc­tions

When I did some research about splash screen cus­tomiza­tion, I found many incom­plete and out­dat­ed instruc­tions.

With every new Rasp­bian release, some things change, and ear­li­er instruc­tions may not work any­more.

So here is the defin­i­tive man­u­al of April 2019 that I have test­ed with the Rasp­berry Pi 3 Mod­el B+ and Rasp­bian Stretch desk­top ker­nel ver­sion 4.14.

One word of advice: It prob­a­bly makes sense that you do this when every­thing else works fine.

Although I found that the start-up com­mands scroll down far too fast to be able to read much any­way, the boot screen may con­tain some use­ful infor­ma­tion if you are still in debug­ging mode.

But fear not, you can revert to the Rasp­berry Pi's orig­i­nal boot show quick­ly.

Pol­ish­ing the boot process

To present a clean and undis­turbed splash screen, we are dis­abling the dis­play of these items (in order of appear­ance)

  • The four rasp­ber­ries in the top left cor­ner
  • The boot mes­sage log
  • A blink­ing cur­sor top left
  • The splash image "Wel­come to the Rasp­berry Pi Desk­top"
  • A one-lin­er with boot noti­fi­ca­tions below the splash image

Cre­at­ing the new splash screen

Find out what the res­o­lu­tion of your screen is. If you don't know, con­nect to your Rasp­berry Pi Ter­mi­nal and enter

fbset

It will return some­thing 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: 1920x1080.

Now start Pho­to­shop or what­ev­er pro­gram you use and cre­ate a PNG image in the same pix­el size and call it "splash.png".

Move the file over to your Rasp­berry Pi home direc­to­ry.

If you haven't installed file shar­ing, open a new Ter­mi­nal win­dow on your PC or Mac (do not con­nect to the Rasp­berry Pi!), nav­i­gate to the direc­to­ry where you keep your splash.png file, e.g.

cd Desktop

Secure copy (scp) splash.png (replace the IP num­ber with the IP of your Rasp­berry Pi) and enter the pass­word of your Rasp­berry Pi at prompt.

scp splash.png pi@192.155.198.46:/home/pi/

Now the file is on your Rasp­berry Pi.

Clean­ing up the boot process

Open a Ter­mi­nal con­nec­tion to your Rasp­berry Pi again and copy the splash.png file from the desk­top into the Ply­mouth direc­to­ry.

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 direc­to­ry. It has safe­ly been copied to its right­ful place some­where deep down in the sys­tem hier­ar­chy.

Let's remove the one-lin­ers below the splash screen.

sudo nano /usr/share/plymouth/themes/pix/pix.script

Com­ment out the fol­low­ing lines (i.e., add a "#" at the begin­ning):

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 every­thing else. Type:

sudo nano /boot/cmdline.txt

A long line will open. At the end of this line add

logo.nologo vt.global_cursor_default=0

My entire line then looks like this: (don't just copy it; your PARTUUID will be dif­fer­ent)

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

And final­ly

sudo reboot

You should now have a clean boot process only dis­play­ing your cus­tomized splash screen.