備忘録。
通常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 デスクトップにアクセス成功
これでヘッドレス環境でアクセス可能に。