Raspi用表示装置4種を試す -2.5-

 HDMI接続では、画像などを表示した場合にLCDパネルの周辺に黒い縁が出てしまって、見てくれも悪いし、パネルの全部を使えていないのが気持ち悪い。
 起動時のSplash画面などでは、LCDのほとんどの部分で描画が出来ているので、おそらく16:9の比率の映像を表示するためにコントローラーのハードウエアスケーラーで、表示エリアが調整されてしまっているのだろう。

 貧乏性なので、できれば、画像の表示領域はすべて使い切りたい。

 LCDをフレームバッファとしてSPI経由で直接操作してみたいと思って、fbtftを使っていろいろやってみたのだけど、fb1を生やすことはできてもSPI経由で直接表示データを書き込むことはできなかった。残念だ。

 仕方がないので、HDMI接続のまま、内蔵のbcm2708の設定を480x320に変更してみることにした。

 起動設定で起動時に切り替えるしかないようだ。config.txtの内容を変更したり追記したりして変更し、再起動する。

pi@raspberrypi:~ $ sudo vi /boot/config.txt
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
hdmi_drive=2
pi@raspberrypi:~ $ sudo reboot

 起動してくると、コンソールの出力の文字も読める程度まで大きくなった画面が表示された。

 フレームバッファの認識は以下のようになった。

pi@raspberrypi:~ $ dmesg |grep fb
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 bcm2708_fb.fbwidth=480 bcm2708_fb.fbheight=320 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=PARTUUID=66cd6c76-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.234896] bcm2708_fb soc:fb: FB found 1 display(s)
[    0.246475] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 480x320

 ddでランダムデータを書き込んで、スクリーンサイズいっぱいに使用されていることを確認する。
 描画がスクリーンを埋めるまでに少し時間がかかるのは、コントローラーの設定で標準ではないスクリーンサイズを指定しているからだろうか? 素のFull HDの時には、もう少し早かったような気がする。

pi@raspberrypi:~ $ dd if=/dev/random of=/dev/fb0
dd: writing to '/dev/fb0': No space left on device
0+7845 records in
1200+0 records out
614400 bytes (614 kB, 600 KiB) copied, 15.8712 s, 38.7 kB/s

 デフォルトで設定できるパラメータの詳細はここに書かれている。

Video options in config.txt - Raspberry Pi Documentation
https://www.raspberrypi.org/documentation/configuration/config-txt/video.md

 今回は、コントローラーがデフォルトで対応していない解像度を使用したので、hdmi_mode=87と使用していないモード番号を指定し、hdmi_cvtで解像度を定義した。

 画像を作って表示してみたけど、パネルが小さいので、小さい字にするとほとんど読めない。


オリジナル投稿: Raspi用表示装置4種を試す -2.5-|kinneko|pixivFANBOX
https://www.fanbox.cc/@kinneko/posts/666700