MacからRaspberry Piをモニター・キーボード・マウス無しのヘッドレス環境でVNCで接続するまで

備忘録。
通常Raspberry Piでデスクトップ環境にアクセスするには物理でモニター、キーボード、マウスなどを接続して初期設定するらしいが、スペースも勿体ないので全てリモートで設定してみた。

前提

本体:Raspberry Pi 3B+
ネットワーク:自宅の無線LAN

事前準備

リモートでアクセスするために、OSインストールの段階でSSHからアクセスできるようにする。
Raspberry Pi ImagerでOSをSDカードに書き込む前に、画面上でCtrl + Shift + x キーを同時に押すとSSHファイルの作成や、無線LANにアクセスするSSIDやパスを事前に登録しておくことができる。
これで起動後すぐにターミナルからSSHでアクセスできるようにしておく。

SSHからVNCの設定

上記で起動ができたRaspberry Pi本体へSSHでアクセスし、以下の設定を進める。
Raspberry OSにはデフォルトでRealVNCというソフトが含まれているが、初期設定がやや面倒かつ30日しか無償で使えないようなので、フリーのtightVNCを代わりにインストールして使用することに。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install tightvncserver

インストール時にRealVNCを削除する、というメッセージもあるがYesで進める。
インストールできたら以下で実行。

tightvncserver

初回起動時はパスワード設定のリクエストがあると思うんので設定。
View modeの設定はNoでもOK(必要なら設定してもいい)。

VNCを受け付けるPort番号は5901なので、念の為LISTENになっているかをnetstat -nltで確認。

pi@raspberrypi:~ $ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
pi@raspberrypi:~ $ 

FinderからVNCへアクセス

Finder→移動→サーバへ接続(⌘+K)
vnc://192.168.x.xxx:5901でアクセス。IPアドレスは各自環境を入力。
アクセス時にパスワード確認があるので、初期設定で登録したパスワードで入ることができる。

TIPS

IPアドレスは固定した方が楽なので、以下で編集。

sudo nano /etc/dhcpcd.conf

tightVNCはRaspberry Pi再起動ごとに実行が必要なので、起動時に自動で起動するようにしておく。

$ sudo vi /etc/init.d/vncboot

#! /bin/sh

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
	start)
		echo "Starting VNC Server"
		#Insert your favoured settings for a VNC session
		su $USER -c '/usr/bin/vncserver :1 -geometry 1024x768 -depth 24'
		;;

	stop)
		echo "Stopping VNC Server"
		su $USER -c '/usr/bin/vncserver -kill :1'
		;;

	*)
		echo "Usage: /etc/init.d/vncboot {start|stop}"
		exit 1
		;;
esac

exit 0

行の中にある1024×768は画面解像度なので各自環境に合わせて設定。
自分は1280×720(16:9)にしている。

上記記載して保存後、chmodコマンドでスクリプトのパーミッションを変更し実行ファイルにしておきます。

$ sudo chmod 755 /etc/init.d/vncboot

必要であればraspi-configでDisplay OptionのResolutionも変更しておく。

$ sudo raspi-config

Raspberry Pi デスクトップにアクセス成功

これでヘッドレス環境でアクセス可能に。

参考先

Raspberry Pi Imager でSDカード書き込み時にWifiやSSH接続を設定する方法 – 株式会社インデペンデンスシステムズ横浜
MacからRaspberry PiにVNCでリモートデスクトップ接続する方法
初心者が試行錯誤しながらチャレンジするRaspberry Pi入門シリーズ。 自分の作業内容の整理がてら、人の役に立ててもらえたらとブログに公開しています。 前回はMacのターミナル.appからRaspberry PiにSSH接続する方法を
Raspberry PiにTightVNCをインストールし、init.dスクリプトでVNCサーバーを自動起動させる方法
今日はラズパイにVNCサーバーを立ち上げて、MacやPCからのVNC接続でGUI環境を遠隔操作する方法について…
ラズベリーパイ 4 --(7)VNC 解像度変更放浪の旅-その1 | 人生に出会う7WAYS+α
肉体と頭脳と精神を活用し、その先にある「何か」と出会いたい!
Raspberry Pi のIPアドレスを固定にするには? | FABSHOP.JP -デジタルでものづくり! ファブショップ !
RaspberryPiのIPアドレス Raspberry Pi OS上では、初期状態であればIPアドレスは動的
タイトルとURLをコピーしました