モニター接続なしのRaspberry PiにVNC接続してデスクトップ環境を使う方法
以前Raspberry PiにVNC接続してリモートで操作できるようにセッティングしたが、Raspberry Piにモニターを接続せずに起動すると、VNC接続した時に真っ黒な画面で「Cannot currently show the desktop」と表示されることが発覚した。
これを回避する方法を書き残す。
対処法
まずRaspberry Piの初期設定として、モニターを接続して起動した場合はGUIモード(デスクトップで動かすモード)、接続しない場合はCUIモード(コマンドラインで動かすモード)で起動する仕組みになっているらしい。なのでこの設定を変更する必要がある。
ターミナルを開いて
sudo nano /boot/config.txt
を実行する。するとconfig.txtの中身がターミナルに表示されるので、コメントアウトされている以下の部分を書き換える。
#uncomment to force a specific HDMI mode (this will force VGA) hdmi_group=2 hdmi_mode=82
hdmi_groupは出力先がCEA(例えばテレビ)かDMT(例えばモニター)かを設定するパラメータで、hdmi_modeは出力する解像度を設定するパラメータらしい。今回は、出力先モニターで解像度フルHD(1920×1080)に設定するべく上記の数値を入れた。他の数値を設定した場合の挙動は以下の公式ドキュメントを参照。
さらに加えて、以下の設定をconfig.txtに追加する。
hdmi_ignore_edid=0xa5000080
これを追加すると、モニターからHDMIケーブルを通して通信したEDID(解像度などの情報)を無視することが出来る、つまり自分で解像度を設定できるようになるそうだ。
以上の変更を加えて保存した後、再起動をかけると、モニターなしでもVNC接続でデスクトップ環境が使用可能になる。
参考元
解決にあたって参考にさせて頂いたサイトは以下。