Raspberry PiをWindowsのシンクライアントにしてみる

RPiは、RAMも少ないしCPUも弱いので、まともなWebブラウザひとつ使うのも結構辛い感じですが、VNCクライアントとしてWindowsを使うならばどうか? と思って試してみました。

VNCは、ネットワーク越しに画面とキーボードやマウスの入力を送受信することで、他のコンピュータを操作するツールです。
Windowsのリモートデスクトップが汎用の仕組みになったようなものです。
RPiは画面表示に専念することになりますので、RAMが少ないことはあまり問題ならないと思われます。

raspbianで利用できるVNCクライアントとしては、xtightvncviewer、gtkvncviewer、gvncviewerなどがあります。
VNCクライアントとしての動作自体には大きな違いはありませんが、GtkなどのGUIツールキットを使ったソフトは、関連ライブラリを読み込むためか、起動はちょっと重たい感じがします。

まず普通のVNCクライアントとして、TightVNCを使ってWindowsを操作してみます。
これはX Window上で動作するソフトで、

sudo apt-get install xtightvncviewer

でインストールします。

操作される側のPCには、VNCサーバをインストールする必要があります。
実は、意外にパフォーマンスに影響が大きいのは、Windows側にインストールするVNCサーバです。

VNCサーバは、UltraVNCRealVNCを試してみましたが、どちらかというとRealVNCのほうが良さそうな感じです。
画面の広い範囲を書き換えるのは遅いのですが、文章を書いたりする場合には反応が早いと感じました。

TightVNCの起動は

vncviewer

です。

起動するとサーバのIPアドレスを聞かれますので、WindowsマシンのIPアドレスを入力します。
パスワードはWindowsのログオンパスワードです。

使ってみた感じ、テキストで書き物をする程度ならば、まあ使えなくはないかと思います。
ウインドウを切り替えるような、大幅な画面書き換えはかなり遅いですが、テキスト編集程度であれば我慢できる速度です。
動画などは、もちろん紙芝居状態になります。

このほか、krdcというソフトもあります。
これはVNCのほかに、WindowsのRemote Desktop Protocolにも対応しています。

Remote Desktopで試してみたところ、反応はVNCよりも良好で、画面の更新が早く感じられます。
また、X Windowのクリップボードの内容をWindows側へペーストすることが出来るのも便利です。
RDPでは音声をクライアント側(RPi側)から出力させることもできるのですが、さすがに処理が追いつかないのか、ノイズだらけで使い物になりませんでした。

大量のライブラリがリンクされているため、インストールにかなり時間がかかりますが、リモートでWindowsに接続させたいなら、試してみる価値はあるソフトだと思います。

以上のソフトはX Windowの中の1つのウインドウの中でVNCが動作することになりますが、X Windowを立ち上げず、画面全体をVNC専用にしてしまう方法もあります。

それには、DirectFBで動作するdirectvncを使います。

X Windowを使わないからといって、大幅に高速になるわけではありませんが、起動に手間がかからず、お手軽ではあります。

directvncを使用する場合は、DirectFBの設定が必要な場合があります。
DirectFBの画面解像度は/etc/fb.modesに設定があり、この中から選択できますが、私が使っている1920×1200という設定が入っていませんでした。

コンソール自体が1920×1200で動作していますので、この状態をfb.modesに追記します。

fbset

を実行すると

mode "1920x1200"
geometry 1920 1200 1920 1200 16
timings 0 0 0 0 0 0 0
rgba 5/11,6/5,5/0,0/16
endmode

という出力が得られますが、これを/etc/fb.modesに追記してやればOKです。
簡単には

sudo fbset >> /etc/fb.modes

となります。

そして、このモードを使用するようにDirectFB用の設定ファイルを書きます。
設定ファイルは$HOME/.directbrcです。

私は以下のように設定しました。

mode=1920×1200
depth=16
hardware
vsync-none

ただしハードウェアアクセラレーションは効いてないような気がします。

以上の設定に加えて、さらに/dev/tty0の読み書きができるようにする必要があります。

sudo chmod go+rw /dev/tty0

これでようやく起動できます。

directvnc ipaddr -p password -m xxx -b 16

xxxのところは、存在しないファイルを指定してください。
本来はキーボードマッピングを記述したファイルを指定する箇所ですが、何も指定しないとエラーになってしまうので、ダミーで指定しています。

この記事はWindowsにRDP接続したRaspbery Piで書いてみました。
なかなかしんどいところもありますが、全く無理と言うわけでもない…と思いました。

raspbmcでXBMCを動かしてみた(続き)

DSC_5473.jpg

ネット上でXBMCについて調べていたら、日本語設定のやり方を見つけたので試してみました。

AirPlay対応でAppleTV要らず!DVDISOやAVIファイルなどを再生できるXBMCで行った方がいい設定。|MacWin Ver.0.7

SYSTEM→Setting→Appearanceに移動。
Skin→Fonts→Arial basedに設定。
International→Language→Japaneseに設定すると日本語表示になります。

raspbmcでも問題なく日本語化されました。

しばらく使って少し慣れてきたのか、動作のもたつき等はあまり気にならなくなってきました。
スタンドアロン環境でも利用できるように、SDカードの空きにコンテンツを詰め込んでおけば、旅先などでテレビに接続して使えるかもしれませんね。

raspbmcでXBMCを動かしてみた

Raspberry PiをXBMCというオープンソースのメディアセンターソフト専用機にするディストリビューション「raspbmc」を試してみました。

Raspbmc

以下は2012年9月1日現在の話です。

raspbianと同様、新しいSDカードを用意してWindows等でイメージを書き込みます。
イメージファイルは上記のリンクから、Downloadを選択して、

just want an image? Of course, you can get the latest installer image here.

というリンクからダウンロードできます。

Windows用インストーラもダウンロードできますが、ツールはなるべく統一したいので使いませんでした。

イメージファイルはgzipで圧縮されていますので、gzipに対応したアーカイバで解凍します。(Lhazとか)

で、前回と同様、イメージをSDに書き込みます。

イメージファイルは75MBと小さいのですぐ終わります。
これをRaspberry Piにセットして、ここからが長いです。

実はraspbmcはネットワークインストールになっていて、そのインストーラが75MBなのです。

DSC_5440.jpg

起動すると、こんな感じでダウンロードが始まります。

DSC_5441.jpg

ダウンロードが済んだら、こんどはインストールです。
コーヒーでも飲んでろということで、2~30分かかります。

そのあとさらにカーネル、モジュール類、ライブラリ類などのインストールが続きます。
最後に最新のXBMCがダウンロードされて、ようやく完了です。

まあ、基本的に完了するまでほっておいてOKです。
で、すべて完了すると…

DSC_5449.jpg

こんな感じでXBMCが起動します。
OpenGLで書かれているらしく、なかなか見栄えがします。

DSC_5450.jpg

システム全体は700MBくらいのようです。
タイムゾーンなど最低限の設定はしたほうが良いですが、言語は日本語にすると表示されませんので要注意。
あと、音声出力はデフォルトでHDMIになっていますので、アナログ出力したい場合は

  Settings→System→Audio output

で設定が必要です。

DSC_5469.jpg

初期状態ではローカルのファイルを再生することができます。
また、Add sourceでNFSやWindowsファイル共有のディレクトリを指定すると、そこに置いてある音楽やビデオを再生できます。

YouTubeは見れないの? と思うわけですが、もちろん見られます。

DSC_5452.jpg

インターネット上のコンテンツを見るには、対応するAdd-onをインストールします。

Add-onの実態は、おそらくWebページを解析して動画のリンクを抽出するスクリプトではないかと思います。
うまく動作しない場合もありますし、コンテンツの一覧を表示させるまでに結構時間がかかる場合もあります。

DSC_5465.jpg
DSC_5464.jpg
DSC_5463.jpg

このraspbmcですが、GUIはかなり綺麗です。
ただ、CPUパワー的には足りていない感じで、ハングアップしたかと思うこともしばしば。
当たり前ですが完成品としてのメディアセンター端末を探しているなら、Apple TVとか買うほうが良いと思います。
まあ、最近のテレビにはメディアセンター機能はたいてい搭載されていますが…。

実用的な価値は別として、ネットでHD映像を受信して再生する端末なんてことを、2,000円のボードでhackして遊べるというのはなかなか楽しいですね。

テレビなどの製品に組み込まれているものと、本質的なところは大きく変わらないはずなので、勉強にもなると思います。