VNCを使ってRaspberry Pi の画面をAndroidに出す
前回はUSBモニターを接続してみましたが、一万円強で800x600の解像度だとちょっとコストパフォーマンス的にどうだろうと考えてしまうレベルです。
コンパクトで手頃な値段のモニター単品ってなかなかないんですよね。
そこで今回は少し視点を変えて、VNCで別の機器に画面を出力する方法を試してみました。
本記事でのクライアントはAndroidですが、別のクライアントでも大丈夫でしょう。
VNCserverの導入
パッケージインストール
% sudo apt-get install tightvncserver
サービス起動
クライアントから接続するためのパスワードをここで設定します。
% vncserver -geometry 1280x720 You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n New 'X' desktop is pi2:1 Creating default startup script /home/penkoba/.vnc/xstartup Starting applications specified in /home/penkoba/.vnc/xstartup Log file is /home/penkoba/.vnc/pi2:1.log
停止
% vncserver -kill :1 Killing Xtightvnc process ID 2615
Android VNCクライアント
以下をインストールしました。無料です。
https://play.google.com/store/apps/details?id=android.androidVNC&hl=ja
Android機を、vncserverを起動したRaspberry Piにリーチ可能なネットワークにつなぎます。
VNCクライアントを起動すると、コネクションの設定画面になりますので適宜設定します。
- コネクション名:任意の名前
- パスワード:先ほどvncserverで設定したもの
- アドレス:Raspberry Piのホスト名またはIP
- ポート:デフォルトでは5900にディスプレイ番号を足した物(:1の場合は5901)となります。
これで接続すると、Android機にXの画面が表示されます。
なかなかお手軽ですね。
Bluetoothのキーボードやマウスがなくても、sshでRaspberry Piにログインして export DISPLAY=:1 してからXアプリケーションを起動すればこちらの画面に表示されます。表示されるだけでGUIの操作はほとんどできませんが...
表示のスピードですが、画面サイズが1280x768、Raspberry Pi側がWLANでという条件で1fps行くかどうか、というくらいの印象です。
Raspberry Piを有線接続にしたら多少早くなりましたがそれでも2fpsくらいでしょうか。動画再生なんかは諦めた方がいいですね。
まとめ
一応これでAndroidにRaspberry Piの画面を出すことができたのでジャンクな中華パッドでも購入してみたいと思っていますが、表示スピードやコントロールキーの問題があるのでまだ快適な独立環境とはいきません。もう少しいろいろ試してみたいと思います。