MacからRaspberry PiにVNCで接続する

2020年10月9日

Raspberry Pi4を買ったので色々試し中。GUIは使いたいけど、ディスプレイを繋ぐのはちょっと煩わしいのでVNCで接続できるようにした。ちょっとクセがあるので忘れないようにメモ。

VNCの有効化

まずはVNCを有効にする。2通りのやり方があるのでここはどちらでもOK。すでにディスプレイを繋いでいるなら、左上のスタートメニューから、「設定」>「Raspberry Piの設定」をクリックして、「インターフェイス」タブを選ぶ。そして、「VNC」を「有効」にする。


コマンドラインからセットアップするなら、SSHでログインして下記を実行する。


$ sudo raspi-config

メニューが出るので、「5 Interfacing Options」を選ぶ。

次に「P3 VNC」を選ぶ。

VNCを有効にするか聞かれるので「はい」を選ぶ。

VNCの設定

デフォルトのままではMacの標準の画面共有で接続できないので、Raspberry PiのVNC設定を変更する。
Raspberry Piのデスクトップで右上のVNCアイコンをクリックして、VNC Serverの設定画面を開く。

開いたウインドウの右上のハンバーガーメニューをクリックして「Options」をクリック。

「SecurityのEncryption」を「Prefer off」に、「Authentication」を「VNC password」にする。

「Users & Permissions」の「Password」をクリックしてパスワードを入力し設定する。

これで設定は完了! 接続するには、Macのデスクトップで「コマンド(⌘)」+「K」キーを押し「サーバへ接続」ウインドウが表示されたら、

vnc://raspberrypi.local」を入力して接続をクリックすると、Macから画面共有で接続できるようになる。

HDMIの設定 その1

ここからが重要!
デフォルトの状態ではHDMIを接続しないとVNCで画面が表示されない。なので、起動時にHDMIケーブルが刺さってなくても強制的に画面表示をしてVNCで画面を見る事ができるよう設定する。

LXTerminal、もしくはSSH接続から、bootディレクトリにある「config.txt」を編集する。


$ sudo vi /boot/config.txt

この中に
#hdmi_force_hotplug=1」という項目がコメントアウトされているので、「」を消して保存する。

HDMIの設定 その2

物理的にHDMIでディスプレイを接続しているとその解像度になるけど、何も接続せずにVNCで画面を表示させると、デフォルトの「720×480」になってしまう。これではとても扱いにくいので、広い解像度に設定を変更する。
簡単に設定するなら「raspi-config」で設定。


$ sudo raspi-config

メニューが出るので、「7 Advanced Options」を選ぶ。

次に「A5 Resolution」を選ぶ。

ここで任意の解像度を選ぶ。これでOK。ただし、16:9の解像度はうまく設定できなかった。なので4:3の解像度で任意のものを選ぶ。

また、ここにない解像度でも設定できる。その場合は上で設定した「config.txt」を書き換える。


$ sudo vi /boot/config.txt

この中で
hdmi_mode=」という項目に任意の解像度の番号を入力して保存する。例えば1280×960だったら、「hdmi_mode=32」となる。他の解像度はこのページ(https://elinux.org/RPiconfig#Video_mode_options)の「These values are valid if hdmi_group=2 (DMT)」の部分を参考に。

最後にRaspberry Piを再起動したら終了!

まとめ

これでリモートからRaspberry Piのデスクトップを操作できる様になった! でも画面が4:3なのは今後の課題。

参考