3

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.

3

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. :)

  • Awesome! fbcon is the trick. The terminal was overriding my fbi systemd service, but now it does not and my image stays up permanently. I can launch my app via ssh (and I presume by script later ) and it shows. The nice image even comes back once I kill the app! thanks! Would it be best to edit your answer to say how I used the systemd service for the actual splashcreen? I saw that link you shared about wyland before but it seemed overly complicated since I care more about continuity than speed. – CrustyAuklet May 29 '17 at 22:16
  • Feel free to edit anything :) I'm happy that you could avoid initramfs stuff :P – Technico.top May 29 '17 at 22:42
  • I did what the above post and it worked for images said however I want to know how I can get a splash video to play within those 2 files created in the previous post. – user10796324 Apr 15 at 9:08
  • Every thing here is quite old. You may want to look for a recent tutorial :) – Technico.top Apr 18 at 8:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.