hns - 日記自動生成システム - Version 2.19.9

先月 2012年05月 来月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2012年05月03日(木) 旧暦 [n年日記] [更新:"2013/09/23 17:44:38"]

#1 [NetBSD] TS-TGL を KURO-BOX/T4 に変換

本来は JTAG 線と、書込用の Software (一例 urjtag) を用意して、 何が起きても対処可能な準備をしてから書くものかと思うけれど、 一応道具はなくても、簡易法があるので、今回はそれを試した。 ただし 失敗した場合、 煉瓦(れんが) になってしまって、JTAG 線でも無い限り、 取返しがつかなくなることを忘れないこと

大まかな流れ:

  1. KURO-BOX/T4 から flash を取出す
    • (起動時に s を押して U-boot に入って) run emboot して一度 Emergency Mode に入る (これは NetBSD が入っているから必要なので、設置する前なら Emergency Mode になっている) ちなみに NetBSD の設置時に使う INSTALL kernel というのがあって Memory Disk で動く けれど、それと Emergency Mode は良く似ている
    • T4 側から flash の内容を取出す (kernel, U-Boot, U-Boot param)
    • U-Boot と U-Boot param は一つの file に結合して使う
  2. TS-TGL の flash を更新して root になれるようにする
  3. (TS-TGL で root になって) 1. で取出した内容 を TS-TGL の flash に書く
    • Backup を取っておく
    • 書込む
    • 再起動
    (読出して同じか確認してから再起動)
  4. 手元には TeraStation TS-TGL しかないのですが
大変参考になったのは、次の画面: (以下参考画面と呼ぶ) LinkStation/TeraStation/玄箱/PPC/TS-TGL ( TS-TGL を KURO-BOX/T4 化)

まずは、 きのうの話 の続きから。 USB メモリに書こうと思って /dev/sda1 に書いたのは boot 用の ext2fs だった。

Welcome to KURO-NAS/T4

KURO-NAS-T4 login: root
# df
Filesystem                Size      Used Available Use% Mounted on
tmpfs                    61.9M     44.0K     61.9M   0% /tmp
# mount /dev/sda1 /mnt
# df
Filesystem                Size      Used Available Use% Mounted on
tmpfs                    61.9M     44.0K     61.9M   0% /tmp
/dev/sda1               242.1M      2.7M    226.9M   1% /mnt
# umount /mnt

1. flash Memory の読出 (KURO-BOX/T4 側):

きのうの続きで、 (NetBSD が既に入っている場合には、run emboot として、EM mode を起動し、 login して) まずは ext2fs に書出す。EM mode では、 admin/password で入って su しても良いし、いきなり root で入っても良い。
# mount /dev/sda1 /mnt
# ls /mnt 
altboot.bin    altboot.bin.1  mtd1.bin
altboot.bin.0  lost+found     mtd2.bin
# cd /mnt    
# dd if=/dev/mtd0 of=mtd0.bin bs=1k
3072+0 records in
3072+0 records out
# dd if=/dev/mtd1 of=mtd1.bin bs=1k
384+0 records in
384+0 records out
# dd if=/dev/mtd2 of=mtd2.bin bs=1k
64+0 records in
64+0 records out
# dd if=/dev/mtd3 of=mtd3.bin bs=1k
576+0 records in
576+0 records out
NetBSD 側で ext2fs から USB メモリに書く
tera7# mount -t ext2fs /dev/wd0f /mnt
tera7# ls -l /mnt
total 4357
-rwxr-xr-x  1 root  wheel    76628 Apr 24 00:15 altboot.bin
-rw-r--r--  1 root  wheel    75992 Apr  9 14:31 altboot.bin.0
-rwxr-xr-x  1 root  wheel    76628 Apr 24 00:15 altboot.bin.1
drwx------  2 root  wheel    12288 Apr  9 14:32 lost+found
-rw-r--r--  1 root  wheel  3145728 May  3 08:25 mtd0.bin
-rw-r--r--  1 root  wheel   393216 May  3 08:25 mtd1.bin
-rw-r--r--  1 root  wheel    65536 May  3 08:25 mtd2.bin
-rw-r--r--  1 root  wheel   589824 May  3 08:25 mtd3.bin
このうちの mtd1.bin は、U-Boot param となっているが、U-Boot を起動した時に printenv で見えるもの、( dmesg として示した最初の方の 29行くらいとか) あるいは saveenv で保存するもので、文字形式 である。(改行位置には 00 が、また最後は 00 で埋められている)。 最初に 4 バイトのおまじないが入っている。一例 17 30 8e d5。 最悪、空(から)でも何とかなるのでは、とも思う。 17 30 8e が長さで、d5 はそれらの check sum かも知れない。 (だとすると長さは大きすぎる)

2. TS-TGL の flash を更新して root になれるようにする:

(作業は TS-TGL と同じネットワークにつながっている Windows 機で行なう)
Buffalo Telnet Enabled Firmware にある terapro_112e.zip をもらって来て開ける
modena@makoto 23:36:11/120503(~/tmp)% unzip -l terapro_112e.zip
Archive:  terapro_112e.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
    42144  07-06-06 11:33   bootcode.bin
  3140637  08-24-10 13:06   firmimg.bin
 32588125  08-24-10 13:05   image.dat
      126  09-25-09 20:01   linkstation_version.txt
   316984  04-06-07 05:00   NASUpdater.exe
      244  09-25-09 20:00   nasupdater.ini
     1291  09-27-09 12:56   README.TXT
   237568  06-15-07 16:54   NASUpdater_English.exe
   316984  04-06-07 05:00   NASUpdater_Japanese.exe
 --------                   -------
 36644103                   9 files
その中の NASUpdater.exe を Windows 側で起動する。 (似たものがいくつかあるが、多分言語の表示が違うだけの気がする) admin password と聞かれる場面があるが、その文字の通り入力する。 何度か勝手に再起動するが、放っておいて良い。

正常に動作し始めたら、卓からか、telnet からかで login して次の段階に備える。 login name を myroot とするとパスワード無で login 出来る。

3. TS-TGL 側で書込む:

以下は、 参考画面 の通りである。 U-Boot + U-Boot params -> u-boot.bin とする
root@TS-TGL1C4:# mount -t vfat /dev/sde1 /mnt 
root@TS-TGL1C4:# cd /mnt/t4
cp  mtd1.bin    u-boot.bin
cat mtd2.bin >> u-boot.bin
いよいよ書込
root@TS-TGL1C4:/mnt/t4# ls /dev/mtdblock* 
/dev/mtdblock0  /dev/mtdblock1  /dev/mtdblock2  /dev/mtdblock3  /dev/mtdblock4
root@TS-TGL1C4:/mnt/t4# ls -l /dev/mtdblock*
brwxr-xr-x    1 root     root      31,   0 Feb 13  2004 /dev/mtdblock0
brwxr-xr-x    1 root     root      31,   1 Feb 13  2004 /dev/mtdblock1
brwxr-xr-x    1 root     root      31,   2 Feb 13  2004 /dev/mtdblock2
brwxr-xr-x    1 root     root      31,   3 Nov 22  2004 /dev/mtdblock3
brwxr-xr-x    1 root     root      31,   4 Nov 22  2004 /dev/mtdblock4
root@TS-TGL1C4:/mnt/t4# ls -la
total 4576
drwxr-xr-x    2 root     root        16384 May  3  2012 .
drwxr-xr-x    5 root     root        16384 Jan  1  1970 ..
-rwxr-xr-x    1 root     root      3145728 May  3  2012 mtd0.bin
-rwxr-xr-x    1 root     root       393216 May  3  2012 mtd1.bin
-rwxr-xr-x    1 root     root        65536 May  3  2012 mtd2.bin
-rwxr-xr-x    1 root     root       589824 May  3  2012 mtd3.bin
-rwxr-xr-x    1 root     root       458752 May  3  2012 u-boot.bin
root@TS-TGL1C4:/mnt/t4# dd if=mtd0.bin of=/dev/mtdblock0
6144+0 records in
6144+0 records out
    (ここで時間がかかる。しばらく待つ。約 1分 30秒)
root@TS-TGL1C4:/mnt/t4# dd if=u-boot.bin of=/dev/mtdblock1
896+0 records in
896+0 records out
   (こちらは 10 秒くらい)
root@TS-TGL1C4:/mnt/t4# dd if=/dev/mtd0 of=mtd0-mod.bin bs=1k
3072+0 records in
3072+0 records out
root@TS-TGL1C4:/mnt/t4# dd if=/dev/mtd1 of=mtd1-mod.bin bs=1k
448+0 records in
448+0 records out
root@TS-TGL1C4:/mnt/t4#
cmp がある機械に移動して、 書いたもの読んだもの が同じか確認
modena@makoto 15:32:51/120515(/mnt/T4)% ls -l mtd0.bin mtd0-mod.bin
-rwxr-xr-x  1 root  wheel  3145728 Nov 30  2005 mtd0-mod.bin
-rwxr-xr-x  1 root  wheel  3145728 May  3 08:25 mtd0.bin
modena@makoto 15:35:29/120515(/mnt/T4)% cmp mtd0.bin mtd0-mod.bin
modena@makoto 15:35:33/120515(/mnt/T4)% ls -l u-boot.bin mtd1-mod.bin
-rwxr-xr-x  1 root  wheel  458752 Nov 30  2005 mtd1-mod.bin
-rwxr-xr-x  1 root  wheel  458752 May  3 12:00 u-boot.bin
modena@makoto 15:35:38/120515(/mnt/T4)% cmp u-boot.bin mtd1-mod.bin
modena@makoto 15:35:41/120515(/mnt/T4)% 
(時計が狂っているのは御勘弁)
同じでない時には再起動してはいけない。
同じであれば、再起動する ( TS-TGL で reboot)

4. 手元には TeraStation TS-TGL しかないのですが:

以上は作業報告。ここからは計画の話。 KURO-BOX/T4 は手元になく TS-TGL しかない時にはどうするか、 という話。

少なくとも U-Boot は、 04/28 (の玄人志向 KURO-BOX/T4 の項目) に書いたように u-boot-kuro-nas-t4.bin として入手は可能 (玄人志向さんが「使って良い」というかは一応別の話)。

kernel はなくても EM mode で起動しないだけで、 NetBSD の動作には問題がないと思っている。 kernel 等は多分 *.itb に入っていると思う。 この項は、後で自分で試して見るつもり。
U-Boot/FIT が参考になるかと思う。




最近の日記
2024年05月08日
comparison on ./buildsh tools
2024年05月06日
py-setuptools (python 3.11.9)
make release took 1 hours and 10 min
qemu invocation for 10.99.10
2024年05月05日
Windows 10 version
serial connection
bc bench
2024年05月04日
Trial on 10.99.10
another version (later trial) to succeed
2024年04月29日
dkim
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)