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年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)