Raspberry Piでリモート操作できるようにするメモ

** ※本記事は2015-02-16-raspbian-wheezyをベースに記事を書いています。 **

Raspberry Piを操作するためにいつもディスプレイ・キーボード・マウスをつなぐのも大変なので、VNCでリモート操作ができるようにします。

また、Raspberry Piの自重が軽すぎて、接続ケーブルのちょっとした動き(特にマウス)に合わせてズルっと動いちゃって微妙に心もとない。そして、USBポートが4つあるとはいえ無線LANで1つ使いますし、さらにキーボード・マウス2つでなるべく専有しないようにしたいというのもあります。

今回のインストールは、ほとんどこの方の記事で事足りてしまうのですが、少々書き加えた箇所もあり自分用のメモとして残しておきます。

Raspberry Piを別のPCからリモート操作 » DesignSpark

Raspberry PiをイメージからインストールしSSHではじめて繋いでいる状況を想定しています。

vimのインストール

素のviしか入ってないので編集しやすいようにvimを入れます。

sudo apt-get install vim

インストール

VNCを入れます。

sudo apt-get install x11vnc

ログが出ます。

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libvncserver0 tcl tk x11vnc-data
提案パッケージ:
  libvncserver0-dbg
以下のパッケージが新たにインストールされます:
  libvncserver0 tcl tk x11vnc x11vnc-data
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
1,841 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,192 kB のディスク容量が消費されます。
続行しますか [Y/n]?

yと打ってYesで進みます。

インストールが完了

パスワード設定

x11vnc -storepasswd

と打ってVNC接続時のパスワードを設定します。

Enter VNC password: 
Verify password:    

パスワードを保存するか聞かれるのでYes。

Write password to /home/pi/.vnc/passwd?  [y]/n y
Password written to: /home/pi/.vnc/passwd

起動してみる

以下のコマンドを打って起動します。

x11vnc -usepw -forever

だっーとログが出て、すごいエラーっぽく見えるんですが、うまくいきます。

13/04/2015 13:00:26 -usepw: found /home/pi/.vnc/passwd
13/04/2015 13:00:26 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 2779
13/04/2015 13:00:26 XOpenDisplay("") failed.
13/04/2015 13:00:26 Trying again with XAUTHLOCALHOSTNAME=localhost ...
13/04/2015 13:00:26 
13/04/2015 13:00:26 *** XOpenDisplay failed. No -display or DISPLAY.
13/04/2015 13:00:26 *** Trying ":0" in 4 seconds.  Press Ctrl-C to abort.
13/04/2015 13:00:26 *** 1 2 3 4 
13/04/2015 13:00:30 *** XOpenDisplay of ":0" successful.
13/04/2015 13:00:30 
13/04/2015 13:00:30 Using X display :0
13/04/2015 13:00:30 rootwin: 0xe2 reswin: 0x1200001 dpy: 0x1658f58

(略)

The VNC desktop is:      raspberrypi:0
PORT=5900

******************************************************************************
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?

The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:

    x11vnc -ncache 10 ...

One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching


13/04/2015 13:00:31 check_xrandr_event():
13/04/2015 13:00:31 Detected XRANDR event at location 'check_xevents':
13/04/2015 13:00:31 check_xrandr_event: no change detected.
13/04/2015 13:00:31 check_xrandr_event: enabling full XRANDR trapping anyway.

RealVNCなどで接続してみると以下のように表示されます。VNCでやるとキャプチャも取りやすくて便利ですね。

image_20150413_134909_2

常時起動の設定

このままだと起動ごとにコマンドを打たなければいけないので常時起動できるようにします。

/home/pi/.config/autostartフォルダがそもそもないのでフォルダを作ります。

cd /home/pi/

.configフォルダはVNC以外にも様々な設定ファイルが置かれるようなので、sudoでmkdirを実行してroot権限にはしないようにしましょう。

mkdir .config

フォルダを移動します。

cd .config

autostartフォルダも作ります。

mkdir autostart

いよいよx11vnc.desktopファイルを作成します。

sudo vim /home/pi/.config/autostart/x11vnc.desktop

以下のように書き込み保存します。

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -usepw -forever -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

ディスプレイサイズを1280×720にする

このままだと、画面サイズがやたら小さいので、

sudo vi /boot/config.txt

と打って以下の部分を

#framebuffer_width=1280
#framebuffer_height=720

コメントアウトを取って変更します。

framebuffer_width=1280
framebuffer_height=720

これで再起動してみてVNCでつないでみましょう。最初は「これほんとに出来るのかよ?」と不安になりますが、うまくいくハズw

つながらない時はだいたいネットワークがおかしい。

おわりに

いかがでしたでしょうか。

おかげでRaspberry Piと戯れるときにディスプレイ・キーボード・マウスを持ち出さず、メインPCからあれこれ操作できて一層やりやすくなりました。

それではよきRaspberry Pi Lifeを!