Last Update: "2009/06/14 14:48:47 makoto"
HD-LAN
HD-LAN V1/V2 は PowerPC を使用していますが、
初期設定では insmod が不可
のため、簡単には NetBSD を起動させてくれません。
しかし
山下さん
は、
ローダを入替え
て、
別のカーネルを使えるようにした上で、
カーネルを入替えて、insmod を可能にしているようです。
- Re: 試して見ましたが tset.core が ..
-
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200508/msg00008.html
- ハックの記録(山下さん)
-
http://www.yamasita.jp/linkstation/hacknokiroku.html
- ローダの改造(玄箱、山下さん、07/11/2004)
-
http://www.yamasita.jp/linkstation/0407/040711.html
- HD-LAN V1 のローダ入れ替え (山下さん、08/12/2004)
-
http://www.yamasita.jp/linkstation/0408/040812.html
- loader (うめのさん)
-
http://f30.aaa.livedoor.jp/~umino/pukiwiki.php?Linkstation%2Floader
動作中のカーネルをメモリ上で書き換えて、フラッシュを書き換えることなく任意のカーネルで起動
(insmod を使うので、HDLAN 生では無理 ?)
- linkstation bootcode.bin
-
http://nagou.cocolog-nifty.com/haley/2006/04/linkstation_boo.html
- Genbako kernel collection
-
http://genbako.blogsite.org/
- LinkStation HGLAN を Debian 化する
-
2004年08月01日(日)
- ファームウェア アップデータ Ver.1.31 の解析
-
http://www.yamasita.jp/linkstation/0312/031230.html
以下では HD-LAN を入手してから玄箱に変身させるまでを書いています。
入手
(2006/10/17)
disk も容箱もない
HD-HLAN の
基板と電源を入手。直列通信口を付ける。57.6kbps で通信する。
NetBSD の名札が付いている disk をつないで mfdisk /dev/hda 等とすると、Segmentation Fault する。
他の機械で dd if=/dev/zero of=/dev/rwd0a count=8 のようにして最初の方を消してからつなぐと、
mfdisk は実行出来た。
それで、ちょっと勘違いしていて CD-ROM から設定出来るような気がしていたが、どうも
そうではなくて、CD-ROM には何がしかの道具が入っているだけのようだ。
CD-ROM に入っているソフトウェアを使うと、「LinkStation が見つかりません」となってしまう。
それで、
http://buffalo.jp/download/driver/hd/hd-lan-ver2.html
あたりからファーム・ウェア更新を使ったら、正しく動くものが出来た。
disk の利用がない時には回転が止るようになっている ... ある意味信じられない ..
再び未設定の disk をつないで起動
******* Product Information *******
----------------------------------
Product Name: HD-LAN(IEYASU)
VER: 2.13
Date: 2004/5/18 21:22:19
----------------------------------
Firmware check:done.
...
BUFFALO INC. LinkStation series HD-LAN(IEYASU)
HD-LAN-EM login: root
#
LinkStation HD-LAN V2 の EM mode は
- telnet では入れない
- ramdisk を mount していない
# df -k
Filesystem 1k-blocks Used Available Use% Mounted on
- その他
# uname -a
Linux HD-LAN-EM 2.4.17_mvl21-sandpoint #866 2004 5 18 21:22:06 JST ppc unknown
# ls -l /dev/fl?
brw-rw-r-- 1 root root 250, 0 Nov 28 2002 /dev/fl0
brw-rw-r-- 1 root root 250, 1 Nov 28 2002 /dev/fl1
brw-rw-r-- 1 root root 250, 2 Nov 28 2002 /dev/fl2
brw-rw-r-- 1 root root 250, 3 Nov 28 2002 /dev/fl3
brw-rw-r-- 1 root root 250, 4 Nov 28 2002 /dev/fl4
brw-rw-r-- 1 root root 250, 5 Nov 28 2002 /dev/fl5
#
flash
firmware update をして、cat /dev/fl0 > /tmp/fl0 のようにして採集したもの
-rwxr--r-- 1 makoto wheel 524288 Nov 4 2005 fl0*
-rwxr--r-- 1 makoto wheel 3145728 Nov 4 2005 fl1*
-rwxr--r-- 1 makoto wheel 524288 Nov 4 2005 fl2*
-rwxr--r-- 1 makoto wheel 4194304 Nov 4 2005 fl3*
玄箱の flashと比べると
4MBytes の Flash は次のように推測される
address
+------+------+-- ffc0 0000
| | |
| | |
| fl1 | | kernel (3M)
| | |
| | fl3 |
+------+ +-- fff0 0000
| fl2 | | boot code (0.5M)
+------+ +-- fff8 0000
| fl0 | | conf-save (0.5M)
+------+------+--
ttyp1:makoto@mini 19:12:50/061104(~/tmp)> hexdump -C fl1 | head -5
00000000 00 00 00 01 00 00 00 02 48 44 2d 4c 41 4e 28 49 |........HD-LAN(I|
00000010 45 59 41 53 55 29 00 00 00 00 00 00 00 00 00 00 |EYASU)..........|
00000020 00 00 00 00 00 00 00 00 46 4c 41 53 48 20 31 2e |........FLASH 1.|
00000030 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |1...............|
00000040 00 00 00 00 00 00 00 00 00 02 00 0d 00 00 68 05 |..............h.|
ttyp1:makoto@mini 19:12:54/061104(~/tmp)> hexdump -C fl2 | head -5
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000100 48 00 08 fd 00 00 00 00 00 00 00 00 00 00 00 00 |H...............|
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
ttyp1:makoto@mini 19:12:50/061104(~/tmp)> hexdump -C fl0 | head -5
00000000 4d 45 4c 43 4f 20 61 73 5f 66 6c 61 73 68 20 66 |MELCO as_flash f|
00000010 6f 72 6d 61 74 00 00 00 00 00 00 00 00 00 01 00 |ormat...........|
00000020 00 00 00 2c 00 00 1f e2 00 00 00 00 2f 74 6d 70 |...,......../tmp|
00000030 2f 63 6f 6e 66 5f 73 61 76 65 2e 74 61 72 2e 67 |/conf_save.tar.g|
00000040 7a 00 00 00 00 00 00 00 00 00 00 00 1f 8b 08 08 |z...............|
ttyp1:makoto@mini 19:12:58/061104(~/tmp)> hexdump -C fl3 | head -5
00000000 00 00 00 01 00 00 00 02 48 44 2d 4c 41 4e 28 49 |........HD-LAN(I|
00000010 45 59 41 53 55 29 00 00 00 00 00 00 00 00 00 00 |EYASU)..........|
00000020 00 00 00 00 00 00 00 00 46 4c 41 53 48 20 31 2e |........FLASH 1.|
00000030 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |1...............|
00000040 00 00 00 00 00 00 00 00 00 02 00 0d 00 00 68 05 |..............h.|
ttyp1:makoto@mini 19:13:03/061104(~/tmp)>
firmimgtool
を使わせていただくと:
ttypc:makoto@mini 19:17:05/061104(~/c/kuro-box)> ./firmimgtool ~/tmp/fl1
---- firmimg_file information ----
filename : /home/makoto/tmp/fl1
checksum : FFFFA6AE
---- firmware information ----
info_ver : 00000001
firmid : 00000002
firmname : HD-LAN(IEYASU)
subver : FLASH 1.1
version : 2.13, build 0000
date : 2004/05/18 21:22:19
firmsize : 002E96BB
checksum : D83A6A1A
kernel : offset 0000006C, size 000B8EDE
initrd : offset 000B8F4A, size 00230771
ttypc:makoto@mini 19:17:33/061104(~/c/kuro-box)>
/dev/fl1 のヘッダ部
と見較べると、良く分る。
取出
(bc の ibase = 16 を使って 16 進変換を行なっておいてから)
dd を二進形式の編集系(binary editor) だと思って使って、開始バイト数と取出数を指定して
実行します。
ttypc:makoto@mini 0:26:14/061105(~/c/kuro-box)> dd if=fl1 of=kernel bs=1 skip=108 count=757470
757470+0 records in
757470+0 records out
757470 bytes transferred in 3.964 secs (191087 bytes/sec)
ttypc:makoto@mini 0:27:34/061105(~/c/kuro-box)> dd if=fl1 of=initrd bs=1 skip=757578 count=2295665
2295665+0 records in
2295665+0 records out
2295665 bytes transferred in 11.942 secs (192234 bytes/sec)
ttypc:makoto@mini 0:28:26/061105(~/c/kuro-box)> ls -lt initrd kernel fl?
total 50848
-rw-r--r-- 1 makoto operator 2295665 Nov 5 00:29 initrd
-rw-r--r-- 1 makoto operator 757470 Nov 5 00:28 kernel
-rwxr--r-- 1 makoto wheel 4194304 Nov 4 2005 fl3*
-rwxr--r-- 1 makoto wheel 524288 Nov 4 2005 fl2*
-rwxr--r-- 1 makoto wheel 3145728 Nov 4 2005 fl1*
-rwxr--r-- 1 makoto wheel 524288 Nov 4 2005 fl0*
ttypc:makoto@mini 0:28:30/061105(~/c/kuro-box)> file initrd kernel
initrd: gzip compressed data, was "loopfile", from Unix, max compression
kernel: gzip compressed data, was "vmlinux", from Unix, max compression
ttypc:makoto@mini 0:28:34/061105(~/c/kuro-box)>
(実はそのようなことをしなくても firmimgtool -c を使えば簡単です)
HD-LAN vs HD-HLAN
| HD-LAN | HD-HLAN (Kuro-Box) |
EM 時の / | (見えない) | ramdisk |
EM/ 通常の切替 | | OK/NG -> /dev/fl3 |
外から telnet | × | ○ |
insmod | × | ○ |
uname -r | 2.4.17_mvl21-sandpoint | |
HD-LAN V2 と玄箱
上の表の左側に挙げてある
HD-LAN という機種は、本当に初期の型で、US では販売されていない。
ただし次に書くように玄箱と金物は殆んど同じため、
玄箱 1.02 の firmimg.bin を入れたら、玄箱に変身してしまい、
そうなれば、通常通り NetBSD を動かすことが出来る。
玄箱に変身
山下さんの書かれている通りにしたら、どうも玄箱になった気がする
(cmp はなかった気がしたので実行していない)。
その後、実は中途半端に NetBSD や selector が入っている disk だったので、
一度切離して EM mode にして見る。
... これはどうもうまく行かない ...
- boot selector の入力が認識されない
- NetBSD in production になるが、実は / には何も入っていない
あきらめて、別の disk をつないだら、こちらは 以前に (改造方式で) evbppc を入れていた
ものなので、そのまま動いてしまった。
|