※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

NANDブート環境に戻す方法(シリアルコンソール無し)


KUROBOX-PRO:^# fw_printenv
baudrate=115200
loads_echo=0
ipaddr=192.168.11.150
serverip=192.168.11.1
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=XX:XX:XX:XX:XX:XX
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaFlashBuf=yes
enaCpuStream=no
ethprime=egiga0
buffalo_ver=BOOTVER=1.091
build_time=18:10:02
initrd=initrd.buffalo
kernel=uImage.buffalo
nand_uImage_offset=20000
default_initrd_addr=0x02000000
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)
bootdelay=3
disaMvPnp=no
overEthAddr=no
usb0Mode=host
usb1Mode=host
default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/mtdblock2 rw panic=5
bootargs=$(bootargs_base) $(bootargs_root) $(buffalo_ver)
nand_boot=yes
bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); ext2load ide 0:1 $(default_initrd_addr) /$(initrd); setenv bootargs $(bootargs_base); bootm $(default_kernel_addr) $(default_initrd_addr)
いつもは以下のようにシリアルコンソールで入力している。
setenv bootargs_root root=/dev/mtdblock2 rw panic=5
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)' 
setenv nand_boot yes
boot
差分を確認してみると、違うのはbootcmdだけのようなので、fw_setenvを使って書き換えてみる。
KUROBOX-PRO:^# fw_setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)'
KUROBOX-PRO:^# fw_printenv
baudrate=115200
loads_echo=0
ipaddr=192.168.11.150
serverip=192.168.11.1
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=XX:XX:XX:XX:XX:XX
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaFlashBuf=yes
enaCpuStream=no
ethprime=egiga0
buffalo_ver=BOOTVER=1.091
build_time=18:10:02
initrd=initrd.buffalo
kernel=uImage.buffalo
nand_uImage_offset=20000
default_initrd_addr=0x02000000
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)
bootdelay=3
disaMvPnp=no
overEthAddr=no
usb0Mode=host
usb1Mode=host
default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/mtdblock2 rw panic=5
bootargs=$(bootargs_base) $(bootargs_root) $(buffalo_ver)
nand_boot=yes
bootcmd=nboot $(default_kernel_addr) 0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)
設定を確認したら再起動する。
KUROBOX-PRO:~# reboot
※玄箱PROのNANDブート環境はTelnetなので、SSHで接続していた場合には、再起動完了を見計らってTelnet接続する必要がある。

再びHDDブートに戻す場合は同様に以下のコマンドで書き換える。
KUROBOX-PRO:^# fw_setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); ext2load ide 0:1 $(default_initrd_addr) /$(initrd); setenv bootargs $(bootargs_base); bootm $(default_kernel_addr) $(default_initrd_addr)'
(参考)etchの時はbootcmdが少し違っていた。
KUROBOX-PRO:^# fw_setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'

uBoot環境設定まとめ

FlashMemoryからブートするには
Marvell>> setenv bootargs_root 'root=/dev/mtdblock2 rw panic=5'
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset);bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot yes
Marvell>> boot
内蔵 S-ATA HDD からブートするには
Marvell>> setenv bootargs_root 'root=/dev/sda2 rw panic=5'
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot no
Marvell>> boot
サブボードの S-ATA コネクタに接続した HDD からブートするには
Marvell>> setenv bootargs_root 'root=/dev/sda2 rw panic=5'
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'ide reset; ext2load ide 1:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot no
Marvell>> boot
tftpboot するには
Marvell>> setenv ipaddr 192.168.1.40
Marvell>> setenv serverip 192.168.1.30
Marvell>> setenv bootargs_root 'root=/dev/sda2 rw panic=5'
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'tftp $(default_kernel_addr) $(kernel); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot no
Marvell>> boot