Chumby の中を ssh login して覗いてみる
Posted by yoosee on Gadget at 2008-05-09 00:30 JST1 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 unknownlinux 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 0source 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 13512RAMは 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 wwwChumby の 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 *:* LISTEN80(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_WAITchumby.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 に記載されているので、興味がある人は一度読んでみるといいだろう。
ブラウザ上で動作する Virtual Chumby を試してみよう
Posted by yoosee on Gadget at 2008-05-01 12:00 JST1 Chumby.com の virtual chumby
chumby.com では chumby を仮想体験できる virtual chumby を作成することが出来る。やり方は大雑把だけど以下の通り。- chumby.com でアカウントを作成
- MY CHUMBY → my channels へ進む
- Virtual Chumby 用に適当な channel を作成し、Widget を追加する
- MY CHUMBY → create a virtual chumby へ進む
- チャンネルとサイズを選ぶ
- cut and paste this code からコードをコピー
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 JST1 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 で使うことも出来る。後ほど記事を起こす予定なので、興味がある人は試してみてはいかがだろう。
Chumby 日本語まとめWiki を立ち上げました
Posted by yoosee on Gadget at 2008-04-01 23:55 JST1 Chumby日本語まとめWiki
購入をお願いした友人の都合で入手がちょっと遅れてしまっているが、Chumby日本語まとめWikiとかないのかなどとつぶやいていたら yukichi さんに声をかけられた ので、Wikia でサイトを立ち上げてもらった。
今のところ私も手元にものが無いということもありたいした情報はありませんが、皆さんのご協力を期待いたします。