A framebuffer is a device file which allows for a simplified interface to the screen. For example running the below code on a RaspberryPi with a HDMI display connected:
cat /dev/urandom > /dev/fb1
There are commands (fbi
, fim
) which allow for injecting full images into the framebuffer.
There are multiple resources on the internet (ref1, ref2, ref3) trying to more or less succesfully explain how to add make a systemd service which will result in an image on the screen.
A common thread in those resources is the mentioning tty
together with the framebuffer
. (i.e. both fbi
and fim
have options to pass them a tty
).
My assumption was that a tty
is a separated concept from a framebuffer
.
The tty
uses the framebuffer
to output content to a user, but the framebuffer isn't in any way tied to a tty
.
Is there a hidden relationship behind a tty
and a framebuffer
which could explain why commands to print images to a framebuffer
seem to depend on a tty
?