Ubuntuをリモート操作するためのディスプレイ解像度を追加する

TVサーバーを動かしているUbuntu OSはディスプレイが不要なため、設定完了後はヘッドレスで運用しています。運用中のメンテナンスは、下記設定をONにしてWindows Remote Desktopで接続しています。

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

ところが、4K対応をうたった数百円程度のHDMIドングルはリモート接続時に選択できる画面解像度が2K(1920×1080)の次が4K(3840×2160)となるものがほとんどです。これでは、UbuntuのGUI操作をするには2Kでは画面が狭すぎ、4Kでは4Kディスプレイが必要でかつフルスクリーン表示にしないとドットバイドットで表示できないなど、解像度の選択肢が中途半端です。

2560×1440など2Kから4Kの間の解像度に対応したHDMIダミープラグもありますが、軒並み4000円以上する上に、4Kだとリフレッシュレートが20Hz以下になったりするなど使いにくい部分があります。また、これらの制限事項は商品説明には記載されていないため、HDMIダミープラグがリモート接続で快適に使えるかどうかは買って使ってみるまでわかりません。

この問題は、4K60Hzに対応しているHDMIダミープラグを購入し、下記の設定をしてメンテナンス用の表示解像度を増やすことで対応できます。

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

まず、UbuntuがHDMIダミープラグを「どの名前」で認識しているかを特定します。

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

HDMIポートが複数ある場合は複数の名前が表示されるので、下記コマンドでどのHDMIポートに接続されているかを確認します。

$ cat /sys/class/drm/card0-HDMI-A-1/status
connectedCode language: JavaScript (javascript)

connectedと出力されたらそのポートにHDMIダミープラグが挿してあることになります。

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

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

$ 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)

すると下記のように2Kと4Kしか対応していないダミープラグでも任意の解像度を選択できるようになります。

参考になれば幸いです。