Ubuntuにディスプレイ解像度を追加する

Ubuntuをヘッドレスで運用する場合、SSHで接続するか、下記設定をONにしてWindows Remote Desktopで接続して運用することになると思います。

Ubuntuは画面出力をしてないとWindows Remote Desktopでの接続ができません。このため、下記のようなHDMI/Display Portのダミープラグを利用して画面表示状態にする必要があります。

ところが、数百円程度の4K対応をうたったHDMIドングルは選択できる解像度が2K(1920×1080)の次が4K(3840×2160)となっており、Windows Remote DesktopでUbuntuのGUI操作をするには2Kでは画面が狭すぎたり、4Kでは広すぎたりして中途半端です。

2560×1440など2Kから4Kの間の解像度に対応したHDMIダミープラグもありますが、軒並み4000円以上する上に、4K解像度ではリフレッシュレートが20Hz以下になったりするなど使いにくい部分があったりします。また、これらは商品説明に無いので買ってみないとわからないという問題もあります。

下記の設定をすれば格安のHDMIダミードングルでも表示解像度を増やせます。

手順1:HDMIポートの名前を確認する

まず、ダミープラグがシステムの内部で「どの名前」で認識されているかを特定する。

$ ls /sys/class/drm/ | grep HDMI
card0-HDMI-A-1
card0-HDMI-A-2Code language: JavaScript (javascript)

HDMIポートが複数ある場合は複数の名前が表示されるので、下記コマンドでどのHDMIポートに接続されているかを確認します。connectedと出力されたらそのポートにHDMIダミープラグが刺さっていることになります。

<code>$ cat /sys/class/drm/card0-HDMI-A-1/status</code>connectedCode language: HTML, XML (xml)

手順2:設定ファイル(GRUB)を編集する

設定ファイルを下記のように書き換えます。

$ vi /etc/default/grub
...
(修正前)GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
(修正後)GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=<HDMIポート>:<画面解像度>@<リフレッシュレート>"Code language: HTML, XML (xml)

HDMIポート名は”card#-“の部分を削除して指定します。以下は設定のサンプルになります。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=HDMI-A-1:2560x1440@60"Code language: JavaScript (javascript)

手順3:設定を反映して再起動する

書き換えただけでは有効にならないため、システムに読み込ませて再起動します。

$ sudo update-grub
done
$ sudo rebootCode language: Bash (bash)

参考になれば幸いです。