Debian on chumbyに挑戦中。その5

Chumby起動時に、USBメモリに入れたchroot環境のLennyからsshdを起動させるようにしますた。sshでログインするとこんな感じ。興味がある方は、今週土曜のOSCの東京エリアDebian勉強会のブースへどうぞ。

$ ssh -p 2222 chumby
Debian GNU/Linux 5.0
Enter passphrase for key '/home/hoge/.ssh/id_rsa':
Linux debian 2.6.18 #26 PREEMPT Mon Jul 9 15:20:07 JST 2007 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Feb 19 04:17:41 2009 from xxx.xxx.xxx.xxx
Linux debian 2.6.18 #26 PREEMPT Mon Jul 9 15:20:07 JST 2007 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
(chroot)hoge@chumby:~$ cat /etc/debian_version
5.0
(chroot)hoge@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
(chroot)hoge@chumby:~$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 04:14 ?        00:00:02 init
root         2     1  0 04:14 ?        00:00:00 [ksoftirqd/0]
root         3     1  0 04:14 ?        00:00:00 [watchdog/0]
root         4     1  0 04:14 ?        00:00:00 [events/0]
root         5     1  0 04:14 ?        00:00:00 [khelper]
root         6     1  0 04:14 ?        00:00:00 [kthread]
root        14     6  0 04:14 ?        00:00:00 [kblockd/0]
root        17     6  0 04:14 ?        00:00:00 [khubd]
root        59     6  0 04:14 ?        00:00:00 [pdflush]
root        60     6  0 04:14 ?        00:00:00 [pdflush]
root        62     6  0 04:14 ?        00:00:00 [aio/0]
root        61     1  0 04:14 ?        00:00:00 [kswapd0]
root       679     1  0 04:14 ?        00:00:02 [mtdblockd]
root       680     1  0 04:14 ?        00:00:00 [ftld]
root       681     1  0 04:14 ?        00:00:00 [nftld]
root       718     6  0 04:14 ?        00:00:00 [scsi_eh_0]
root       719     6  0 04:14 ?        00:00:00 [usb-storage]
root       982     1  0 04:14 ?        00:00:00 [jffs2_gcd_mtd1]
root       990     1  0 04:14 ?        00:00:00 /sbin/syslogd -C200
root       997     1  0 04:14 ?        00:00:00 /sbin/udevd --daemon
root      1039     1  0 04:15 ?        00:00:00 mountmon --daemon
root      1373     1  0 04:15 ?        00:00:00 headphone_mgr
root      1436     1  0 04:15 ?        00:00:00 btplayd
root      1523     1  0 04:15 ?        00:00:00 [rt73]
root      1524     1  0 04:15 ?        00:00:00 [rt73]
root      1838     1  0 04:15 ?        00:00:00 udhcpc -t 5 -n -p /var/run/udh
root      1916     1  0 04:15 ?        00:00:00 /usr/sbin/httpd -h /www
root      1933     1  0 04:15 ?        00:00:00 mDNSResponder
root      1955     1  0 04:15 ?        00:00:00 mDNSPublish hoge _http._tcp
root      1970     1  0 04:15 ?        00:00:00 chumbhowld
root      1982     1  0 04:15 ?        00:00:00 /usr/sbin/crond -c /etc/cron/c
root      1997     1  0 04:15 ?        00:00:00 /usr/sbin/sshd
root      2002     1  0 04:15 ?        00:00:00 /bin/chumbalarmd
root      2003     1  0 04:15 ?        00:00:00 /bin/sh /usr/chumby/scripts/st
root      2005     1  0 04:15 ttyS0    00:00:00 init
root      2095  2003 28 04:15 ?        00:02:05 /usr/bin/chumbyflashplayer.x -
root      2096  2095  0 04:15 ?        00:00:00 sh -c chumbpipe  /tmp/.fpcmdse
root      2097  2096  0 04:15 ?        00:00:00 chumbpipe /tmp/.fpcmdsend /tmp
root      2366  1997  4 04:22 ?        00:00:01 sshd: hoge [priv]
hoge      2370  2366  0 04:22 ?        00:00:00 sshd: hoge@pts/0
hoge      2371  2370 13 04:22 pts/0    00:00:03 -bash
hoge      2416  2371  0 04:23 pts/0    00:00:00 ps -ef

Debian on chumbyに挑戦中。その4

あー、 chrootする前に/procをバインドするの忘れてた …。orz

chumby:~# mount -o bind /proc /mnt/usb2/proc
chumby:~# chroot /mnt/usb2
chumby:/1 df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1              1373548    181321   1118946  14% /
tmpfs                  1373548    181321   1118946  14% /lib/init/rw
sysfs                  1373548    181321   1118946  14% /sys
udev                   1373548    181321   1118946  14% /dev
tmpfs                  1373548    181321   1118946  14% /dev/shm
devpts                 1373548    181321   1118946  14% /dev/pts

mandbの更新の時に、/var/cache/man/以下にindex cacheを作るのを失敗した以外は正常だった。これで無事、Lennyへのアップグレードが完了できますた。これで今週末のOSCのネタが間に合ったよ。

Debian on Chumby.

I used Debian Etch for Armadillo-9 images . I divided a USB fhumb drive into two partitions. First partition as /dev/sda1 is vfat format. Second partition as /dev/sda2 is ext2 format. I mounted /dev/sda2 as /mnt, and extracted debian-etch-a9-[1-5].tgz on /mnt.

By the way, Chumby doesn’t support ext2 filysystem. Then I rebuild Linux Kernel for Chumby to support ext2 filesystem. Please look at Chumby Wiki about the way.

After updating the kernel of Chumby, I mounted the Etch partition installed in USB thumb drive. I inserted USB thumb drive to USB Port of Chumby, then powered on chumby. I logged on by ssh, I had done chroot to /mnt/usb2 as Debian on Chumby.

Debian on chumbyに挑戦。その3

先日、Lennyのarmel版をQemuを使ってUSBメモリに入れ、chumbyで動かしてみる、という試みを行ったが、”Illegal instruction”となり行き詰まってしまっていたところ、id:kinnekoさんに、

lennyはarmel(EABI)? chumbyはARM(OABI)だから注意。

とアドバイスを頂いたので、armアーキテクチャでのイメージを使うことにしてみた。のだが、Lennyで公開されているインストールイメージは、Qemuでは軒並みインストールできなかった。何故かなぁと思って、Lennyのインストールガイドをちゃんと読んだら書いていた。

http://www.debian.org/releases/stable/arm/ch02s01.html.ja#id2713668

Versatile プラットフォームは QEMU でエミュレートされており、そのためハードウェアがなくても ARM での Debian のテストや実行を行う良い方法です。

Versatileサブアーキテクチャはarmelだった。残念。

とはいえ、諦めるわけにもいかんので、どうしたもんかなぁと思っていたのだが、前回のOSCで使ったARM9の組込機器の存在を忘れていた。Armadillo-9ですな。しかも、Armadillo-9自体が販売開始されたのは3年以上前。 確実にEABIじゃない はず。ということで、 Armadillo-9はDebian用のハードディスクイメージが公開されている ので、そのイメージを使ってみることにした。結果から言うと、あっさりできた。前回同様、/mnt/usb2にマウントしたDebianイメージ(etch)にchrootできた。良かったよかった。

手順は非常に簡単。

  • リンク先 のtarボールとmd5ハッシュをすべてダウンロード。

  • md5ハッシュのチェック。

$ md5sum -c *.md5
  • ext2フォーマットのUSBメモリ領域に、上記5つのtarボールを展開する。

$ sudo mount /dev/sda2 /mnt
$ cd /mnt
$ tar zxf ~/debian-etch-a9-1.tgz
$ tar zxf ~/debian-etch-a9-2.tgz
$ tar zxf ~/debian-etch-a9-3.tgz
$ tar zxf ~/debian-etch-a9-4.tgz
$ tar zxf ~/debian-etch-a9-5.tgz
  • Chumbyの電源を落としてから、USBメモリを挿し、電源を入れる。

  • sshdを起動し、ssh経由でログインし、/mnt/usr2にchrootする。

$ ssh root@chumby
                                                    ,.....,
                                          .rchERQQQQQQQQQQQQQQp:
                                .fQQQQQQQQQQQQQQQQQQQQQRQQQQQQQQQR
                             hQQQQQQQRRRRMMZDEEbb00009999000bEZRQQQ
                           QQQQRDb09ppppPPPPXXXXXXXXXXXXXXXXPPPpbZQ:
                          QQMbpPXSSSPpppPXXSSSXXXXXXXP99PPXXSSSXP0QQ
                         QQ0XSSSShbQQMMQQZPXXXXXXXXPQQRRQQ9PXXXXXpZQ
                        :Q9XSSXXhRF      EQpXXXXXXPR     .Q0PXXXXP0Q
                        tQPXXXXSZr   ,    tQPXXXXSR        QpXXXXX9Q
                        JQPXXXXXQ  7QQQQ,  Q9XXXSPQ   QQ   Q9XXXXX0Q
                        :QpXXXSPQ   QQQQ   Q9XXXSpQ:      7QPXXXXXbQ
                         Q0XXXS9QR        QRPXXXX0MQZ   ,QQpXXXXXXDZ
                         RMPXSX9DQQ:    LQQPXXXXXpERQQQQQQ0PXXXXXXQr
                         .QpXSXP0ZRQQQQQQZpXXXXXXPp0DMRZ0pXXXXXXSXQ
                          QpXXXXP9EMRRRD9PXXXXXXXXXPPPPXXSXXXXXXSPQ
                          QpXXXSXPPpppPXSSXXXXXXXXSSSSSSSXXXXXXXSER
                         .QPXXXXXSSSSSSSSXXXXXXXXXXXXXXXXXXXXXXXXZR
                         RDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSX0Q.
             r9QQQQQQQQQQZpXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0RQQY
        .EQQQQQQQQQRRRRZ0PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXPPPP9ERQQQD
     .QQQQQQQRQQRQQQRM9PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhQQQZ990EMQQQ0
   9QQQQQQQQMPtYLrirrrpPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSD:  .9QQE99bMRQQ:
  hb.                 ZpXXXXXXbQMPXXXXXXXXXXXXXXXXSpEPXXXXX9Q     .QQR00EMQQZ
                    DQ9XXSXPRQP  ZPXXXXSPQEPXXXXXS9b2RPXXSX9Qf       FQQEbDRQQ
                  iQQ9PXXPQQ:   1ZXXXXhZQ iMXXXXSXQ  pQpXXX0MQ         :QQQRRQh
                 2QR9XXXQQ,    QQPXXXhRF  rQPXXXSQ    QDPXXPbQZ           7RQQQ
                .QEPXhbQ:     QQpXXXhQ7   QEXXXS9b     QpXXX9MQ
                QRPSXQD      QQpXXXhQ7    Q9XXXSQ,     2QPXXPbQr
                Q0XpQi      1QpXXSSQL    jQPXXSXQ       QQPXX9QM
                QpMQ        QbXSSPQi     QMXSXS0Q        RQpPpRQ
                QQU        tQpSSEQ       QbXSSSQU         YQD9RM
                Q          QRPpQ0        QbXSSSQ            QQQr
                           QMQQ          QMPShQF             :Q
                           QQ.           :QpPQb
                                          QQQr
                                           i


BusyBox v1.6.1 (2008-07-24 11:14:52 PDT) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

chumby:~# df
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock5           33.0M     33.0M         0 100% /
none                     30.2M     16.0k     30.2M   0% /dev
none                     32.0M    552.0k     31.5M   2% /tmp
none                     32.0M     60.0k     31.9M   0% /var
none                     32.0M         0     32.0M   0% /mnt
/dev/mtdblock1            2.0M      1.6M    440.0k  79% /psp
/dev/sda1               475.5M      1.4M    474.1M   0% /mnt/usb
/dev/sda2                 1.3G    118.6M      1.1G   9% /mnt/usb2
chumby:~# chroot /mnt/usb2
chumby:/1 ls
bin   dev  home    lib         media  opt   root  srv  tmp  var
boot  etc  initrd  lost+found  mnt    proc  sbin  sys  usr
chumby:/2 cat /etc/devian_version
4.0

うむ、素晴らしい。

ついでにchroot環境のetchをlennyにアップグレードを試みた。

Etchで最新状態にした後、apt lineをlennyに変更し、apt-get updateまでは良かったのだが、upgrade途中でコケる。

(Reading database ... 7335 files and directories currently installed.)
Preparing to replace coreutils 5.97-5.3 (using .../coreutils_6.10-6_arm.deb) ...
Unpacking replacement coreutils ...
rm: cannot remove `/var/lib/dpkg/tmp.ci/control': Function not implemented
dpkg: error while cleaning up:
 subprocess rm cleanup returned error exit status 1
Setting up coreutils (6.10-6) ...

rm: cannot remove `/var/lib/dpkg/tmp.ci/control': Function not implemented
dpkg: error processing /var/cache/apt/archives/diff_2.8.1-12_arm.deb (--unpack):
 subprocess rm cleanup returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/diff_2.8.1-12_arm.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

うむ、さて困ったなぁ。でもだいぶ進歩したな。

二日遅れのバレンタイン

ヨメから二日遅れのバレンタインで焼酎をもらった。『琉球泡盛 琥珀伝説 暖流』。オーク樽で大切に育てましたとある通り、ウィスキーのような香りがする古酒。”まずはオンザロックで味わいください。”とある通りに飲んでみたら、これが美味い。ヨメに感謝。