Raspberry piを弄ってみようと思ったものの、近年はすっかりMACノート生活が定着し、外部ディスプレイもUSBキーボードも手元にないため、リモートでRaspberry piのセットアップをしてみます。
環境
- Raspberry Pi 3 B+
- MicroSDカード
- MacBook Pro(Catalina)
作業手順
1.MicroSDカードをMacOSにマウントする。
MicroSDカードに事前にRasbianを入れておく。
(スターターキットを購入したので最初から入っていました。)
MicroSDカードをMacに接続すると、SDカードの中身が見える。
/Volumes/boot
2.SSH接続の設定
デフォルトではリモート接続がOFFになってるので、SSH接続の設定を行います。
MicroSDカードのルートであるbootにsshという空ファイルを置くことで、SSH接続が有効化されます。
% touch /Volumes/boot/ssh
※Raspberry Piを起動後、このファイルは/bootからは削除されます。
3.Wi-Fiの設定
Raspberry Piと通信するために、Raspberry PiにWi-Fiの設定をします。
SSID(ssid)とパスワード(psk)を記述した以下の内容のwpa_supplicant.confファイルを、MicroSDのルートディレクトリ/bootに作成します。
% vi /Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="XXXXXXXXXXXX"
psk="00000000000000000000000000000000000000000000"
}
パスワードは、平文でも良いようですが、暗号化して記述します。
Raspberry Piでは、Wi−Fiパスワードはwpa_passphraseコマンドで256bit keyの暗号化をしますが、Macでは使えない。以下のサイトで変換してファイルを出力してくれるので、使わせてもらいました。
wpa_supplicant.conf作成
https://mascii.github.io/wpa-supplicant-conf-tool/
※Raspberry Piを起動後、このファイルは、/etc/wpa_supplicant/にコピーされ、/bootからは削除されます。
4.SSH接続
SSHでRaspberry Piに接続します。
MicroSDをRaspberry Piに挿入して電源を入れます。
OSが起動するとLEDが緑色に点灯します。1分程度
MacのTerminalでSSH接続します。
ホスト名は、raspberrypi.local
初期パスワードは、raspberry
% ssh pi@raspberrypi.local
無事にRaspberry Piに接続されると、Mac Tarminalには以下のように表示されます。
pi@raspberrypi:~ $
5.VNC接続
Raspberry piには、デフォルトでRealVNCというVNCソフトが用意されていますが、MACの標準サービスで接続するには、色々と大変なようなので、MACと相性の良いtightvncserverをインストールします。
その前に、各種アップデートを行います。
(1)sudo rpi-update
(2)sudo reboot
Raspberry PiのファームウェアとOSのカーネルをバージョンアップします。
(3)sudo apt update
OSのパッケージを管理しているリストを更新します。
(4)sudo apt dist-upgrade -y
取得したパッケージリストからパッケージの更新をします。
(5)sudo apt-get autoremove -y
(6)sudo apt-get autoclean
不要ファイルを削除します。
(7)sudo reboot
pi@raspberrypi:~ $sudo rpi-update
pi@raspberrypi:~ $sudo reboot
pi@raspberrypi:~ $sudo apt update
pi@raspberrypi:~ $sudo apt dist-upgrade -y
pi@raspberrypi:~ $sudo apt-get autoremove -y
pi@raspberrypi:~ $sudo apt-get autoclean
pi@raspberrypi:~ $sudo reboot
tightvncserverをインストールします。
pi@raspberrypi:~ $sudo apt-get install tightvncserver
tightvncserverを起動します。
初回起動時、パスワードを設定します。
pi@raspberrypi:~ $sudo tightvncserver
tightvncserverの自動起動を設定をします。
pi@raspberrypi:~ $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=root
HOME=/root
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 1440x900 -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
上記解像度「1440x900」は、MacBook13インチに合わせています。
次に、実行権限を与え、自動起動の設定を行います。
最後に再起動します。
pi@raspberrypi:~ $sudo chmod 755 /etc/init.d/vncboot
pi@raspberrypi:~ $sudo update-rc.d vncboot defaults
pi@raspberrypi:~ $sudo reboot
自動起動の確認をします。
5901番ポートがLISTENされていれば起動しています。
pi@raspberrypi:~ $sudo netstat -nlt
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
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
MacからVNC接続をします。
Finderの移動タブから「サーバーへ接続」をクリックします。
「サーバアドレス」の欄にvnc://IPアドレス(ホスト名):ポート番号と入力して、接続します。
今回は、vnc://raspberrypi.local:5901と入力します。
パスワード入力ダイアログがポップアップされるので、先ほど設定したパスワードを入力します。
認証が成功すると、画面共有が立ち上がってRaspbianの画面が表示されます。