Open1
[記事未満] Linuxで画面解像度設定を追加する
4Kのディスプレイを左右2分割で利用し、片側に Raspberry Pi 3B+の画面を表示したい。3840x2160(16:9) を左右2分割するので、1画面につき 1920x2160(8:9) の縦長画面となる。
Raspberry Pi OS Lite に xorg 等最低限の Xディスプレイ関連パッケージだけインストールしたような環境なので、素敵なGUIツールは無い状態。
通常通り接続してディスプレイを左右2分割モードにすると、1920x1080 の解像度のままで横幅が圧縮されて表示されるので、とても見づらい。
これを縦長画面で表示させたい。
環境については下記のとおり。
$ grep Model /proc/cpuinfo
Model : Raspberry Pi 3 Model B Plus Rev 1.3
$ uname -a
Linux doorcamera 5.10.92-v7+ #1514 SMP Mon Jan 17 17:36:39 GMT 2022 armv7l GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
xrandr コマンドで状態を確認する。
標準では希望する解像度設定はないので、設定を追加してあげる。
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 2048 x 2048
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 620mm x 350mm
1920x1080 60.00* 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02
1440x900 59.90
1280x800 59.91
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 2048 x 2048
とあり、最大解像度が2048 x 2048となっている。
この範囲で収まる画面解像度設定を取得する。
$ gtf 1820 2048 60
# 1824x2048 @ 60.00 Hz (GTF) hsync: 127.14 kHz; pclk: 321.41 MHz
Modeline "1824x2048_60.00" 321.41 1824 1976 2176 2528 2048 2049 2052 2119 -HSync +Vsync
設定を追加する
$ xrandr --newmode '1824x2048_60.00' 321.41 1824 1976 2176 2528 2048 2049 2052 2119 -HSync +Vsync
$ xrandr --addmode HDMI-1 1824x2048_60.00
画面に適用する
$ xrandr --output HDMI-1 --mode 1824x2048_60.00
xrandr: Configure crtc 0 failed
ここではエラーになった。画面の出力も変わらない。
下記のように、設定は追加されてはいる。
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 2048 x 2048
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 620mm x 350mm
1920x1080 60.00* 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02
1440x900 59.90
1280x800 59.91
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
1824x2048_60.00 60.00
気を取り直して、リフレッシュレート30でやり直してみる。
$ gtf 1820 2048 30
# 1824x2048 @ 30.00 Hz (GTF) hsync: 62.49 kHz; pclk: 151.98 MHz
Modeline "1824x2048_30.00" 151.98 1824 1936 2128 2432 2048 2049 2052 2083 -HSync +Vsync
$ xrandr --newmode '1824x2048_30.00' 151.98 1824 1936 2128 2432 2048 2049 2052 2083 -HSync +Vsync
$ xrandr --addmode HDMI-1 1824x2048_30.00
$ xrandr --output HDMI-1 --mode 1824x2048_30.00
画面が縦長(8:9)で表示されるようになった。
結果は以下の通り。
$ xrandr
Screen 0: minimum 320 x 200, current 1824 x 2048, maximum 2048 x 2048
HDMI-1 connected primary 1824x2048+0+0 (normal left inverted right x axis y axis) 620mm x 350mm
1920x1080 60.00 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02
1440x900 59.90
1280x800 59.91
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
1824x2048_60.00 60.00
1824x2048_30.00 30.00*
不要な設定を削除する。
$ xrandr --delmode HDMI-1 1824x2048_60.00
$ xrandr --rmmode 1824x2048_60.00
$ xrandr
Screen 0: minimum 320 x 200, current 1824 x 2048, maximum 2048 x 2048
HDMI-1 connected primary 1824x2048+0+0 (normal left inverted right x axis y axis) 620mm x 350mm
1920x1080 60.00 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02
1440x900 59.90
1280x800 59.91
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
1824x2048_30.00 30.00*
再起動すると設定が消える。