kuro-box
  玄箱/Linkstation
    families
  HD-LAN
    入手
      flash
      取出
      HD-LAN vs HD-HLAN
    玄箱に変身
  HD-HGLAN
hardware
  Diag LED の点滅回数
  serial console
    9-KE connection
    clock speed
    shell
    mfdisk
      # mfdisk -h
      # mfdisk -c /dev/hda
      # mfdisk -p /dev/hda
      # mfdisk -e /dev/hda
      # mfdisk -p /dev/hda
      # mfdisk -c /dev/hda
  JTAG connection
    parallel port
    USB
  flash ROM
    firmbin.img
  firmimgtool
  しくみ
    玄箱
    LinkStation
      HD-HGLAN
    TeraStation
      TS-TGL
    Alert mode
    Info
  後のボタンを押しながら
  部品
    直列通信口
    電源
    ファン
NetBSD
  URL(1)
  改造の有無
  URL(2)
  getting stuff
  入手したら
    材料の説明
      binary 形式
    区画 (fdisk)
    Linux の設置
    20061027
    EM mode
      mfdisk
      ftp
    loader/install kernel
      /boot
      tools
      kernel
      nbloader
      boot selector2
      url
      ftp-get
    sysinst 起動
    sysinst (一部)
    multi-user
    自動起動
    rc2.d
    自動起動の解除
    message
  kuro_avrd
  bootsel2
    何をするもの
    起動の操作は
    設置
      Root Login
      操作
    設定
  無改造
    全体の流れ
    OS 設置後は
    /boot を用意する
    kuro_boot.conf
    sysinst by telnet
    chroot
    single user
      sshd
      telnet
      root
    20061027
      ftp
      nbloader/kernel
      boot selector
      kuro_boot.conf
      single user
      multi-user
      kuro_boot.conf
  packages
    pkg_info
  server
    samba
    netatalk
    NFS
    cvsync
    sendmail
  panic した時
  build.sh
    20070921
    20061019
    思いつくまま
SandPoint
  手順
  手順(別法)
files
  Buffalo
    kuro_102
    TS-TGL
problems
  20070917
  20061012
  sysinst 終了
  screen
  NFS 書込異常
  質問等
  ちょっとうっかり
    single user
boot code
  compile
    cross
      NetBSD
      powerpc-gnu-linux
  たつや版
    self
  U-Boot
  ts-tgl
玄箱/pro
    20081107
    20080624
    build
    boot
    dmesg
    日記から

hardware | TeraStation | software

Kuro-Box

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 にして見る。 ... これはどうもうまく行かない ...

  1. boot selector の入力が認識されない
  2. NetBSD in production になるが、実は / には何も入っていない
あきらめて、別の disk をつないだら、こちらは 以前に (改造方式で) evbppc を入れていた ものなので、そのまま動いてしまった。
Last Update: Sat, 07 Jun 2014 22:16:17 GMT 1.66 2008/03/08