PerlもFlashも使える目覚まし型ガジェット Chumby でホームサーバー構築
日本でも発売がはじまった次世代目覚まし型ガジェット「Chumby」について紹介します。ただ、普通に用意されたガジェットを遊ぶだけでは物足りない気がします。Chumbyの中は Linux で、Perl も Flash も使えるんです。本稿では、Webエンジニア的にChumby楽しむ方法(特に Chumby をWebサーバーにする方法)を紹介します。
Chumby とは、なんだろう?
本稿で扱う「Chumby」とは、無線LANに対応した目覚まし型ガジェットです。目覚ましやカレンダー機能の他、フォトスタンドになったり、WebラジオやYouTubeの動画を見ることができたり、ゲーム機として使えたりと、とても楽しい端末です。30のカテゴリに600以上のウィジェットが用意されており、その中から好きなものを選んで使うことができます。タッチスクリーンやモーションセンサーを内蔵しています。
Chumbyは各所で話題になっているので、ご存じの方も多いと思います。Chumby を普通に楽しむ場合は、以下のリンクをたどってみてください。
エンジニアにとっての Chumby の面白さ
Chumbyには、既に自分で作る必要がないほど豊富なウィジェットが用意されていますが、自分で気軽に開発することができます。しかも、組み込み系と言えば、C/C++/Java が思い浮かぶのですが、Chumby の開発には、Flash が使えます。
Chumby には、ケータイ向けの Flash である、Flash Lite 3 が搭載されています。Flash Lite 3 と言えば、Flash Player 8 と同等の機能を備えています。ActionScript2.0 を駆使して、YouTube などのFLV動画プレイヤーやMP3プレイヤーを作ることもできます。そうです。ケータイ向けに作った動画なら、Chumby で動かすことができるでしょう。
そして、何よりエンジニア魂をくすぐられる点として、Chumby は、Linux で動いているという点です。SSH で Chumby にログインして自由に遊ぶことができるのです。何をするでもなく、Chumby と PC をつなげて、Chumbyの中を散歩するだけでも、エンジニアなら十分楽しめるのです(たぶん)。
Linux なので、好きなツールをインストールして楽しむこともできますし、ホームサーバーとしても利用できるのです。CPUも ARM9 の FreeScale MX21 350MHzを積んでいるので、自宅でちょっとした用途に使うサーバーなら十分と言えるでしょう。はじめから、Perl がインストールされているので、掲示板などちょっとしたCGIを動かすなら特に追加インストールの必要はありません。
つまり、多機能ガジェット&目覚ましと思って Chumby を見ても十分楽しめるのですが、安価な Linux マシンと思って見ると、エンジニア的には、より楽しめるというものです。
Chumby と PC をつなげてみよう!
それでは、早速、Chumby と PC をつなげてみます。既に、Chumby を無線LANにつなげているという前提で話をします。まずは、Web ブラウザから、Chumby にアクセスしてみます。
Chumby を起動すると、自動的にWebサーバーが立ち上がります。コントロールパネルから[SETTINGS > CHUMBY INFO] と進むと、Chumby に割り振られた IP アドレスが分かりますので、PCの Web ブラウザのURL欄に以下のように入力して確認してみましょう。
http://192.168.xxx.xxx (xxx の部分はChumbyのアドレスを見て入力)
SSHでコンソールにつなげる
Web ブラウザからアクセスするだけでは、はじめから用意されているページが表示されるくらいで面白くありません。次に、Chumby と、SSH でつなげてみます。ただし、SSH のデーモンははじめから起動する訳ではないので、まずは、これを起動させてみます。
sshd を起動する場合は、コントロールパネルの[SETTINGS > CHUMBY INFO]と進んで、画面の右上にチョコッと表示されている[π]のボタンを押します。そして、[SSHD] のボタンを押すと、SSHD が起動します。
Windows から、ssh を使うには、puttyやPoderosaと便利です。Mac OS Xの場合は、Terminal から ssh コマンドを使うことができます。
ホスト名に、Chumby の IPアドレスを指定し、アカウントはroot、パスワードはなしで、接続することができます。Poderosaを使う場合、以下のように設定してつなげることができました。
Terminal から使う場合には、以下のように入力すれば良いでしょう。(もちろん、192.168.1.20 のIPアドレスのところは、ネットワークの環境により違いますので、Chumby のIPアドレスを見て書き換えが必要です。)
$ ssh root@192.168.1.20
また、scp コマンドを使ってファイルを転送することもできますし、wget コマンドを使ってネットからデータをダウンロードすることもできます。
はじめから sshd を起動する方法
はじめから sshd を起動するには、Chumbyにログインして、/pspというディレクトリの下に start_sshd という空のファイルを作ります。あるいは、Chumby に適当な USB メモリを指しておいて、そのルートディレクトリに、start_sshd という空のファイルを作ります。
自作CGIを設置する方法
Chumby には、/www というディレクトリがあり、ブラウザにアクセスすると、このディレクトリがルートになります。しかしながら、このディレクトリは、読み取り専用領域にあり、書き換えることができません。
書き換えることができるのは、/psp 以下のディレクトリです。そこに、/psp/cgi-bin というディレクトリを作り、この中に自作CGIをコピーすることで動かすことができます。
| WebブラウザのURL | Chumby のディレクトリ |
|---|---|
| http://192.168.xxx.xxx/cgi-bin/custom/test.pl | /psp/cgi-bin/test.pl |
しかし、Chumby でユーザーが書き換え可能な領域は限られています。そこで、USBメモリなどを挿して、そこに自作プログラムを置くことになります。/psp/cgi-bin 以下に、USBメモリへのシンボリックリンクを張っておけば、USBに入れたプログラムを動かすことができます。
USBメモリの中のプログラムに、/cgi-bin/custom/usb/xxx の形式でアクセスできるようにするには、以下のようにシンボリックリンクを張ります。
$ ln -s /mnt/usb /psp/cgi-bin/usb
Hello, World! を表示してみる
USBメモリに、test.cgi というファイルを作り、以下のような簡単な perl スクリプトを記述します。
#!/usr/bin/perl print "Hello, World!";
そして、Webブラウザで、Chumby のアドレス/cgi-bin/custom/usb/test.cgi にアクセスします。すると、以下のように、Hello, World! が表示されます。ちょっと感動です。
Chumby の記憶領域について
Chumby で、df コマンドを実行して中を見てみると以下のようになります。(以下は、USBメモリを1つ挿した状態です。)64MB の Flash ROMと、64MB の SDRAM が用意されています。
ちょっとした掲示板を動かす
それでは、次に本格的な掲示板を動かそうと思ったのですが、Chumby 標準の Web サーバーは簡易的なもので、掲示板などは動かすことができませんでした。
では、どうしたら良いのか探してみると、以下の Chumby の WIKI に書いてありました。
上記のページを要約すると、標準の httpd は簡易的なものなので、lighttpd をインストールして使おうというものです。面倒でなければ、上記のページに書いてある手順の通りやって lighttpd をコンパイルして、インストールしてください。
私は、とても面倒だと思ったので上記のページ一番下にあるコンパイル済みのバイナリを頂きました。(これです)
lighttpd のインストールの手順としては、以下の通りです。
- (1) 上記のアーカイブを団ロード
- (2) 解凍して USBメモリにコピー
- (3) Chumby に USBメモリを挿して電源を入れる
以上です。注意としては、(2)の解凍後、debugchumby というファイルが、USBメモリのルートに来るように注意します。
そして、Chumby の IPアドレスに Web ブラウザでアクセスすると以下のように表示されるはずです。
Hello from Chumby!
lighttpd の設定ファイルを修正する
これで、「掲示板が動く!」と思ったのですが、実は動きません!! lighttpd の設定ファイル「lighttpd.conf」を、perl の CGI が動くように設定を変えます。
lighttpd の設定ファイルの位置 <USBメモリ>/lighty/lighttpd.conf
CGIが動かせること、そしてディレクトリのファイル一覧が表示されることの二点を主眼にして、lighttpd.conf を書き換えてみました。
# modules server.modules = ( "mod_cgi", "mod_accesslog", "mod_dirlisting" ) # root server.document-root = "/mnt/usb/lighty/html" # log server.errorlog = "/mnt/usb/error.log" accesslog.filename = "/mnt/usb/access.log" # modules setting index-file.names = ( "index.cgi", "index.html", "index.htm" ) cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" ) dir-listing.activate = "enable"
設定ファイルを書き換えたら、chumby を再起動します。
掲示板を設置してみる
どの程度の掲示板が動くのか試してみるために、適当に「perl bbs」で調べて見つかった掲示板を設置してみる事にしました。(ここでは、light board を試してみました。)
実は、cgi-bin フォルダがあったので、こちらに掲示板を配置したものの動かず、普通に、ドキュメントルート( /lighty/html )以下の適当なフォルダにコピーしたら動きました。結論として、Perl の CGIは問題なく動いています。掲示板程度なら、ぜんぜん問題なく動きました。
まとめ~Chumbyは家庭用Webサーバーに使うのに最適!
以上、Chumby を自宅のWebサーバーとして使う方法を紹介しました。今回の実験で、Chumby でゲームや音楽や動画を楽しむだけでなく、Webサーバーとしても使えるということが証明できたので非常にすっきりしました。どうせ、電源つけっぱなしにして、その辺に転がしておくのなら、Webサーバーや、ちょっとしたファイル置き場として使えたら便利だと思っていたのです。
それから、今回、debugchumby というファイルを、USBメモリのルートにおいて、起動すると、このファイルを実行してくれるということが分かりました。ここに、自作 Flash の起動コードなどを書いておけば、自分だけのコントロールパネルを作ることができます。(このとき、Flash からは、HTTP経由でデータをポストすることができますので、Flash から、Chumbyに挿したUSBにある自作アプリなどを起動することもできます。)cron も動きますので、定時にちょっとしたバックアップ用のスクリプトを走らせたり、株データをダウンロードするなど、バッチ用のマシンとしても使えそうです。
このように、Chumbyは常時起動させておく自分用Webサーバーとして重宝しそうです。他にも、アイデア次第でいろいろと便利ガジェットとしても使えそうです。皆さんもぜひChumbyで遊んでみてください!
このサイトについて
TrackBack URL :







All the physical and chemical laws that are known to play an important part in the life of organisms are of this statistical kind; any other kind of lawfulness and orderliness that one might think of is being perpetually disturbed and made inoperative by the unceasing heat motion of the atoms. ,
Posted by No_limits37 | 2009年10月23日 00:11