そういえば、仕様書にあるHDDブートってやったことないなぁ。
ということで、今頃ですがやってみました、HDDブート。
仕様書によると
動作は保障しない
とのこと(笑)。もうなんだっていいです、はい。
1.未フォーマット状態のHDDを接続し、通常ブートさせる。
2.CD-ROMの「development_kit」内の書き(『下記』の誤植)ファイルを共有ディレクトリ、「mtd device」にコピーする。
3.上記状態で、製品背面のinitswを押す。
4.Infoledが点滅し、フォーマット、開発環境の展開、u-bootの環境変数の書き換えが行われる。
とのこと。
下記ファイルとは
hddrootfs.tar.gz
ChangeMeDevHDD
ChangeMeUbootEnv
uImage.buffalo
の4つ。
ひとまずこの通りにやってみた。
作業終了でreboot。
へぇ、HDDブートの時はサングラス男出ないんだね。
HDDブートの時の環境変数です。
baudrate=115200
loads_echo=0
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=00:16:01:A4:D5:55
buffalo_ver=BOOTVER=1.091
build_time=18:10:02
nand_uImage_offset=20000
def_tftp=tftp $(default_kernel_addr) $(kernel); tftp $(default_initrd_addr) $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) rw initrd=0x02000040,20M panic=5 $(buffalo_ver); bootm $(default_kernel_addr) $(default_initrd_addr)
kernel=uImage.buffalo
initrd=initrd.buffalo
filesize=1a7fa4
fileaddr=0
ipaddr=192.168.1.9
serverip=192.168.1.25
default_initrd_addr=0x02000000
uImage_block=0
uImage_offset=0x00020000
default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/sda2 rw panic=5
bootargs=console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09
bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)
nand_boot=no
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaFlashBuf=yes
enaCpuStream=no
ethprime=egiga0
bootdelay=3
disaMvPnp=no
overEthAddr=no
usb0Mode=host
usb1Mode=host
フラッシュブートからの変更点は
bootargs_root root=/dev/sda2 rw panic=5
bootcmd ide reset; ext2load ide 0:1
nand_boot no
bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
の4点でしょうか。
有名な「
LinkStation/玄箱をハックしよう」ではもっと詳しく、/etc/init.d/rcS内の変化を説明していただいてます。(→「
初期化の違い」)。
ホントありがたい話です・・。
ためしに以下のように入力すると、フラッシュからのブートとなりました。
Marvell>> setenv bootargs_root root=/dev/mtdblock2 rw panic=5
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot yes
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> boot
やっとこの辺の仕組みが理解できてきたかもしれません(汗)。
長かった・・。
スポンサーサイト