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)
うむ、さて困ったなぁ。でもだいぶ進歩したな。