*1  Chumby の中を ssh login して覗いてみる

繋ぎ方は Chumby日本語Wikiの Chumby へ ssh で接続する方法を参照。中身は普通に小型機器向けにシェイプしたLinuxなので、リナザウ辺りを触ったことがある人ならさほど新鮮味のある話ではないですね。そんなわけでさっそくログイン。
BusyBox v1.6.1 (2008-03-25 16:42:01 PDT) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
chumby:~# 
組み込みでよく使われている BusyBox が使われている。
chumby:~# uname -a
Linux (none) 2.6.16-csb #1 Tue Mar 25 16:41:23 PDT 2008 armv5tejl unknown
linux kernel は 2.6.16 が入っているようだ。Chumbyのハードウェアスペックは公開されている通りだが、lsmod すると意外とchumby独自のドライバが入っている。
chumby:~# lsmod
Module                  Size  Used by    Not tainted
rt73                  428896  0
chumby_accel           12048  2
chumby_timer            4800  2
usbhid                 37828  0
snd_usb_audio          69152  0
snd_hwdep               7524  1 snd_usb_audio
snd_usb_lib            13888  1 snd_usb_audio
snd_seq_midi            6496  0
snd_rawmidi            20512  2 snd_usb_lib,snd_seq_midi
chumby_udma             6968  0
chumby_sense1           7004  2
chumby_tsc2100         75368  0
source code は後述の一部ファイルを除き、GPLv2 で公開されている。

*2  Chumby のCPU

CPU は ARM9 の FreeScale MX21 350MHz が搭載されている。
chumby:~# cat /proc/cpuinfo
Processor       : ARM926EJ-Sid(wb) rev 4 (v5l)
BogoMIPS        : 174.89
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 4
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128
Hardware        : Freescale MX21ADS
Revision        : 0000
Serial          : 0000000000000000
大したことをしていないとは言え、よくこれで動くなという感じのスペックではある。実際、Chumby Widget 作成時のパフォーマンス考慮点といったドキュメントもあるというくらいにはリソースはシビアなわけだが。

*3  FlashROM と RAM

Chumby には 64MB の NAND Flash ROM, 64MB SDRAM が搭載されている。
chumby:/# df
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock5           34.6M     34.6M         0 100% /
none                     30.2M      4.0k     30.2M   0% /dev
none                     32.0M    488.0k     31.5M   1% /tmp
none                     32.0M     64.0k     31.9M   0% /var
none                     32.0M         0     32.0M   0% /mnt
/dev/mtdblock1            2.0M    108.0k      1.9M   5% /psp
内蔵FlashROM上の / は cramfs が read-only mount されているため、ここをいじるには cramfs を取り出して変更して remount する必要がある。そんな必要は殆ど無いだろうが。設定ファイル類は /psp の下。自作のファイル等を置く場合は、基本的にUSBドライブを使うことになる。なお /tmp, /dev, /mnt は tmpfs, /sys, /proc, /dev/pts はそれぞれ sysfs, proc, devpts で mount されている。
chumby:~# free
              total         used         free       shared      buffers
  Mem:        61928        48416        13512            0         7660
 Swap:            0            0            0
Total:        61928        48416        13512
RAMは 64MB しかない。

*4  Chumby のプロセス

プロセスを見てみると、VSZ では chumhowld と flashplayer が大きい。
chumby:~# ps www
  PID  Uid        VSZ Stat Command
    1 root       1648 SW  init
    2 root            SWN [ksoftirqd/0]
    3 root            SW  [watchdog/0]
    4 root            SW< [events/0]
    5 root            SW< [khelper]
    6 root            SW< [kthread]
   14 root            SW< [kblockd/0]
   17 root            SW< [khubd]
   59 root            SW  [pdflush]
   60 root            SW  [pdflush]
   62 root            SW< [aio/0]
   61 root            SW  [kswapd0]
  679 root            SW  [mtdblockd]
  680 root            SW  [ftld]
  681 root            SW  [nftld]
  975 root            SWN [jffs2_gcd_mtd1]
  983 root       1848 SW  /sbin/syslogd -C200
  991 root       1588 SW< /sbin/udevd --daemon
 1002 root       3164 SW  mountmon --daemon
 1343 root       1512 SWN headphone_mgr
 1604 root            DW  [rt73]
 1605 root            DW  [rt73]
 1755 root       1648 SW  /usr/sbin/httpd -h /www
 1820 root      20808 SW  chumbhowld
 1832 root       4136 SW  /usr/sbin/crond -c /etc/cron/crontabs
 1911 root            SWN [jffs2_gcd_mtd6]
 1984 root       5516 SW  /usr/sbin/btplayd
 1994 root       1652 SW  /bin/sh /usr/chumby/scripts/start_control_panel
 1999 root       1648 SW  init
 2073 root      26644 SW  /usr/bin/chumbyflashplayer.x -i /tmp/controlpanel.swf
 2074 root       1648 SW  sh -c chumbpipe  /tmp/.fpcmdsend /tmp/.fpcmdrecv
 2075 root       2972 SW  chumbpipe /tmp/.fpcmdsend /tmp/.fpcmdrecv
 3021 root       1652 SW  udhcpc -t 5 -n -p /var/run/udhcpc.rausb0.pid -i rausb0
 3285 root       2876 SW  /sbin/sshd
 9612 root       5508 SW  sshd: root@pts/0
 9616 root       4144 SW  -sh
15763 root       5240 SW  /usr/sbin/btplayd
25400 root       4140 RW  ps www
Chumby の widget (FlashLite3) を再生しているのは /usr/bin/chumbyflashplayer.x と言うプログラムのようだ。これ自体に Verdana が埋め込みになっているように見えるので、swfにフォントを埋め込む方法ではなく本体側を日本語化するならこの部分をいじるひつようがありそうに思うのだが、残念ながら他のものと違い、chumbyflashplayer.x はソースの公開もされていないし再配付も許可されていない。Adobe とのライセンスの都合だろうと思うが、非常に残念。
その他だと chumbhowld, httpd, crond, syslogd, sshd(有効にした場合), btplaydなどが動作している。ハードウェア系は udev と mountmon が動いている。

*5  LISTEN しているポートとネットワーク

LISTEN している port を見てみる。
chumby:~# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost.localdom:2148 *:*                     LISTEN
tcp        0      0 localhost.localdom:2094 *:*                     LISTEN
tcp        0      0 *:http                  *:*                     LISTEN
tcp        0      0 *:8082                  *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
80(http) へは普通にブラウザでアクセスすると chumby のロゴと Wireless のステータスが表示される。8082 は chumbhowld が listen しているようだ。同daemonは zeroconf/Bonjour のために動作しており、http で同ポートにアクセスすると幾つかの identify 情報が xml で出力される。現時点で有効に使われているのかよく分からないのだが、今後の拡張用途だろうか。

chumby から外向けでは
tcp        0      0 192.168.0.33:2289       69.43.206.68:http       TIME_WAIT
chumby.com のサーバへの http アクセスがほぼ常時張られていて、My Chumby で設定した channel 情報等を取得するようになっている。

ワイヤレスは普通に iwconfig で。
chumby:~# iwconfig
rausb0    RT73 WLAN  ESSID:"XXXXXXXXXXXXXXXXXXXX"
          Mode:Managed  Frequency=2.442 GHz  Access Point: 00:0D:02:XX:YY:ZZ
          Bit Rate=9 Mb/s
          RTS thr:off   Fragment thr:off
          Encryption key:..........................................
          Link Quality=78/100  Signal level:-48 dBm  Noise level:-79 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
無線LANデバイスはUSB接続されている。日本で使う場合には日本で発売されているUSB接続の無線LANデバイスを使うのが電波法的には良さそう。ドライバの設定をすれば100BaseTX-USBアダプタも使えるものがあるらしい。

*6  主なディレクトリ構造

ディレクトリ構成を見てみると
chumby:~# ls -F /
LICENSES/ dev/      lib/      mnt/      root/     tmp/      www/
bin/      drivers/  linuxrc@  proc/     sbin/     usr/
bitmap/   etc/      lock@     psp/      sys/      var/
/proc や /sys は普通に mount されていてアクセスも可能。Chumby本体用の設定は先述の通り、主に /psp の下にあるようだ。リソース関係は /usr/chumby の下などにある。ストレージの都合だろうが、/var/log は空っぽ。ついでに init.d/ の下を覗いてみると
chumby:~# ls /etc/init.d/
chumbhowld.sh    chumbradiod.sh   inetradio.sh     zeroconf.sh
chumbipodd.sh    daemon-utils.sh  rcS
chumbradio.sh    hotplug          sshd.sh
必ずしも全て boot 時に起動するわけではなく、ControlPanel から activate されるものも結構あるようだ。起動処理は rcS に記載されているので、興味がある人は一度読んでみるといいだろう。

*1  Chumby.com の virtual chumby

chumby.com では chumby を仮想体験できる virtual chumby を作成することが出来る。やり方は大雑把だけど以下の通り。
  1. chumby.com でアカウントを作成
  2. MY CHUMBY → my channels へ進む
  3. Virtual Chumby 用に適当な channel を作成し、Widget を追加する
  4. MY CHUMBY → create a virtual chumby へ進む
  5. チャンネルとサイズを選ぶ
  6. cut and paste this code からコードをコピー
この html を適当なファイルとして保存してブラウザでアクセスすれば、こんな感じで自分の選んだ widget を再生する virtual chumby を見ることが出来る。
更にこの virtual chumby を iGoogle 上に widget として表示することも出来る。

*2  virtual chumby を iGoogle Gadget として使う

これには iGoogle の HTML/JavaScript widget を作成。次のリンク (Create iGoogle HTML/JS widget) をクリックすると、 Chumby と言う名前で新規 iGoogle Widget が作成される。iGoogle の widget 表示画面で「信頼して利用するかどうか」に OK をクリックし、表示されたテキストエリアに virtual chumby で作成した html コードをコピー&ペーストして保存すれば、iGoogle 上で動く virtual chumby の出来上がり。

便利かどうかはともかくとして(個人的には真ん中の画面だけ切り出したい)、chumby でどんなものが動くのか試すのには手軽で良いんじゃなかろうか。興味がある方は是非どうぞ。

Chumby がうちにやってきた

Posted by yoosee on Gadget at 2008-04-30 21:00 JST

*1  chumby - 机の上に転がしておくインターネットの覗き窓

Chumby先月末に米国の友達に購入をお願いした後、色々と受け取りに手間取って約1ヶ月、ようやく chumby がうちに届いた。しばらく遊んでみているが、各種情報表示+インターネットラジオ端末としては本当によく出来ている。Flash / Active Script で自前の widget を作れる人ならばより楽しめるだろう。一言で表現すれば、インターネットの覗き窓、と言う感じ。難点は、現時点では日本語がそのままでは表示できないことと、320x240 の解像度はちょっと小さいな、と思うことくらい。

パッケージングは chumby のロゴが縫い付けられた麻袋に、chumby 本体と電源アダプタ(これはまた小さい麻袋に入っている)、チャームが3つ入った布袋が収められている。デジタルガジェットが届いたというよりは、なにかぬいぐるみでも届いた感じがする。実際、本体がクッション素材の入ったふかふかの合皮でぬいぐるみっぽい感触なので、パッケージも狙ったものだろう。

電源を入れると、chumby は自己紹介の後に、初期設定として無線LANの設定と chumby.com のアカウントとの紐付けを行う。これについては Chumby(チャンビー) 初期登録UIの"おもてなし"が素晴らしい件について でも絶賛されているように、かなり分かりやすくて簡単なやり方だ。

chunby に表示するウィジェットの追加は chumby.com のウェブ上から行う。
ウィジェットの入れ物であるチャンネルを複数用意して、時間帯によって切り替えられるのが便利。日本語が表示出来ず、かつ現時点で用意されているウィジェットの多くが特にニュース系は米国向けのものなので、日本で使うにはポテンシャルを十分に発揮できているとは言い難いが、天気予報や様々な時計、Flickrの画像、Youtubeの人気動画、どこぞのWebCamなどは英語のままでも便利に使うことが出来る。
現状でも日本語を組み込んだ Flash を用意すれば、USBドライブから読ませることで日本語表示を行うこと自体は可能のようだ。

音楽再生は Widget とは別に設定することが出来る。
あらかじめ用意された SHOUTCast のチャンネルや、iPod を繋いでの再生、また SlimServer (SqueezeCenter) を自前のマシンに入れて、そこから iTunes のライブラリ等をストリーミング再生させることも出来る。音楽の再生停止後に復旧させるのがちと面倒なのでそこは何とかしてほしい(MUTEしておけばいいのだろうが、余計なトラフィックが流れるのは個人的には気持ち悪い)。

アラーム(という名の、要は crontab 設定)を使えば平日の朝に目覚ましをかけつつニュースや天気予報等を集めた朝用チャンネルを再生したり、夜中は Night mode にして画面輝度を落としたりといった、曜日×時間帯毎の設定が細かく設定出来るのが非常に便利。

そうしたGUIを通した使い勝手もよいが、ものが Linux デバイスなので、隠しコンパネから sshd を起動して shell login する事が出来たりするのが、やはりギークのオモチャという感じだ。
Chumby Tricks にあるように、GUI からは出来ない細かいな設定も出来るし、chumby 自体が Webサーバとして動いているのでブラウザからアクセスする事も出来るのだが、そこに独自に CGI を設置する事ができたりする。

なお、そうした使い方やTipsについてはChumby日本語まとめWikiに随時書いていく予定なのでそちらを参照の事。

ところで、実は chumby 本体を持っていなくても chumby.com の Virtual Chumby を登録すればどんな Widget が動くのかは体験出来るし、Widget 自体を iGoogle で使うことも出来る。後ほど記事を起こす予定なので、興味がある人は試してみてはいかがだろう。

*1  Chumby日本語まとめWiki

Chumby.com購入をお願いした友人の都合で入手がちょっと遅れてしまっているが、Chumby日本語まとめWikiとかないのか などとつぶやいていたら yukichi さんに声をかけられた ので、Wikia でサイトを立ち上げてもらった。

今のところ私も手元にものが無いということもありたいした情報はありませんが、皆さんのご協力を期待いたします。

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

Monthly Archives

Select Month to read
  

Ads

Recent Entries

Related Sites