Raspberry Pi2 をPCから操作する方法
Raspberry Pi2を購入してしまいました。システムのインストールも済み、ひととおり、動かせるようになり、やってみたいことがでてきました。そのひとつが別のPCからの遠隔操作です。
ここでは、筆者の所有するノートPC(32bit、メモリ2GB)からRaspberry Piを操作する方法について紹介します。
1. SSH接続の設定
1-1. Raspberry Pi2側の設定
接続は、SSH(Secure Shell)というプロトコルを使用します。Raspberry Piは、SSHを有効化する必要があります。このため、まず、raspi-configを起動します。
pi@raspberrypi:~ $ sudo raspi-config
ここで、(1) Advanced Options を選択し、(2) SSH を選択し、(3) Enable で有効化します。
また、今回はIPアドレスを指定して接続しますので、事前にifconfigコマンドを使ってRaspberry PiのIPアドレスを確認しておきます。例えば、無線LANの場合はwlan0のinetアドレスを確認します。次の例では赤字の部分です。
pi@raspberrypi:~ $ ifconfig
eth0 Link encap:イーサネット ハードウェアアドレス xx:xx:xx:xx:xx:xx
inet6アドレス: fe80::8027:bd37:9841:a139/64 範囲:リンク
UP BROADCAST MULTICAST MTU:1500 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:65536 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)
wlan0 Link encap:イーサネット ハードウェアアドレス xx:xx:xx:xx:xx:xx
inetアドレス:192.168.0.11 ブロードキャスト:192.168.0.255 マスク:255.255.255.0
inet6アドレス: fe80::76da:38ff:fe5b:4ee7/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:102 エラー:0 損失:6 オーバラン:0 フレーム:0
TXパケット:140 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:17769 (17.3 KiB) TXバイト:22874 (22.3 KiB)
1-2. PC側での操作
次に、PC側のコマンドライン端末でsshを実行します。SSHサーバーの初期設定は、22番ポートを利用します。例えば、Raspberry Piのユーザー名「pi」、IPアドレス192.168.0.11の場合は、
[user01@localhost ~]$ ssh -lpi -p22 192.168.0.11
pi@192.168.0.11's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug 13 17:19:15 2016
pi@raspberrypi:~ $
Raspberry Piのユーザー名「pi」に対するパスワードを入れると上記のようになります。これで、SSHによる接続ができるようになります。
2. VNCの設定
次は、Raspberry PiをGUIで操作するために、VNC(Virtual Network Computing)を設定します。ここでは、tightVNCをインストールします。Raspberry PiにはtightVNCServer(VNCサーバー)を、PCにはVNC-Viewer(VNCクライアント)をインストールする必要があります。
2-1. Raspberry Pi2側の設定
まずは、Raspberry PiにtightVNC-Serverをインストールしていきます。この操作は、PC側からSSHでRaspberry Piに接続した状態で実行してもかまいません。(Raspberry Piで実行しても良いですが、筆者の環境では、Raspberry Piのデスプレイが小さくて見にくいため、むしろSSHで実行したほうが楽でした。このほうがPCの大きな画面で容易に確認できるので便利でした。)
最初にRaspberry Piをアップデートします。(時間がかかる場合があります。)
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade
次に、tightVNC-Serverをインストールします。
pi@raspberrypi:~ $ sudo apt-get install tightvncserver
2-2. PC側での操作
PC側にはVNC-Viewerをインストールします。REAL VNCのサイト(Download VNC Viewer to the device to connect from) https://www.realvnc.com/download/viewer/ から、PCにあったファイルを選び、ダウンロードします。
ここでは、Linux用のVNC-Viewer-5.3.2-Linux-x86を使用しました。
2-3. VNCを使用する
では、PC側からSSHでRaspberry Piに接続した状態で実行してみます。
まず、コマンドとして「tightvncserver」を入力します。
なお、最初はこの通信用のパスワードを設定します。そして「New 'X' desktop is raspberrypi: 」の後の番号を確認します(この例では1)。
pi@raspberrypi:~ $ tightvncserver
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:~ $
次いで、VNCセッションを開始します。次のコマンドを入力します。
pi@raspberrypi:~ $ vncserver :1 -geometry 800×600 -depth 24
vncserver: geometry 800×600 is invalid
pi@raspberrypi:~ $
解像度はいろんな指定があるようです。うまくいかなかったら数字を替えてみて下さい。
この状態で、PCの別のコマンドライン端末のwindowから、さきほどダウンロードしたVNC Viewer を起動します。
以下は、driversのディレクトリに実行ファイルが置いてある場合の例です。
[user01@localhost ~]$ cd drivers
[user01@localhost drivers]$ ls
・・・・・(省略)・・・・・
VNC-Viewer-5.3.2-Linux-x86
・・・・・(省略)・・・・・
ファイルには実行権付与が必要です。付与されていないときは、
[user01@localhost drivers]$ chmod 755 VNC-Viewer-5.3.2-Linux-x86
のコマンドで付与します。
VNC Viewer を起動します。
[user01@localhost drivers]$ ./VNC-Viewer-5.3.2-Linux-x86
vncserverで決めた通信用のパスワードを入力します。
暗号化されていないので警告がでますが、そのまま継続します。
Raspberry Piの画面が表示されるはずです。これで、手持ちのPCからGUIでRaspberry Piをリモートで操作できるようになりました。
Raspberry Piには、こんなソフトウェアも同梱されています。これもPC側から操作できるようになりました。
VNC Viewer を閉じた後、SSH接続を切断するには、「pi@raspberrypi:~ $」の表示されているwindowで、[CTRL]+[C]を押します。回線切断すると、そのwindowに
pi@raspberrypi:~ $ Connection to 192.168.0.11 closed by remote host.
Connection to 192.168.0.11 closed.
[user01@localhost ~]$
と表示され、SSH接続が切断され、もとのPCのコマンドラインに戻ります。
参考文献・URL
[1] Raspberry PiをWindowsで操作する(SSH)
http://s2jp.com/2014/01/raspberry-pi-ssh/
[2] ラズベリーパイにSSHでリモート接続
http://usicolog.nomaki.jp/engineering/raspberryPi/raspberryPi_SSH.html
[3] TightVNC のインストール
http://www14.plala.or.jp/campus-note/vine_linux/server_vnc/tightvnc.html
[4] Download VNC Viewer to the device to connect from
https://www.realvnc.com/download/viewer/
以上、なんらかのご参考になれば幸いです。
(2016-8-15)
■ 以前の記事
→ 「ラズベリーパイ関連(Raspberry Pi)」に関する以前の記事は、こちらをごらん下さい。
・Raspberry Pi2に取り付けたWebカメラの画像をPCで確認する方法