ニワとりの巣箱

面白いものが生まれたり生まれなかったり。

ラズベリーパイをついばむ リモートデスクトップ

正直、SSHでコマンド送信ができればほとんどの用は足りますが、
一応デスクトップ画面も表示できるようにしてみます。

f:id:niwakxq:20150719171102p:plain

使用するのは多分最もメジャーな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'
  ;;
 
 *)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  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:22              0.0.0.0:*               LISTEN    
 
上記のように表示されていればOK
(5901ポートがLISTEN状態)
 
ちなみにtightVNCサーバは複数起動でき、
起動するたびにポート番号の下一桁が増える
(2つ目起動したらポートは5902)
 

※2017/11/24追記

OSをJessieにアップデートした場合の自動起動設定

$ sudo nano /etc/systemd/system/vncserver@.service

[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
 
サービス登録
$ sudo systemctl daemon-reload && sudo systemctl enable vncserver@1.service
 
 

Mac

Finderを開いて、メニューバーの
 移動>サーバへ接続
を選択

f:id:niwakxq:20150719171129p:plain

サーバアドレスに
と入力して接続
 
パスワードを聞かれるので、
ラズベリーパイ側で設定したパスワードを入力すれば
デスクトップ画面が表示される
 
若干動きはカクカクすることもあるが、
まぁ問題なく使えるレベル