*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 に記載されているので、興味がある人は一度読んでみるといいだろう。

( Permalink | Comments (0) | tags: chumby  )
Comments

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

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

このエントリーのブックマーク

Monthly Archives

Select Month to read