Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does 'fbi' not show splash image during system startup?

I'm trying to provide a splashscreen for Raspbian Stretch using fbi. Based upon some tutorials I found here my situation:

/etc/systemd/system/splashscreen.service

[Unit]
Description=Splash screen
DefaultDependencies=no
After=local-fs.target

[Service]
ExecStart=/usr/bin/fbi -T 1 -d /dev/fb0 --noverbose /opt/logo.png

[Install]
WantedBy=sysinit.target

enabled (checked the symlink under sysinit.target.wants).

/boot/cmdline.txt

dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=ee397c53-02 rootfstype=ext4 elevator=deadline rootwait quiet logo.nologo loglevel=1 fsck.mode=skip noswap ro consoleblank=0

p

/boot/config.txt

hdmi_drive=2
dtparam=i2c_arm=on
dtparam=spi=on
dtparam=audio=on
dtparam=i2c1=on
dtoverlay=i2c-rtc,ds1307
disable_splash=1

Executing the exactly same command (fbi -T 1 -d /dev/fb0 --noverbose /opt/logo.png) from prompt leads to show the image as expected.

In the boot messages I can't find any error. Any thought?

like image 991
Mark Avatar asked Oct 31 '25 07:10

Mark


1 Answers

I finally got this to work! Here's what I did (essentially copied from https://yingtongli.me/blog/2016/12/21/splash.html, with a few small changes that made it work for me).

  1. Install fbi: apt install fbi

  2. Create /etc/systemd/system/splashscreen.service with:

    [Unit]
    Description=Splash screen
    DefaultDependencies=no
    After=local-fs.target
    
    [Service]
    ExecStart=/usr/bin/fbi --noverbose -a /opt/splash.png
    StandardInput=tty
    StandardOutput=tty
    
    [Install]
    WantedBy=sysinit.target
    

    The only thing I did differently from the article linked above is remove the -d flag from the /usr/bin/fbi command (the command was originally /usr/bin/fbi -d /dev/fb0 --noverbose -a /opt/splash.png). I'm guessing fb0 was the wrong device and leaving it out just means fbi will use the current display device and gets it right.

  3. Put your splash images in /opt/splash.png.

  4. Enable the service: systemctl enable splashscreen

I'm still trying to figure out how to get rid of the rest of the boot text, but this is a step in the right direction.

like image 84
Cully Avatar answered Nov 02 '25 04:11

Cully