(2012.08.15)START
MZK-W300NH2 オフィシャルな話を書いていこう。

仕様

Board: Ralink APSoC DRAM: 16 MB
Flash: 4 MBytes
CPU frequency 384.00 MHz
Ralink RT3052F、MX 29LV320DBTI-70G
ちなみに、MZK-WNHはRT3050F
 

openwrt/dd-wrt化しよう

(2012.08.17)
MZK-W300NH2のほうはRAMチップが2枚ある。
MZK-W300NH2のほうはRAMが16MBあるから、これはopenwrt化したいところか。
MZK-WNHのほうはRAMが半分の8MB(Zentel A3V64S40ETP -G6 TAIWAN 951ACF43が1枚)だから、これはdd-wrt化しようか。
OpenWrtを探す==>http://wiki.openwrt.org/toh/start
どうも、無いようだ。
アーキテクチャは ramips
CPU は RT3052
FLASH は 4MB
似たような機器としては
AllnetのALL0239-3G
AztechのHW550-3G
D-LinkのDIR-620
HuaweiのHG255D
PetatelのPSR-680W
SercomのSercommIP1006RRv2
などなどいっぱい。
中でも、Aztechが一番近い。(http://wiki.openwrt.org/toh/aztech/hw550-3g)
だけど、Aztech,HW550-3Gは、Flash:8MB, RAM:2MB 大丈夫か?
http://downloads.openwrt.org/snapshots/trunk/ramips/から、 それらしいのを持ってくる。
http://downloads.openwrt.org/snapshots/trunk/ramips/openwrt-ramips-rt288x-f5d8235v1-squashfs-sysupgrade.bin
http://downloads.openwrt.org/snapshots/trunk/ramips/openwrt-ramips-rt288x-root.squashfs
http://downloads.openwrt.org/snapshots/trunk/ramips/openwrt-ramips-rt288x-uImage.bin
http://downloads.openwrt.org/snapshots/trunk/ramips/openwrt-ramips-rt288x-vmlinux.bin
http://downloads.openwrt.org/snapshots/trunk/ramips/openwrt-ramips-rt288x-vmlinux.elf
-rw-r--r-- 1 kamii hdusers 3145732 Aug 16 18:15 openwrt-ramips-rt288x-f5d8235v1-squashfs-sysupgrade.bin
-rw-r--r-- 1 kamii hdusers 1703936 Aug 16 18:15 openwrt-ramips-rt288x-root.squashfs
-rw-r--r-- 1 kamii hdusers 1000989 Aug 16 18:15 openwrt-ramips-rt288x-uImage.bin
-rw-r--r-- 1 kamii hdusers 2880128 Aug 16 18:15 openwrt-ramips-rt288x-vmlinux.bin
-rw-r--r-- 1 kamii hdusers 2946628 Aug 16 18:15 openwrt-ramips-rt288x-vmlinux.elf

% hexdump openwrt-ramips-rt288x-f5d8235v1-squashfs-sysupgrade.bin | head -4
0000  27 05 19 56 DA 80 33 DB  50 2C BA 25 00 0F 45 F2  -'..V..3.P,.%..E.-
0010  88 00 00 00 88 00 00 00  91 07 C6 2A 05 05 02 03  -...........*....-
0020  4D 49 50 53 20 4F 70 65  6E 57 72 74 20 4C 69 6E  -MIPS OpenWrt Lin-
0030  75 78 2D 33 2E 33 2E 38  00 00 00 00 00 00 00 00  -ux-3.3.8........-



% hexdump openwrt-ramips-rt288x-root.squashfs | head -4
0000  68 73 71 73 70 02 00 00  23 BA 2C 50 00 00 04 00  -hsqsp...#.,P....-
0010  0B 00 00 00 04 00 12 00  C0 06 01 00 04 00 00 00  -................-
0020  85 11 6C 0E 00 00 00 00  CE C9 14 00 00 00 00 00  -..l.............-
0030  C6 C9 14 00 00 00 00 00  FF FF FF FF FF FF FF FF  -................-



% hexdump openwrt-ramips-rt288x-uImage.bin | head -4
0000  27 05 19 56 05 91 D3 93  50 2C BA 22 00 0F 45 DD  -'..V....P,."..E.-
0010  88 00 00 00 88 00 00 00  EA 46 7F F9 05 05 02 03  -.........F......-
0020  4D 49 50 53 20 4F 70 65  6E 57 72 74 20 4C 69 6E  -MIPS OpenWrt Lin-
0030  75 78 2D 33 2E 33 2E 38  00 00 00 00 00 00 00 00  -ux-3.3.8........-



% hexdump openwrt-ramips-rt288x-vmlinux.bin | head -4
0000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  -................-
0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  -................-
0020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  -................-
0030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  -................-

0400  F0 30 08 0A 00 00 00 00  43 4D 44 4C 49 4E 45 3A  -.0......CMDLINE:-




% hexdump openwrt-ramips-rt288x-vmlinux.elf | head -4
0000  7F 45 4C 46 01 01 01 00  00 00 00 00 00 00 00 00  -.ELF............-
0010  02 00 08 00 01 00 00 00  C0 C3 20 88 34 00 00 00  -.......... .4...-
0020  4C F3 2C 00 01 10 00 70  34 00 20 00 02 00 28 00  -L.,....p4. ...(.-
0030  13 00 12 00 01 00 00 00  00 00 01 00 00 00 00 88  -................-


OpenWrt化、実験してみた

(2012.08.17)
いきなりフラッシュに焼くと失敗したとき怖いので、
「 1: Load system code to SDRAM via TFTP. 」にしたいので、 シリアルコンソールで、「1」を連打して停止させる。
読ませるファイルはopenwrt-ramips-rt288x-f5d8235v1-squashfs-sysupgrade.bin

分解する

(2012.08.17)
ざっとながめてもネジらしきものがない。
どうやら、単純にツメで閉じられてるらしい。
二つに分かれそうな隙き間があったので、そこにマイナスドライバーを差し込んで、 割ってみる。
割れた。分解は単純だった。
外観は、MZK-WNHもMZK-W300NH2も同じなので、分解方法も同じ。
分解したときの写真
あ〜あ、ツメを2箇所、折ってしまった。

シリアルはある?

(2012.08.17)
どうやら、あった。

スピードは 57600bps

で、せっかく、分解したので、コネクターを接続。シリアルコンソールが使えることを確認。
続きはこちらに。

シリアルコンソール

(2012.08.17)
シリアルをつないで、ルーターの電源をオンした。
お〜、出てくる出てくる。
モニターしたものはこちら
Please choose the operation: 
   0: Load ucos code to SDRAM via TFTP Client. 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   9: Load Boot Loader code then write to Flash via TFTP. 
3: System Boot system code via Flash.
## Booting image at bfc50000 ...
Bad Magic Number,43535953 
   Image Name:   Linux Kernel Image
   Created:      2010-04-21   1:40:57 UTC

 System Control Status = 0x21040000 
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2940844 Bytes =  2.8 MB
   Load Address: 80000000
   Entry Point:  802b6000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 802b6000) ...
## Giving linux memsize in MB, 16

Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock4

Creating 7 MTD partitions on "Ralink SoC physically mapped flash":
0x00000000-0x00030000 : "Bootloader"
mtd: Giving out device 0 to Bootloader
0x00030000-0x00040000 : "Config " <<<注意:スペース文字が入ってる。
mtd: Giving out device 1 to Config 
0x00040000-0x00050000 : "Factory"
mtd: Giving out device 2 to Factory
0x00050000-0x00160000 : "Kernel"
mtd: Giving out device 3 to Kernel
0x00160000-0x003e0000 : "RootFS"
mtd: Giving out device 4 to RootFS
0x003e0000-0x00400000 : "Cimage"
mtd: Giving out device 5 to Cimage
0x00050000-0x003e0000 : "Uimage"
mtd: Giving out device 6 to Uimage
block2mtd: version $Revision: 1.1.1.1 $

Please press Enter to activate this console. starting pid 597, tty '': '-/bin/sh'
Algorithmics/MIPS FPU Emulator v1.5
あれ?なぜか、リターンキーを押してもプロンプトが出てこない。
通常なら、LOGINかあるいはシェルのプロンプトが出てくるはずなんだが。。。

フラッシュの構成 7分割 (サイズは4MB)
実際のメモリーアドレスは、0xBFC00000〜なので、0xBFC00000を足す。
たとえば、kernelがある場所は、0x00050000==>0xBFC50000である。
ブロックレンジ名称サイズ(10進)先頭部分(もっと詳細
mtdblock00x00000000-0x00030000Bootloader196608bfc00000: ff 00 00 10 00 00 00 00 fd 00 00 10 00 00 00 00
................
mtdblock10x00030000-0x00040000Config65536bfc30000: c8 a9 1c da 62 6f 6f 74 63 6d 64 3d 74 66 74 70
....bootcmd=tftp
mtdblock20x00040000-0x00050000Factory65536bfc40000: 52 30 00 01 00 22 cf 37 b0 3c ff ff ff ff ff ff
R0...".7.<......
mtdblock30x00050000-0x00160000Kernel1114112bfc50000: 43 53 59 53 00 00 10 01 00 00 05 00 52 4e 35 32
CSYS........RN52
mtdblock40x00160000-0x003e0000RootFS2621440bfd60000: 73 68 73 71 a2 02 00 00 00 b6 bf 79 bd 78 00 38
shsq.......y.x.8
mtdblock50x003e0000-0x00400000Cimage131072bffe0000: 48 53 30 31 fa 03 01 00 22 cf 37 b0 3c 00 22 cf
HS01....".7.<.".
mtdblock60x00050000-0x003e0000Uimage3735552

0x000000000x000300000x000400000x000500000x001600000x003e0000
Bootloader(0)Config(1)Factory(2)Kernel(3)RootFS(4)Cimage(5)
Uimage(6)

bootdelay=2
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
ipaddr=10.10.10.123
serverip=10.10.10.3
自分(ルーター)のIPアドレスを10.10.10.123だとし、tftpサーバーのIPアドレスを10.10.10.3と仮定している。
シリアルのスピードは、57600bps


シリアルコンソールを使ってカーネルを入れてみる

(2012.08.19)
いきなり、フラッシュに焼いて失敗すると、そのあとが大変だから、
Please choose the operation: 
   0: Load ucos code to SDRAM via TFTP Client. 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   9: Load Boot Loader code then write to Flash via TFTP. 
この中の「1」を使って、RAM上に展開して試す。
もしも成功したら、「2」で焼こうという魂胆だ。
「1」を選択すると、質問事項は3つ。最初の二つは、単純にリターンキーを押すだけでよい。
3つ目の質問はTFTPでダウンロードしてくるファイル名なので、毎回、ここはファイル名を入力する。
そして、試行錯誤してるうちに、ここで指定するファイルのフォーマットがわかりかけてきた。
2種類、オーケーのようだ。それは、
(1)CSYSで始まるファイル。
(2)27 05 19 56 で始まるファイル。つまり、uImage形式のファイル。
どちらでもオーケーのようだ。
ただし、(1)のほうだと、先頭が27 05 19 56 でないので、「Bad Magic Number,43535953」とエラーが出る。
それでもかまわないようだ。(ちなみに、43 53 59 53はCSYSだ)
もともとのPlanex社のファームがそうなってるんだから。
いろいろ試行錯誤してるうちに、「RootFS」のほうをナントカしないといけないことがわかってきた。
つまり、起動時にtelnetやLOGINが自動でスタートするようなRCファイルを、ファイルシステムに
入れておかなければダメなんだということだ。いくらカーネルを取り替えてもダメだ。
いままでで、なんとなく成功してるファイルは、
mzkwnh_v131.bin  (CSYS)
mzkw300nh2_v109.bin  (CSYS)
RT3052F.bin     (uImage)  --- ただし、rootFSが失敗で落ちる。
失敗してるのは、その原因とともに、
openwrt-ramips-rt288x-f5d8235v1-squashfs-sysupgrad   (uImage) (LZMA ERROR 1)
mzk-uImage.bin   (uImage) (LZMA ERROR 1)


つぎのトライ

(2012.08.19)
「4」のbootコマンドモードに入って、
RT3052 # setenv kernel_addr 80800000
RT3052 # setenv ramdisk_addr bfd60000
RT3052 # tftp $(kernel_addr) RT3052F.bin
RT3052 # flash_self

bootmでもいいが、flash_selfのほうが楽。
なお、flash_self環境変数の設定は
flash_self=run ramargs addip addmisc ; bootm $(kernel_addr) $(ramdisk_addr)
と、なっている。
残念!!失敗!!


Planex提供のファームを調べる

(2012.08.17)
たとえば、Ver.109のファイルの先頭部分をhexdumpで見る。
CSYSから始まる20バイトのうしろに、27 05 19 56 で始まるuImage形式が続いている。
最後にはCRCが入っているらしい。
$ hexdump -C mzkw300nh2_v109.bin
00000000  43 53 59 53 00 00 10 01  00 00 05 00 52 4e 35 32  |CSYS........RN52|
00000010  ee df 2c 00 27 05 19 56  bb 2f c1 36 4b ce 57 a9  |..,.'..V./.6K.W.|
00000020  00 2c df ac 80 00 00 00  80 2b 60 00 79 f7 0f 4c  |.,.......+`.y..L|
00000030  05 05 02 03 4c 69 6e 75  78 20 4b 65 72 6e 65 6c  |....Linux Kernel|
00000040  20 49 6d 61 67 65 00 00  00 00 00 00 00 00 00 00  | Image..........|
00000050  00 00 00 00 5d 00 00 00  02 34 26 2d 00 00 00 00  |....]....4&-....|
00000060  00 00 00 6f fd ff ff a3  b7 7f 66 af 7c c6 5f 6c  |...o......f.|._l|
00000070  10 7d 35 de 20 74 36 ca  d5 07 54 67 b4 66 ca 15  |.}5. t6...Tg.f..|
00000080  d4 a7 c8 94 9d c9 24 cf  31 d5 fe f7 6a 44 04 55  |......$.1...jD.U|
00000090  26 07 5a ac 87 7e 15 b4  b9 db 42 65 9f 9a 45 a5  |&.Z..~....Be..E.|
000000a0  39 3d 8a b6 76 e9 1d 2e  59 7e a4 e2 91 83 0e c2  |9=..v...Y~......|
000000b0  06 00 93 d0 0c fa fe 68  18 29 a0 24 3a 27 12 fb  |.......h.).$:'..|
000000c0  d7 7b c2 26 92 13 55 28  b2 20 9a 1f 5c 65 07 9f  |.{.&..U(. ..\e..|
000000d0  08 22 92 83 38 ac 83 cf  5c 7f 2a 31 68 e0 74 ec  |."..8...\.*1h.t.|
000000e0  16 1d 6d 0d 73 7f 36 c1  b9 77 c8 cc 56 b3 9d e7  |..m.s.6..w..V...|
000000f0  e8 25 de d9 ec 8e e3 fc  e0 0e ad f0 ff 6c e4 4a  |.%...........l.J|
00000100  37 2b f7 ea 7d ca 42 52  e1 6f 63 83 dd 38 20 29  |7+..}.BR.oc..8 )|
00000110  0a d8 85 ff 14 0a 8e 69  b3 d8 b3 1d 62 f9 ad 81  |.......i....b...|
00000120  ec 98 ce df 9f 3c e6 cb  8a e5 a7 74 34 56 30 9d  |.....<.....t4V0.|
00000130  99 4b 02 56 fc 65 15 c2  79 e9 a1 94 94 e1 09 6c  |.K.V.e..y......l|
00000140  3f 57 7b bc 30 7b f9 3a  48 e1 7b a2 78 13 22 35  |?W{.0{.:H.{.x."5|
00000150  ba 36 19 73 7a 29 e7 20  eb 78 35 b9 ab 0e 8b cf  |.6.sz). .x5.....|
00000160  7f 43 4e b6 17 ea 66 04  02 8e fd ca c1 01 f4 66  |.CN...f........f|
00000170  8d 7d 9d 62 c3 f0 82 22  15 cd 0f 22 5f 9e 3c 63  |.}.b..."..."_.<c|
00000180  17 e8 c0 b2 bd 66 c1 0d  be 23 b6 9b 9b 57 57 c6  |.....f...#...WW.|
00000190  c7 ff e5 ed a8 5d 01 fc  35 13 b2 2d c5 82 2c 6a  |.....]..5..-..,j|
000001a0  60 fd 47 d3 b1 a0 84 c2  99 64 4f 0a d7 27 21 cc  |`.G......dO..'!.|
000001b0  a2 98 7d b4 40 8c 31 76  b5 c4 47 db a2 f7 4b b5  |..}.@.1v..G...K.|
000001c0  5d 65 e7 91 7e 84 25 92  07 5d f0 dc e8 07 aa 7b  |]e..~.%..].....{|
000001d0  95 be ac 24 c4 3c 23 95  2f 8a 77 13 2f ae 10 e4  |...$.<#./.w./...|
000001e0  c1 72 1d 7e 88 33 4a 70  90 73 08 2f 5a 55 44 69  |.r.~.3Jp.s./ZUDi|
000001f0  6f d8 6b fe 10 fb 37 6c  66 61 b4 b8 8e c7 d3 c6  |o.k...7lfa......|
00000200  8f 14 3e 0b f9 c9 d4 dc  66 40 89 b9 36 33 cd a1  |..>.....f@..63..|
00000210  ba 9c b0 d0 ca 43 d3 2f  25 8f e0 4d 8b 00 36 21  |.....C./%..M..6!|
00000220  fe 8b 3e ab b7 10 6b df  be 23 2b 83 ab 43 3a 3b  |..>...k..#+..C:;|
00000230  46 9d 8a 94 1e f7 3b fc  0a 71 b6 1a 3f 17 a8 18  |F.....;..q..?...|
00000240  76 a5 fa 3c f2 c5 b4 0e  45 90 98 a7 21 40 63 31  |v..<....E...!@c1|
00000250  95 32 6b e5 b7 41 d2 79  7f 75 df b7 b9 e7 ea a5  |.2k..A.y.u......|
00000260  3a 50 f5 f9 a2 bb 06 23  cd 42 87 b7 f6 1b 41 ce  |:P.....#.B....A.|
00000270  2d 59 94 59 c2 a5 c5 0d  bd 9c fc 0c 3d 21 09 3b  |-Y.Y........=!.;|
00000280  29 7a a5 4d a5 5b c5 d9  dd da 51 a0 31 37 48 a9  |)z.M.[....Q.17H.|
00000290  36 d4 58 bf a3 7d 09 60  7b ad 45 b5 ae 59 8c 26  |6.X..}.`{.E..Y.&|
000002a0  39 be a2 f1 8e 27 8a 33  f9 c9 65 b2 b4 31 9c 0f  |9....'.3..e..1..|
000002b0  86 fb d0 1b 5f 44 ce 1b  e7 0d 61 b9 f5 22 bc c9  |...._D....a.."..|
000002c0  18 6c 3f cf 21 07 2e a2  c8 e4 26 3e 67 4a 4d 38  |.l?.!.....&>gJM8|
000002d0  fa 71 de 70 7f b3 c2 c9  20 88 73 38 f7 4c 69 de  |.q.p.... .s8.Li.|
000002e0  b5 83 6d b3 7b ef 0c bf  01 98 61 cf c5 94 af 04  |..m.{.....a.....|
000002f0  35 c4 8b 3a e7 4b f6 43  0f e5 61 7f 0e 2b 51 61  |5..:.K.C..a..+Qa|
00000300  eb f0 d4 66 4c 05 60 c9  42 d0 e7 92 30 92 72 c2  |...fL.`.B...0.r.|
00000310  d3 6b 89 9b 5e 9d 3a 40  58 51 66 d9 8e 67 48 d7  |.k..^.:@XQf..gH.|
00000320  fe ec 3e 06 ab 8b 8f 27  c4 ac 00 9f a3 8d 8c 5f  |..>....'......._|
00000330  35 de 21 e6 fa dd db 23  1f 23 40 13 90 87 e6 5c  |5.!....#.#@....\|
00000340  53 39 21 56 f1 09 36 37  ea 82 11 93 1a dd 58 be  |S9!V..67......X.|
00000350  40 24 c7 8a 0e 8b 7f 6d  36 dd bb 4d ce 51 71 f3  |@$.....m6..M.Qq.|
00000360  de 52 c5 02 18 84 cd f9  18 4e 25 d3 95 69 b4 c0  |.R.......N%..i..|
00000370  89 7e 56 c2 b7 b4 a4 32  29 3c 12 99 28 22 2d 13  |.~V....2)<..("-.|
00000380  9d 1a f9 d9 e6 4b 98 db  68 a9 ff db 46 c4 08 f2  |.....K..h...F...|
00000390  98 98 5f 13 fc 74 76 9b  ee 1c dd 52 2b c7 03 d7  |.._..tv....R+...|
000003a0  45 dc d9 45 ab 22 f4 9c  4e bf 64 85 60 07 f4 2d  |E..E."..N.d.`..-|
000003b0  c2 ee ee 93 b2 e9 05 0e  06 eb ed ce 29 83 89 48  |............)..H|
000003c0  1b 5b b2 2a e2 a1 41 e0  83 97 f9 b8 51 fa 9d 4c  |.[.*..A.....Q..L|
000003d0  d6 10 f8 17 4c c6 a4 e6  81 f0 dc 0c 4e b2 5d f9  |....L.......N.].|
000003e0  50 09 25 3c d1 1a b8 67  9d 47 a6 f4 e5 dd e6 05  |P.%<...g.G......|
000003f0  fc ac 8e 0d 79 fc 02 f6  d1 88 30 28 d7 1b 53 c8  |....y.....0(..S.|
00000400  83 2a 67 30 8b 34 1c cb  07 d7 f1 ea ab 29 2a e6  |.*g0.4.......)*.|
00000410  04 33 fc 7c e0 b0 22 de  8d d0 09 99 14 e7 bf 3a  |.3.|.."........:|
00000420  13 18 2e 91 2b ee 9b d4  32 99 a0 0d 35 3c 34 c2  |....+...2...5<4.|
00000430  f7 53 42 df d1 27 91 47  89 19 11 2a 93 4f e5 37  |.SB..'.G...*.O.7|
00000440  f5 4f d4 11 fd 04 17 ac  8f 23 fa ac b8 ef b5 fb  |.O.......#......|
00000450  7c 6b c6 6b 00 76 3d f2  db 20 59 04 ca 05 72 c2  ||k.k.v=.. Y...r.|
00000460  5c c8 3d a4 b2 e3 50 d1  ed 63 76 5e a6 50 05 b0  |\.=...P..cv^.P..|
00000470  2d 86 65 b4 8c bc 8c 8e  c5 0a cb a5 b6 75 bc 99  |-.e..........u..|


他人もいろいろ書いてるようだ

(2012.08.17)