起動しなくなった

LS-HGL

LS-HGL が起動しなくなった。
POWER LED が点滅しっぱなし。

シリアルコンソールをつなぐ

仕方が無いので、シリアルコンソールをつないで中の様子を見る。

コンセントを刺す

Orion1   CPU =  Low

Checking DATA BUS
Checking ADDRESS BUS

> Checking hardware info ...
=== Strap status : 0x00800030 ===
=== H/W boardId  :       0x23 ===
=== boardId      :       0x1b ===
=== micon_support:        off ===
> OK.
=== BUFFALO LS-HGL U-Boot. ===
 ** LOADER **
 ** BUFFALO BOARD: BUFFALO_BOARD_LS_HGL LE (CFG_ENV_ADDR=fffff000)


U-Boot 1.1.1 (May 27 2008 - 19:18:26) Marvell version: 1.12.1 - TINY
Buffalo Version: 1.17-1.00

DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done

Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 400Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz


USB 0: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Using 88E1118 phy
buffalo_change_power_status > Read 0x3a
buffalo_IsStopAtUbootStatus > MagicKey=0x3a
buffalo_change_power_status > Read 0x3a
buffalo_change_power_status > Read 0x3a
buffalo_change_power_status > Writing 0x5c

Please Press HDD power button to continue ...
特に問題ないように見える。

電源 SW を ON にする

buffalo_change_power_status > Read 0x5c
buffalo_change_power_status > Writing 0x3a

Marvell Serial ATA Adapter
Integrated Sata device found
  Device 0: OK
Model: SAMSUNG HD250HJ                          Firm: FH100-05 Ser#: S17TJDWQ100470
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)

Using device ide0, partition 1

Loading from block device ide device 0, partition 1: Name: hda1
  Type: U-Boot  File:/uImage.buffalo

1715900 bytes read
   Image Name:   Linux-2.6.16.16-arm1
   Created:      2008-12-27   4:21:16 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1715836 Bytes =  1.6 MB
   Load Address: 00008000
   Entry Point:  00008000
Using device ide0, partition 1

Loading from block device ide device 0, partition 1: Name: hda1
  Type: U-Boot  File:/initrd.buffalo

5969136 bytes read
   Image Name:   initrd
   Created:      2008-12-27   4:23:28 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5969072 Bytes =  5.7 MB
   Load Address: 00000000
   Entry Point:  00000000
Using device ide1, partition 1
** Bad partition 1 **
serch_boot_drv (185)>No kernel_file 1
Using device ide1, partition 1
** Bad partition 1 **
serch_boot_drv (240)>No init_file 1
Booting from Device 0
hit any key to switch tftp boot.
Hit any key to stop autoboot:  0
Hit any key to stop autoboot:  0
egiga0 no link
Using egiga0 device
TFTP from server 192.168.11.1; our IP address is 192.168.11.150
Filename 'uImage.buffalo'.
Load address: 0x100000
Loading: T T
なんで、tftpboot しようとしているの?

tftpboot の原因

HDD がつぶれた?
ちゃんと SAMSUNG HD250HJ と認識している。

パーティションがつぶれた?ブートファイルが壊れた?
ちゃんと
Loading from block device ide device 0, partition 1: Name: hda1
のところで、ブートファイルを読めている。

Bad partition ?
これは、2台目の HDD のもので、LS-HGL ではエラーになっても問題ない。

tftp boot してみる

このあいだのように、tftp boot して、 ファームを再インストールしかない。

tftp boot

tftp サーバの LS-GL で LS-HGL 用の uImage.buffalo と initrd.buffalo と を準備して、tftp boot する。

EM で起動すると思っていたら、、、

BUFFALO INC. LinkStation series LS-HGL(SUININ)
LS-HGL487 login:
普通に起動してきた。

/boot の確認


BUFFALO INC. LinkStation series LS-HGL(SUININ)
LS-HGL487 login: admin
Password:
sh: /etc/profile: Permission denied
sh-2.05b$ ls /boot
conf_save.tgz       lost+found          u-boot.buffalo.org
initrd.buffalo      u-boot.buffalo      uImage.buffalo
sh-2.05b$ ls -l /boot
-rw-r--r--    1 root     root        24666 Nov  1 00:19 conf_save.tgz
-rw-r--r--    1 root     root      5969136 Dec 27  2008 initrd.buffalo
drwxr-xr-x    2 root     root         4096 Nov  1 00:14 lost+found
-rw-r--r--    1 root     root       245776 Nov  1 00:04 u-boot.buffalo
-rw-r--r--    1 root     root       245776 Feb 27  2008 u-boot.buffalo.org
-rw-r--r--    1 root     root      1715900 Dec 30  2008 uImage.buffalo
sh-2.05b$
特に問題ないように見える。

ファームウェアをアップデートしてみる

Ramroot で起動

ファームウェアアップデータを実行

再起動

一緒。
ファームウェアをアップデートしても、tftp boot してしまう。

U-Boot ?

U-Boot の環境変数?

U-Boot のコマンドモードにはいる

buffalo_change_power_status > Read 0x5c
buffalo_change_power_status > Writing 0x3a

Marvell Serial ATA Adapter
Integrated Sata device found
  Device 0: OK
Model: SAMSUNG HD250HJ                          Firm: FH100-05 Ser#: S17TJDWQ100470
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)

Using device ide0, partition 1

Loading from block device ide device 0, partition 1: Name: hda1
  Type: U-Boot  File:/uImage.buffalo

1715900 bytes read
   Image Name:   Linux-2.6.16.16-arm1
   Created:      2008-12-27   4:21:16 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1715836 Bytes =  1.6 MB
   Load Address: 00008000
   Entry Point:  00008000
Using device ide0, partition 1

Loading from block device ide device 0, partition 1: Name: hda1
  Type: U-Boot  File:/initrd.buffalo

5969136 bytes read
   Image Name:   initrd
   Created:      2008-12-27   4:23:28 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5969072 Bytes =  5.7 MB
   Load Address: 00000000
   Entry Point:  00000000
Using device ide1, partition 1
** Bad partition 1 **
serch_boot_drv (185)>No kernel_file 1
Using device ide1, partition 1
** Bad partition 1 **
serch_boot_drv (240)>No init_file 1
Booting from Device 0
hit any key to switch tftp boot.
Hit any key to stop autoboot:  0
Hit any key to stop autoboot:  0
Marvell>>

環境変数を見る

Marvell>> printenv
bootargs=$(bootargs_base) $(bootargs_root)
baudrate=115200
loads_echo=0
serverip=192.168.11.1
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=00:1D:73:3F:04:87
buffalo_ver=BOOTVER=1.17
buffalo_minor_ver=BOOT_MINOR_VER=1.00
build_time=19:18:23
initrd=initrd.buffalo
kernel=uImage.buffalo
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/sda2 rw initrd=0x00800040,15M panic=5
def_tftp=tftp 0x00100000 $(kernel); tftp 0x00800000 $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes; bootm 0x00100000 0x00800000
ipaddr=192.168.11.150
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_func=func=0
filesize=5B14F0
bootcmd=tftp 0x00100000 $(kernel); tftp 0x00800000 $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes; bootm 0x00100000 0x00800000

Environment size: 1016/4092 bytes
Marvell>>
なんで、bootcmd が tftp ・・・になっている?

買ったときには、

bootcmd=ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000
だった。
比べると BOOTVER あたりも変ってるな。

環境変数を元に戻す

Marvell>> setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000'
** Too many args (max. 16) **
Marvell>>
あれ?どーやったらできる?
シングルクォートで駄目なら、ダブルクォートでやってみる
Marvell>> setenv bootcmd "ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000"
Using device ide0, partition 1

Loading from block device ide device 0, partition 1: Name: hda1
  Type: U-Boot  File:/uImage.buffalo

1715900 bytes read
Using device ide1, partition 1
** Bad partition 1 **
## Booting image at 00100000 ...
   Image Name:   Linux-2.6.16.16-arm1
   Created:      2008-12-27   4:21:16 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1715836 Bytes =  1.6 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00800000 ...
   Image Name:   initrd
   Created:      2008-12-27   4:23:28 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5969072 Bytes =  5.7 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK

Starting kernel ...

arg:console=ttyS0,115200 root=/dev/sda2 rw initrd=0x00800040,15M panic=5 func=0 BOOTVER=1.17
CONFIG_BUFFALO_PLATFORM CONFIG_BUFFALO_LINKSTATION_LSHGL ---
Uncompressing Linux................................................................................................................ done, booting the kernel.
ブートを始めた。藁

標準ファームで書き換える

setenv が駄目なら nvram コマンドで。
root@LS-HGL487:~# nvram -c printenv
1: [bootargs=$(bootargs_base) $(bootargs_root)]
2: [baudrate=115200]
3: [loads_echo=0]
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:1D:73:3F:04:87]
12: [buffalo_ver=BOOTVER=1.17]
13: [buffalo_minor_ver=BOOT_MINOR_VER=1.00]
14: [build_time=19:18:23]
15: [initrd=initrd.buffalo]
16: [kernel=uImage.buffalo]
17: [bootargs_base=console=ttyS0,115200]
18: [bootargs_root=root=/dev/sda2 rw initrd=0x00800040,15M panic=5]
19: [def_tftp=tftp 0x00100000 $(kernel); tftp 0x00800000 $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes; bootm 0x00100000 0x00800000]
20: [filesize=5ACAE3]
21: [stdin=serial]
22: [stdout=serial]
23: [stderr=serial]
24: [enaMonExt=no]
25: [enaFlashBuf=yes]
26: [enaCpuStream=no]
27: [ethprime=egiga0]
28: [bootdelay=3]
29: [disaMvPnp=no]
30: [overEthAddr=no]
31: [usb0Mode=host]
32: [usb1Mode=host]
33: [bootargs_func=func=0]
34: [force_tftp=1]
35: [bootcmd=tftp 0x00100000 $(kernel); tftp 0x00800000 $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes; bootm 0x00100000 0x00800000]
36: [ipaddr=192.168.11.150]
root@LS-HGL487:~# nvram -c set bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000'
>nvram_set:bootcmd = ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000
root@LS-HGL487:~# nvram -c printenv
1: [bootargs=$(bootargs_base) $(bootargs_root)]
2: [baudrate=115200]
3: [loads_echo=0]
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:1D:73:3F:04:87]
12: [buffalo_ver=BOOTVER=1.17]
13: [buffalo_minor_ver=BOOT_MINOR_VER=1.00]
14: [build_time=19:18:23]
15: [initrd=initrd.buffalo]
16: [kernel=uImage.buffalo]
17: [bootargs_base=console=ttyS0,115200]
18: [bootargs_root=root=/dev/sda2 rw initrd=0x00800040,15M panic=5]
19: [def_tftp=tftp 0x00100000 $(kernel); tftp 0x00800000 $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes; bootm 0x00100000 0x00800000]
20: [filesize=5ACAE3]
21: [stdin=serial]
22: [stdout=serial]
23: [stderr=serial]
24: [enaMonExt=no]
25: [enaFlashBuf=yes]
26: [enaCpuStream=no]
27: [ethprime=egiga0]
28: [bootdelay=3]
29: [disaMvPnp=no]
30: [overEthAddr=no]
31: [usb0Mode=host]
32: [usb1Mode=host]
33: [bootargs_func=func=0]
34: [force_tftp=1]
35: [ipaddr=192.168.11.150]
36: [bootcmd=ide reset; ext2load ide 0:1 0x00100000 /$(kernel); ext2load ide 1:1 0x00800000 /$(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) $(bootargs_func) $(bootargs_debug) $(buffalo_ver); bootm 0x00100000 0x00800000]
root@LS-HGL487:~# 

再起動

無事、HDD から起動するようになった。

しかし、いつ bootcmd が書き変った?
どう見ても、 まっさらにするだな。



LS-HGL
バッファローダイレクト
楽天市場
livedoor デパート
Sofmap
Yahoo!ショッピング
パソQ
ムラウチドットコム
ヤマダ電機WEB


miconapl って全機種にある?
ハックの記録
LinkStation/玄箱 をハックしよう

まっさらにして起動しなくなるか確認する

Copyright (C) 2003-2009 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市