2009年4月25日土曜日

そして玄箱へ… LV4

さて、これからデンジャラス・ゾーンに突入
念のため、Debian(武将2)で起動した状態のu-boot環境変数を
nvram で取得しておく。



# nvram -c printenv
1: [baudrate=115200]
2: [loads_echo=0]
3: [ipaddr=192.168.11.150]
4: [serverip=192.168.11.1]
5: [rootpath=/nfs/arm]
6: [cpuName=926]
7: [CASset=min]
8: [MALLOC_len=4]
9: [bootargs_end=:::DB88FXX81:eth0:none]
10: [ethact=egiga0]
11: [ethaddr=00:16:01:A4:DD:CF]
12: [stdin=serial]
13: [stdout=serial]
14: [stderr=serial]
15: [enaMonExt=no]
16: [enaFlashBuf=yes]
17: [enaCpuStream=no]
18: [ethprime=egiga0]
19: [buffalo_ver=BOOTVER=1.091]
20: [build_time=18:10:02]
21: [initrd=initrd.buffalo]
22: [kernel=uImage.buffalo]
23: [nand_uImage_offset=20000]
24: [default_initrd_addr=0x02000000]
25: [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)]
26: [bootdelay=3]
27: [disaMvPnp=no]
28: [overEthAddr=no]
29: [usb0Mode=host]
30: [usb1Mode=host]
31: [default_kernel_addr=0x00100000]
32: [bootargs_base=console=ttyS0,115200]
33: [bootargs_root=root=/dev/sda2 rw panic=5]
34: [bootargs=console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09]
35: [bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)]
36: [nand_boot=no]


■ HDD(/dev/sda2)起動 -> フラッシュ・メモリ(/dev/mtdblock2)起動

・ u-boot環境変数設定用シェル・スクリプト作成
/usr/local/sbin/ に以下のファイルを作成

【 setMtdblock2Boot.sh 】
#!/bin/sh
nvram -c set default_kernel_addr 0x00100000
nvram -c set bootargs_base 'console=ttyS0,115200'
nvram -c set bootargs_root 'root=/dev/mtdblock2 rw panic=5'
nvram -c set bootargs 'console=ttyS0,115200 root=/dev/mtdblock2 rw panic=5 BOOTVER=1.09'
nvram -c set bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)'
nvram -c set nand_boot yes

・ 実行属性付加
# chmod 755 /usr/local/sbin/setMtdblock2Boot.sh

・ 実行
# setMtdblock2Boot.sh

・ 再起動
# reboot

うまくいった!