2015年4月29日水曜日

VNCでラズパイを操作する

ラズパイのディスプレイ操作が必要なとき、いちいちHDMIにつなげないといけないのが面倒だったので、外部からラズパイへリモートアクセスする方法探してみた。
VNCという便利なものがあったので導入手順書いとく
 VNCとは
    VNC (Virtual Network Computing)とは、リモートマシンのデスクトップを手元のPCから使えるようにするやつ。つまり、テラタームみたいなリモートでコマンドしか使えないのではなく、リモートでGUIを使えるツール
 ラズパイにVNCサーバを導入
  1. インストール
  2. ラズパイにVNCをインストールする
  3. パスワード設定
  4. VNCを起動の初回はパスワードの設定が行われる
    8文字以内で短すぎないのを設定しないと怒られる
    pi@raspberrypi ~ $ tightvncserver  # VNC起動コマンド
    
    You will require a password to access your desktops.
    
    Password:
    Password too short  # 設定したパスワードが短すぎた場合
    pi@raspberrypi ~ $ tightvncserver
    
    You 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)?y
    
    
    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
    
    
    17行目の数字はディスプレイ番号と呼ばれるもの
    後で使うので覚えておく
    当然ながら、パスワードも後で使うので覚えておく
 PC側からVNCを見れるようにする
次にPC側の設定
  1. インストール
  2. Viewerをインストールする。
    http://www.realvnc.com/download/viewer/
    家のPCはwin7 64bitだったのでコレ
  3. セットアップ
  4. exe起動させてセットアップしていく
    ラズパイのIPアドレス、ラズパイでパスワード設定したときのディスプレイ番号を入力する
    「IPアドレス:ディスプレイ番号」の形式で入力して、「Connect」を押す

    警告ポイの出るけど、気にしない。
    チェックボックスにチェック付けると、二度とこの画面でなくなるので、警告ウィンドウがうざいならチェック付けとく
  5. ログイン
  6. ラズパイで設定したパスワード入力してログイン

完成!

 消し方と次回からのアクセス
  • 消し方
  • 消すときはViewerの右上の×ボタンでOK
    このときまだプロセス(?)は生きているので、再びWindowsのVNC Viewerから接続を行うと消す前と同じ画面になる
    完全に消すにはテラタームで
    $ vncserver -kill :X # X はディスプレイ番号
    
    または、ラズパイをシャットダウンさせる
  • 次回からのアクセス
  • ラズパイをシャットダウンさせるとVNCも落ちるので、再起動時はVNC起動コマンドが必要
    $ tightvncserver
    
    New 'X' desktop is raspberrypi:1 # ディスプレイ番号
    
    Starting applications specified in /home/pi/.vnc/xstartup
    Log file is /home/pi/.vnc/raspberrypi:1.log
    
    またディスプレイ番号が付与されるので、その番号を元にViewerで接続する