MacからRaspberry PiにVNCで接続する
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なのは今後の課題。
参考
- https://qiita.com/phonypianist/items/e303d84aca3c98e04506
- https://55life555.blog.fc2.com/blog-entry-3221.html
- https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
- https://qiita.com/karaage0703/items/9650e7aeceb6e1b81612#comment-467f53a421bea472cf81
- https://elinux.org/RPiconfig#Video_mode_options