HDMI表示のフレームバッファが直接操作可能かどうか確認してみる。Raspbian Lite環境なので、/deb/fb0は直接操作できるだろう。ssh接続して操作する。
使用可能なフレームバッファデバイスを確認する。fb0しかない。
pi@raspberrypi:~ $ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 Jun 20 11:17 /dev/fb0
pi@raspberrypi:~ $ fbset -i
mode "1184x624"
geometry 1184 624 1184 624 32
timings 0 0 0 0 0 0 0
rgba 8/16,8/8,8/0,8/24
endmode
Frame buffer device information:
Name : BCM2708 FB
Address : 0x3e929000
Size : 2955264
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 4736
Accelerator : No
サイズをチェック。あれ? FullHDではないの? 微妙な数字だな...
pi@raspberrypi:~ $ cat /sys/class/graphics/fb0/virtual_size
1184,624
ビット深度をチェック。32bitカラー。
pi@raspberrypi:~ $ cat /sys/class/graphics/fb0/bits_per_pixel
32
表示画面をダンプしてファイルにする。2.9MBくらいのファイルになった。
pi@raspberrypi:~ $ cat /dev/fb0 > hdmi.raw
pi@raspberrypi:~ $ ls -l hdmi.raw
-rw-r--r-- 1 pi pi 2955264 Nov 14 10:40 hdmi.raw

フレームバッファに0を書き込んでみると、画面が黒くなった。
pi@raspberrypi:~ $ dd if=/dev/zero of=/dev/fb0
dd: writing to '/dev/fb0': No space left on device
5773+0 records in
5772+0 records out
2955264 bytes (3.0 MB, 2.8 MiB) copied, 0.0398629 s, 74.1 MB/s
先程ダンプした内容を書き戻してみると、もとの画面が表示された。
pi@raspberrypi:~ $ cat hdmi.raw > /dev/fb0
ランダムな値を書き込むと、カラー版の砂の嵐みたいのが表示された。
pi@raspberrypi:~ $ cat /dev/urandom >/dev/fb0
cat: write error: No space left on device

ちなみに、rawファイルはそのままでは少し扱いにくいフォーマットなので、fbcatコマンドを使って変換するのが楽だ。ppmファイルに吐き出すことができる。
pi@raspberrypi:~ $ sudo apt-get install fbcat
pi@raspberrypi:~ $ fbcat > hdmi.ppm
pi@raspberrypi:~ $ ls -l hdmi.ppm
-rw-r--r-- 1 pi pi 2216464 Nov 14 11:55 hdmi.ppm
さらに、fbcatパッケージに含まれるfbgrabを使うと、直接pngファイルを吐くこともできる。
pi@raspberrypi:~ $ fbgrab hdmi.png
任意の画像をフレームバッファに書き込むには、fbiコマンドを使うことができる。
pi@raspberrypi:~ $ sudo apt-get install fbi
pi@raspberrypi:~ $ sudo fbi -T 1 -d /dev/fb0 -noverbose sample.png

表示エリア外の黒い縁が目立つ。
画像をフレームバッファと同じサイズで作っても、表示した時には切れる部分が出てくるようだ。フレームバッファとパネルの表示エリアのサイズは一致していないようだ。
fbiコマンドは多機能なので、3秒毎にディレクトリ内の全pngファイルを表示するには、以下のようにする。
pi@raspberrypi:~ $ sudo fbi -t 3 -T 1 -d /dev/fb0 ./*.png
フレームバッファサイズへの自動リサイズなどのオプションも選ぶことができる。
つづく
オリジナル投稿: Raspi用表示装置4種を試す -2.2-|kinneko|pixivFANBOX
https://www.fanbox.cc/@kinneko/posts/657170


