nyanpyou Note

主な目的は調べたり作ったりしたプログラミング備忘録(予定)

モニター接続なしのRaspberry PiにVNC接続してデスクトップ環境を使う方法

以前Raspberry PiVNC接続してリモートで操作できるようにセッティングしたが、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

f:id:nyanpyou106:20200228100445p:plain
黄色の部分を書き換える
hdmi_groupは出力先がCEA(例えばテレビ)かDMT(例えばモニター)かを設定するパラメータで、hdmi_modeは出力する解像度を設定するパラメータらしい。今回は、出力先モニターで解像度フルHD(1920×1080)に設定するべく上記の数値を入れた。他の数値を設定した場合の挙動は以下の公式ドキュメントを参照。

www.raspberrypi.org

さらに加えて、以下の設定をconfig.txtに追加する。

hdmi_ignore_edid=0xa5000080

f:id:nyanpyou106:20200228101508p:plain
黄色の部分を追加で書き込む
これを追加すると、モニターからHDMIケーブルを通して通信したEDID(解像度などの情報)を無視することが出来る、つまり自分で解像度を設定できるようになるそうだ。

以上の変更を加えて保存した後、再起動をかけると、モニターなしでもVNC接続でデスクトップ環境が使用可能になる。

参考元

解決にあたって参考にさせて頂いたサイトは以下。

http://mecha.tokyo/006.html

qiita.com