Framebuffer use

mkohns edited this page Jan 6, 2016 · 15 revisions

This page list some ways to use the framebuffer drivers. All commands are issued from a SSH session.

X server

Install framebuffer driver

sudo apt-get install xserver-xorg-video-fbdev

Create file: /usr/share/X11/xorg.conf.d/99-fbdev.conf

Section "Device"  
  Identifier "myfb"
  Driver "fbdev"
  Option "fbdev" "/dev/fb1"
EndSection

Start X server

startx

Source: blogpost

Alternative method

FRAMEBUFFER=/dev/fb1 startx

mplayer

WIDTH is the display width.
scale is used because the movie is larger than most small displays. -3 means keep aspect ratio and calculate height.

apt-get install -y mplayer
wget http://fredrik.hubbe.net/plugger/test.mpg

mplayer -nolirc -vo fbdev2:/dev/fb1 -vf scale=WIDTH:-3 test.mpg

This does not work for jessie anymore. mplayer was replaced with mplayer2 missing fbdev support. Workaround for this is using SDL

sudo SDL_VIDEODRIVER=fbcon SDL_FBDEV=/dev/fb1 mplayer -vo sdl -framedrop test.mpg

Image viewer

apt-get -y install fbi
wget http://art110.wikispaces.com/file/view/Mystery-100x100.jpg/30649064/Mystery-100x100.jpg

fbi -d /dev/fb1 -T 1 -noverbose -a Mystery-100x100.jpg

Console

Use display as the primary console.
If a keyboard is plugged in after power on, a reboot may be necessary.

# Map console 1 to framebuffer 1, login screen will show up on the display
con2fbmap 1 1

con2fbmap 1
console 1 is mapped to framebuffer 1

# Revert
con2fbmap 1 0

Framebuffer mirroring

By mirroring /dev/fb0 onto /dev/fb1, we can take advantage of the GPU for hardware accelrated video playback.
fbcp takes a snapshot of /dev/fb0, copies it to /dev/fb1 and waits 25ms before repeating.
Snapshotting takes ~10ms and with a 25ms delay it gives roughly 1000/(10+25) = 28fps
CPU usage: ~2%
Note: Snapshot and /dev/fb1 driver refresh is not syncronized.

Install fbcp

sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp

Load drivers and fbcp

sudo modprobe fbtft dma
sudo modprobe fbtft_device name=tinylcd35 rotate=90 speed=48000000 fps=50

# Start fb copying process in the background
fbcp &

Play video on /dev/fb0, which will also show up on /dev/fb1

omxplayer test_480_320.mpg

Stop framebuffer copy

killall fbcp

syslog output

$ tail /var/log/messages
Dec 15 17:38:07 raspberrypi fbcp[4836]: Primary display is 720 x 480
Dec 15 17:38:07 raspberrypi fbcp[4836]: Second display is 480 x 320 16bps

Links:
http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html

Watch Youtube

Using fbcp

Install

sudo apt-get install youtube-dl
# Do this twice
sudo youtube-dl -U
sudo youtube-dl -U

sudo apt-get install python-setuptools
sudo easy_install whitey

Play

yt --player omxplayer

Refs:

piwik

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.