Raspberry Pi 4 + Elecrow 5インチ LCD で 720p・1080p 解像度で表示する方法

ラズパイ4用に買った Elecrow の5インチ液晶。

デフォルトの解像度は 800x480 で、ちっちゃくて使いづらかった。

/boot/config.txt を修正すると解像度が変更できるようだったのだが、イマイチ効かなくて試行錯誤していた。今回ようやく解像度を 1280x7201920x1080 に変更する方法が確立できたので、紹介する。

disable_overscan=1

# 1080p に設定する場合は以下のとおり
framebuffer_width=1920
framebuffer_height=1080
# 720p にする場合は以下を利用する
#framebuffer_width=1280
#framebuffer_height=720

# 強制的に HDMI 出力する
hdmi_force_hotplug=1
# HDMI から音を出す
hdmi_drive=2
# DMT = PC ディスプレイ出力に設定する
hdmi_group=2

# 1080p に設定する場合は以下のとおり
hdmi_mode=82
# 720p に設定する場合は以下を利用する
hdmi_mode=85

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

[pi4]
# 以下を有効にすると解像度設定が効かなくなるので、コメントアウトしたままにしておく
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
#dtoverlay=vc4-fkms-v3d
#max_framebuffers=2

[all]
#dtoverlay=vc4-fkms-v3d

# NOOBS Auto-generated Settings:
start_x=1
gpu_mem=128

ネット上でよく書かれている hdmi_group=1hdmi_mode=16 というヤツだけでは効かなくて、framebuffer_widthframebuffer_height の指定が必要だった。

hdmi_group=1 というのはよく見るとちょっとおかしくて、CEA = TV 出力用の設定にする、という意味なのだ。PC 向けのディスプレイ設定であれば hdmi_group=2 の DMT の方が正しそうだし、結局コチラで上手くいった。

あとは意図していない項目をひたすらコメントアウトしていって、この設定に行き着いた。

framebuffer で指定した解像度と、hdmi_mode の指定がズレていると、画面に何も映らなくなってしまった。iPhone から VNCViewer で接続したらとりあえず表示されたので、リモート接続で画面を確認して /boot/config.txt を修正して対応した。

指定した解像度で上手く表示できているかどうかは以下のコマンドで確認できる。

$ tvservice -s

1080p 表示もできたが、5インチ液晶だとさすがに小さすぎるので、720p 表示に留めておいた。それでもタッチパネルでの操作は困難を極めるので、やはりマウス操作が必須。指やペンで操作するなら、800x480 以上・1280x720 以下で調整しても良いのかも。


そういえば Ewin のワイヤレスキーボードはどうも接続が悪くてブチブチ切れる…。キーボードとマウスはやっぱ有線やな…。

以上。