ラズベリーパイをついばむ リモートデスクトップ
正直、SSHでコマンド送信ができればほとんどの用は足りますが、
一応デスクトップ画面も表示できるようにしてみます。
使用するのは多分最もメジャーなtightVNC、
クライアントはMacです。
ラズベリーパイ側
LXTerminalでインストール
$ sudo apt-get install tightvncserver
インストールできたら再起動して、サーバ起動
$ tightvncserver
初回はパスワード設定を要求される
desktopYou will require a password to access your desktops.
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)?
パスワードは8文字以内
Verifyは確認の再入力
読み取り専用のパスワードも設定するか聞かれるが、
必要なければNOを選べばOK
うまく起動するとこんな感じのメッセージが表示される
New 'X' desktop is raspberrypi:1
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
これで接続できるようになった
終了する場合は
$ tightvncserver -kill :1
頻繁にリモートデスクトップを使うなら
自動起動にしておくと便利
ただしそのためにはスクリプトを作っておく必要がある
テキストエディタで以下のファイルを作成
$ sudo nano /etc/init.d/vncboot
USER=pi
HOME=/home/pi
export USER HOME
case "$1" in
start)
echo "Starting tightVNCServer"
#Settings
su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'
;;
stop)
echo "Stopping tightVNCServer"
su $USER -c '/usr/bin/vncserver -kill :1'
HOME=/home/pi
export USER HOME
case "$1" in
start)
echo "Starting tightVNCServer"
#Settings
su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'
;;
stop)
echo "Stopping tightVNCServer"
su $USER -c '/usr/bin/vncserver -kill :1'
;;
*)
echo "Usage: /etc/init.d/vncboot {start|stop}"
exit 1
;;
esac
exit 1
;;
esac
exit 0
こんな感じに入力
Settingsのところに解像度の設定があるので
クライアントのPCに合わせて変える
保存したら、実行権限の付与
$ sudo chmod 755 /etc/init.d/vncboot
自動起動の登録
$ sudo update-rc.d vncboot defaults
これで次回から起動すれば自動的にtightVNCも起動されるはず
再起動して、うまくいったか確認
(ポートが開いているか)
$ netstat -lnt
稼働中のインターネット接続 (サーバのみ)
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: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
上記のように表示されていればOK
(5901ポートがLISTEN状態)
ちなみにtightVNCサーバは複数起動でき、
起動するたびにポート番号の下一桁が増える
(2つ目起動したらポートは5902)
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=pi
PAMName=login
PIDFile=/home/pi/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1440x900 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=pi
PAMName=login
PIDFile=/home/pi/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1440x900 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
サービス登録
$ sudo systemctl daemon-reload && sudo systemctl enable vncserver@1.service
Mac側
Finderを開いて、メニューバーの
移動>サーバへ接続
を選択
サーバアドレスに
と入力して接続
パスワードを聞かれるので、
ラズベリーパイ側で設定したパスワードを入力すれば
デスクトップ画面が表示される
若干動きはカクカクすることもあるが、
まぁ問題なく使えるレベル