今までARMとは何ぞや?ARM CPUにサックリ入るLinuxは?などと情報収集をしていたが、Debian 6 squeezeを入れる事にした。
ARMというCPUはlegacy ABIとEABIとかいうのがあるらしく、OpenRDはEABIで、armelというやつがそれらしい。未だに違いが良く分からないがバイナリのエンディアンの違いかな?
Debian installer for OpenRD という、英文だが非常にシンプルかつ簡単なインストールガイドがあったので、この通りにやる事にした。
中身を読むと、Debian インストーラは NAND flash へ書き込む事はできないので、USBメモリかSATA HDDへのインストールになるとか。
Corega のRAID HDDハードディスクケースを活用して、ファイルサーバ兼 Zoneminder監視カメラ画像記録サーバ兼家庭LANゲートウエイ兼IRCサーバを構築するつもりだったので、書き込む毎に劣化していくNAND flashを使わないのはむしろ有難いくらい。
まずは、やった事のメモ。
FATかext2またはext3でフォーマットしたUSBメモリにインストーライメージを配置して読み込ませる方法と、TFTPでインストーライメージを読み込ませる方法と2通り紹介されている。
わしは空いているUSBメモリが無いのでtftpでやる事にし、
sudo aptitude tftp-hpa tftpd-hpa
と入れて、
1 2 3 |
cd /srv/tftp sudo wget <a href="http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/openrd/uImage">uImageのURL</a> sudo wget <a href="http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/openrd/uInitrd">uInitrdのURL</a> |
とやって、uImageとuInitrdを配置。
OpenRDを起動して、キー押してboot途中で止める。
OpenRD Ultimateなので次を実行。
1 2 3 4 |
setenv mainlineLinux yes setenv arcNumber 2884 saveenv reset |
次は、SATA HDDなので、
1 2 3 4 |
setenv serverip TFTPサーバのIPアドレス setenv ipaddr OpenRDに割り振るIPアドレス tftpboot 0x01100000 uInitrd tftpboot 0x00800000 uImage |
この時に、ちゃんとファイルが読めていると、#マークが多数表示される。
T T T…とか表示されていると、tftpdのファイルが正しく読めていない。
そしてインストーラ起動。
1 2 |
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most bootm 0x00800000 0x01100000 |
SATAインターフェースに繋いであるハードディスクが起動時に認識され、ハードディスクパーティションを適当に握ってくれるので、既定のままGO!GO!
途中色々聞かれるけど、適当に答え、インストールするのは、sshサーバだけ選んでインストール完了。
再起動後、再びキーを押してbootを止め
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_sata ‘ide reset; ext2load ide 0:1 0x01100000 /uInitrd; ext2load ide 0:1 0x00800000 /uImage’
setenv bootcmd ‘setenv bootargs $(bootargs_console); run bootcmd_sata; bootm 0x00800000 0x01100000’
saveenv
と設定して
1 |
run bootcmd |
で起動!…
せぬわ!
Bad Magic Numberとか言われて怒られる。どうもパーティション指定が違っているようなのだが、どうやれば正しくなるのかさっぱり分からん。
で、困った時のOpenRDフォーラム頼り。
さすが Debian squeeze 出たばっかりだから、ヒトバシラーがおるわおるわw
これを参考にすると、ide reset とか ext2ls とか新たな技を覚えた。
Marvell>> ide reset
Reset IDE:
Marvell Serial ATA Adapter
Integrated Sata device found
[0 1 0]: Enable DMA mode
Device 1 @ 0 1:
Model: WDC WD5000AAKS-00A7B2 Firm: 01.03B01 Ser#: WD-WMASZ0170852
Type: Hard Disk
Supports 48-bit addressing
Capacity: 476940.0 MB = 465.7 GB (976773152 x 512)
これを見ると、ide 1:1 と指定するのが正しいようだ。
なるほど、内部のSATAが0で外部のeSATAソケットが1になる訳だな。
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_sata ‘ide reset; ext2load ide 1:1 0x01100000 /uInitrd; ext2load ide 1:1 0x00800000 /uImage’
setenv bootcmd ‘setenv bootargs $(bootargs_console); run bootcmd_sata; bootm 0x00800000 0x01100000’
そして
1 |
run bootcmd |
無事起動。
とりあえず、今日はここまでで、後でV4Lとかzoneminderインストールとかやろう。