現象
VNC ViewerでRaspberry Piにリモートデスクトップ接続をしようとした際に、Cannot currently show the dekstopと表示され、画面が表示されない。
また、HDMIケーブルを接続してラズパイを起動するとVNC接続はできます。ラズパイ起動後にHDMIを挿しても、VNCは繋がりません。
IoTの現場など本番環境に設置する際は、常にHDMI接続しているわけではないので困りますよね。自動起動にしてあるNode-REDなどはブラウザからアクセスできており動いていることが確認できるので、ラズパイが起動しているのは判っている。
環境
・VNC Viewer
・OSは、2019-06-20-raspbian-buster.img
・GrovePi+
・Raspberry Pi 3 Model B+
解決方法
HDMI接続をすることなくVNCで画面を出すにはラズパイをデスクトップモード(サービスモード)で起動する必要があります。HDMIを繋いだ時だけVNC接続できるのはこれが原因のようです。デスクトップモードで起動するには、config.txtで解像度を指定します。そのため、GUIのコンフィグツールで指定するか、/boot/config.txtを編集します。
sudo raspi-config
でVNCを有効にします。
その後、
sudo nano /boot/config.txt
でconfig.txtを編集します。今回は、
#hdmi_force_hotplug=1
をコメントアウトして
hdmi_force_hotplug=1
のように編集しました。
なお、デスクトップモードで起動しない場合は、Virtual modeにする必要があり、この場合はコマンドラインからvncserverを起動しないといけないのでなんか面倒な気がします。もしかして、Virtual modeだとRaspberry Piへの負荷が低いのかな??