4

I am using a Raspberry Pi 3, and I set it up with the Adafruit 3.2 resistive TFT screen. I am using the fbcp setup so that frambuffer0 is being copied onto the screen. I would like a custom image on the screen during boot and for it to stay on screen until the main program starts. But right now the image goes up, but then it is replaced by boot messages and the terminal once the fbcp is started.

Since the frame buffer copying acts like HDMI, is there a way to disable terminal and boot message output to the HMDI/fb0 so that the only terminal is over SSH? That way the only display would be images I loaded using fbi, or my Qt app once it loads?

Edit: I found this question/answer that sounds similar, but requires a kernel recompile. In my case, I don't mind a few blips of text/black for now, so it seems like it should be possible by just making a custom splash screen on all framebuffers and then running fbi as the first command on boot.

CrustyAuklet
  • 145
  • 1
  • 4

1 Answers1

4

I manage to remove boot messages by modifying /boot/cmdline.txt, adding

fbcon=map:2

This command allocate console to an unavailable framebuffer. You can get more info about this command here and use "con2fbmap" to reallocate console/frambuffer on-demand.

In order to display a mirrored splash screen, very quickly, i choose to loaded fbcp, plymouth and display driver through initramfs.

To get some implementation tips for all of this (too long for an answer here, sorry) please take a look at this page : http://technico.top/index.php/2015/12/13/earliest-splashscreen-bootsplash-screen-mirroring-for-raspberry/

Not really easy, but this way you will avoid the kernel recompilation :)

Easier Splash Screen (not as fast but continuous) based on this link:

make two files in /etc/systemd/system/ called splashscreen0.service and splashscreen1.service with the same contents, except the line starting with ExecStart change fb# to fb0 and fb1 respectivley.

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

[Service]
ExecStart=/usr/bin/fbi -d /dev/fb# --noverbose -a /opt/splash.png
StandardInput=tty
StandardOutput=tty

[Install]
WantedBy=sysinit.target

This will display the image on BOTH fb0 and fb1, so that when the switch happens it will not show (I see a barely visible flicker when it happens).

Once this is done run systemctl enable splashscreen0 and systemctl enable splashscreen1 as root, and restart. The image will now stay on the TFT screen permanently, except when an app is run. :)

CrustyAuklet
  • 145
  • 1
  • 4
Technico.top
  • 1,426
  • 13
  • 20