VNCでラズパイ3にリモートデスクトップのように接続

ラズパイにssh接続できるようにしましたが、GUIの画面イメージを取りたいときに、Windowsで言うところのリモートデスクトップ接続のような仕組みが欲しくなります。
LinuxではVNCとその派生版を同様の機能を実現するのが最もポピュラーな方法です。
ラズパイではVNCの派生版の1つであるTightVNCを使用します。
こちらを参考にさせていただきました。 yamaryu0508.hatenablog.com

TightVNCのインストール

$ sudo apt-get update
$ sudo apt-get install tightvncserver

TightVNCの起動

ラズパイ側でVNCサーバを立ち上げます。
初回のみパスワードの設定が必要となります。

pi@raspberrypi:~ $ tightvncserver

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

New 'X' desktop is raspberrypi:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

pi@raspberrypi:~ $

TightVNCの停止

停止するときは-killオプションにディスプレイ番号を指定して停止します。
僕はVNCは必要なときだけ起動するべきだと考えているので、ラズパイを起動したときに自動的に立ち上がる設定にはせず、必要な時に起動して用が済んだら停止するようにしています。

pi@raspberrypi:~ $ tightvncserver -kill :1
Killing Xtightvnc process ID 28035
pi@raspberrypi:~ $

TightVNC起動確認

画面サイズ=1024x768、ポート=5901で起動していることがわかります。

pi@raspberrypi:~ $ ps -aef | grep tight
pi       28035     1  0 13:06 pts/0    00:00:02 Xtightvnc :1 -desktop X -auth /home/pi/.Xauthority -geometry 1024x768 -depth 24 -rfbwait 120000 -rfbauth /home/pi/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
pi       28945 27285  0 13:18 pts/0    00:00:00 grep --color=auto tight
pi@raspberrypi:~ $

パスワードの変更

パスワードはtightvncpasswdで変更できます。
パスワードはホームディレクトリの.vnc/passwdファイルに暗号化されて保存されているので、このファイルを削除してからtightvncserverを起動しても再度パスワード入力を求められるので、パスワードを変更できます。

pi@raspberrypi:~ $ tightvncpasswd
Using password file /home/pi/.vnc/passwd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
pi@raspberrypi:~ $

画面サイズを指定して起動

僕の使っているノートパソコンではデフォルトの画面サイズでははみ出してしまうので、画面を小さくして起動します。
この操作の前に停止するのを忘れずに。

pi@raspberrypi:~ $ tightvncserver -geometry 800x600 :1

New 'X' desktop is raspberrypi:1

Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

pi@raspberrypi:~ $

実は/usr/bin/tightvncserverはスクリプトです。
スクリプト中のgeometryを書き換えてしまってもよいと思います。

$geometry = "1024x768";

Windows機からの接続

Windows機から接続するには、UltraVNCを使います。
窓の杜からダウンロードできます。 forest.watch.impress.co.jp

UltraVNCのインストール

カスタムインストールで、UltraVNCViewerだけインストールしましょう。

UltraVNCViewer起動

ラズパイのIPアドレス:ポート番号 を入力してConnectをクリックします。 f:id:zhihong:20160923225428p:plain

次にtightvncserverを起動するときに設定したパスワードを入力します。 f:id:zhihong:20160923225624p:plain

こんな感じに起動します。 f:id:zhihong:20160923225637p:plain

以上です。
これでスナップショットを取りやすくなりました。