最終更新:
hide_system 2013年03月04日(月) 13:41:46履歴
メーカー:BUFFALO
商品名・型番:BBR-4MG
改造情報 |
http://www.binzume.net/w/library/
コンソールポートを確保 |
基板にて、リセットスイッチのすぐ後ろにある、
J1 とのシルク印刷のある10pinのピンヘッダ部に出ている。
<ピン配列>
↑リセットスイッチ側
10 5
9 4
8 3
7 2
6 1
↓LED側
<ピンアサイン>
1:
2:RXD(=DataIn)
3:TXD(=DataOut)
4:
5:GND
6:
7:
8:
9:
10:Vcc(=3.3V出力)
●外部へ引き出し
CD-ROMドライブ用のオーディオケーブルを利用。
これらの線を、レベルコンバータを通してから、PCのRS-232C端子に繋ぐだけです。
*レベルコンバータについては、別ページ参照:
http://wiki.livedoor.jp/hide_system/d/%a5%b7%a5%ea...
*用いるレベルコンバータのチップによっては、
3Vや5Vの電力が必要となるので、
3Vが必要となる場合には、
上記ピンアサインの10ピン部分より、3.3Vを取り出して接続する。
起動シーケンス(憶測) |
↓
ブラッシュメモリ上のパーティション0領域(Boot)を実行?。
↓
ブートパラメータをコピー。(=ロード?)
↓
コマンドモードへ移行するかの表示。
(=シリアルコンソールにて、Enter押下すれば、コマンドモードへ移行。)
↓
設定をリセット処理するかの表示。
(=Resetボタンを押下すれば、設定が初期化される。)
↓
フラッシュメモリをチェック。
↓
フラッシュメモリ上の、パーティション2領域(WEB Image)にあるZIPファイルをメモリ上に展開。
↓
フラッシュメモリ上の、パーティション3領域(Code Image)にあるZIPファイルをメモリ上に展開&実行し、
ルータとしての動作が開始される。
フラッシュメモリの構成 |
[0] Boot 0xBFC00000 128K ブートローダが入っているBootの領域。
リセットを押しながら電源を入れたり,
ファームウェアが見つからなかったときに起動する、
「Tiny_ETCPIP_KERNEL」というものが組み込まれている先頭の32KBくらいとのこと(?)。
この領域は消去してはダメ!。消去して再起動してしまうと、
シリアルコンソール接続でも、全く何も表示されなくなり、起動不可となり、
シリアルコンソール接続での復旧ができなくなる。
[1] Configuration 0xBFC20000 128K 設定画面で設定した値のデータが保存される領域。
リセットボタン長押しにて工場出荷設定処理をすると、ここの領域が消去される。
改造サイトなどの記事では、ここに、U-bootでの設定ファイルを突っ込んでいる。
http://www.fenix.ne.jp/~thomas/memo/bbr4/
改造サイトなどの記事では、ここに、U-bootでの設定ファイルを突っ込んでいる。
http://www.binzume.net/library/bbr-4mg06.html
[2] Web Image 0xBFC40000 256K Webインターフェイス設定画面関連のファイルが格納されている。
[3] Code Image 0xBFC80000 512K プログラム関連のファイルが格納されている。
ZIP形式で保存されている。
改造サイトなどの記事では、ここに、U-bootを突っ込んでいる。
http://www.fenix.ne.jp/~thomas/memo/bbr4/
改造サイトなどの記事では、ここに、Linuxカーネルを突っ込んでいる。
http://www.binzume.net/library/bbr-4mg06.html
[4] Boot Params 0xBFD00000 64K 不明?。起動時にパーティション0領域がロードされた後に、
この領域もロードされている?
[5] *空き領域 960K 使われていない。
改造サイトなどの記事では、ここに、Linuxカーネルを突っ込んでいる。
http://www.fenix.ne.jp/~thomas/memo/bbr4/
改造サイトなどの記事では、ここに、Linuxのコマンドを突っ込んでいる。
http://www.binzume.net/library/bbr-4mg06.html
メーカから提供されているファームウェアファイルは、
上記2と3のパーティションをイメージファイル化(=SOHO.BIN)して、ZIPで固めたもの。
コンソールポート経由での通信 |
*通信ソフトとしては、TeraTermを利用した場合で説明を続けます。
(その他のフリーソフトや、Windowsに標準でついているハイパーターミナルでも可能です。)
●「Setup」→「Serial port」
●下記のように設定する。
ルータの電源を入れると、下記のように情報が入ってくる。
(ルータのファームウェアver1.40、工場出荷設定、LAN・WANケーブル未接続状態)
===========================================================
BUFFALO BBR-4MG Loader v1.80 build Dec 12 2003 10:13:58
Broad Net Technology, INC.
===========================================================
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
Copying boot params.....DONE
Press any key to enter command mode ...
Press Reset button to enter Tiny_ETCPIP_KERNEL ...
Flash Checking Passed.
Unzipping program from bank 2...done
Try to find image for running...
Unzipping program from bank 3...doneABCDEFGHIJDRAM
STCK
MAIN
[FLOW] Main() Begin ....
[GPIO FLOW] SetGpio() Begin ..
[GPIO FLOW] SetGpio() End.
[FLOW] Main() before call initialize_data_area() ..
##### _ftext = 0x80001000
##### _fdata = 0x8013E3E0
##### __bss_start = 0x80153368
##### end = 0x806DC024
##### Backup Data from 0x8013E3E0 to 0x8070C024
[FLOW] Main() afeter call initialize_data_area()
install_exception
sys_irq_init
memlib_init
hw5120cfg_init
ADMtek_GPIO_Init()
set GPIO 3 to output mode and enable with output value HI.
System startup...
soho initialize COLOR1 : 450000
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
Set flash memory layout to Boot Parameters found !!!
Bootcode version: v1.80
Serial number: S437******
Hardware version: 01
sizeof(struct III_Config_t) is 75980
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
default route: 0.0.0.0
BufferInit:
BUF_HDR_SZ=32 BUF_ALIGN_SZ=0 BUFFER_OFFSET=96
BUF_BUFSZ0=384 BUF_BUFSZ1=1632
NUM_OF_B0=200 NUM_OF_B1=1100
BUF_POOL0_SZ=83200 BUF_POOL1_SZ=1830400
*BUF0=0x804db064 *BUF1=0x8031c254
Altgn *BUF0=0xa04db070 *BUF1=0xa031c260
End at BUF0:0xa04ef570, BUF1:0xa04db060
buffer0 pointer init OK!
buffer1 pointer init OK!
time = 01/01/2003, 00:00:00
Interface 0 ip = 127.0.0.1
ssmac_init begin ..
- Pafter my_if5120_init ..
if_adm51201: Ethernet address : ** ** ** ** ** **
time = 01/01/2003, 00:00:00
Interface 1 ip = 192.168.11.1
if_adm51202: Ethernet address : ** ** ** ** ** **
time = 01/01/2003, 00:00:00
Re-Init NAT data structure
Init NAT data structure
Interface 2 ip = 0.0.0.0
ruleCheck()> Group: 0, Error: Useless rule index will be truncated
ruleCheck()> Group: 1, Error: Useless rule index will be truncated
ruleCheck()> Group: 2, Error: Useless rule index will be truncated
ruleCheck()> Group: 3, Error: Useless rule index will be truncated
ruleCheck()> Classify Rule: 1, Error: Protocol Field
ruleCheck()> Classify Rule: 2, Error: Protocol Field
ruleCheck()> Classify Rule: 3, Error: Protocol Field
ruleCheck()> Classify Rule: 4, Error: Protocol Field
ruleCheck()> Classify Rule: 5, Error: Protocol Field
ruleCheck()> Classify Rule: 6, Error: Protocol Field
ruleCheck()> Classify Rule: 7, Error: Protocol Field
ruleCheck()> Classify Rule: 8, Error: Protocol Field
ruleCheck()> Classify Rule: 9, Error: Protocol Field
ruleCheck()> Classify Rule: 10, Error: Protocol Field
ruleCheck()> Classify Rule: 11, Error: Protocol Field
ruleCheck()> Classify Rule: 12, Error: Protocol Field
ruleCheck()> Classify Rule: 13, Error: Protocol Field
ruleCheck()> Classify Rule: 14, Error: Protocol Field
ruleCheck()> Classify Rule: 15, Error: Protocol Field
ruleCheck()> Classify Rule: 16, Error: Protocol Field
ruleCheck()> Classify Rule: 17, Error: Protocol Field
ruleCheck()> Classify Rule: 18, Error: Protocol Field
ruleCheck()> Classify Rule: 19, Error: Protocol Field
ruleCheck()> Classify Rule: 20, Error: Protocol Field
ruleCheck()> Classify Rule: 21, Error: Protocol Field
ruleCheck()> Classify Rule: 22, Error: Protocol Field
ruleCheck()> Classify Rule: 23, Error: Protocol Field
ruleCheck()> Classify Rule: 24, Error: Protocol Field
ruleCheck()> Classify Rule: 25, Error: Protocol Field
ruleCheck()> Classify Rule: 26, Error: Protocol Field
ruleCheck()> Classify Rule: 27, Error: Protocol Field
ruleCheck()> Classify Rule: 28, Error: Protocol Field
ruleCheck()> Classify Rule: 29, Error: Protocol Field
ruleCheck()> Classify Rule: 30, Error: Protocol Field
ruleCheck()> Classify Rule: 31, Error: Protocol Field
ruleCheck()> Classify Rule: 32, Error: Protocol Field
reqCBACBuf()> init match pool, Have: 1000
Memory Address: 0x8067da28 ~ 0x806847a4
reqCBACBuf()> init timeGap pool, Have: 10000
Memory Address: 0x806847a4 ~ 0x806b54f8
reqCBACBuf()> init sameHost pool, Have: 2000
Memory Address: 0x806b54f8 ~ 0x806c4f18
[setClsfyEnable] clsfy_func=0
CBAC rule pool initialized !!
Init NAT data structure
RUNTASK id=1 if_task if0...
RUNTASK id=2 if_task if1...
RUNTASK id=3 if_task if2...
RUNTASK id=4 timer_task...
RUNTASK id=5 conn_mgr...
year=103,mon=0,day=1RUNTASK id=6 period_task...
RUNTASK id=7 dhcp_daemon...
RUNTASK id=8 dhcp_clt...on interface 2
httpd: listen at 192.168.11.1:1900
HTTPD TIMER_RESOURCE:5, FS_RESOURCE:6
RUNTASK httpd...
RUNTASK id=12 dnsproxy...
RUNTASK id=13 rip...
RUNTASK id=14 ripout...
RUNTASK id=15 pptp_callmgr...
RUNTASK id=16 dhcpd_mgmt_task...
UPnP is enabled
UPNP Device initialize success! slot=17
RUNTASK id=18 interrupt_read_task...
RUNTASK id=19 Receive_Server_Thread...
RUNTASK id=20 Alarm_Server_Task...
Starting Multitask...
MTstart2() begin ...
RUNTASK id=0 period_task...
httpd: listen at 192.168.11.1:80
dnsproxy running...
IP_ADD_MEMBERSHIP: e0000009
[ripCreateSocket] join 224.0.0.9 on 127.0.0.1 ok!! [ifno=0]
IP_ADD_MEMBERSHIP: e0000009
[ripCreateSocket] join 224.0.0.9 on 192.168.11.1 ok!! [ifno=1]
dhcpd_mgmt_task started...
Receive_Server_Thread
[dhcp_clt] could not find DHCP daemon to get information
period_task running 60
Buf0: 198, Buf1: 845
[dhcp_clt] could not find DHCP daemon to get information
IP_ADD_MEMBERSHIP: effffffa
[dhcp_clt] could not find DHCP daemon to get information
period_task running 120
Buf0: 197, Buf1: 846
[dhcp_clt] could not find DHCP daemon to get information
period_task running 180
Buf0: 197, Buf1: 846
[dhcp_clt] could not find DHCP daemon to get information
[dhcp_clt] could not find DHCP daemon to get information
period_task running 240
Buf0: 197, Buf1: 846
[dhcp_clt] could not find DHCP daemon to get information
period_task running 300
Buf0: 197, Buf1: 846
[dhcp_clt] could not find DHCP daemon to get information
●背面のリセットボタンを押すと。。
下記のような表示が出て、再起動します。
Reboot .....
ADM5120 : Disable CPU Port
ADMtek_RESET() by Watch Dog
●背面のリセットボタンを長押しすると。。
下記のような表示が出ます。押している間、繰り返し出続けます。
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
erase from location bfc20000 done
erase from location bfc30000 done
write length 128cc
01234
Verify OK
ADM5120 : Disable CPU Port
ADMtek_RESET() by Watch Dog
Reset configuartion to Factory Default !!!
●背面のリセットボタンを長押ししながら電源を入れると。。
下記のような表示が出ます。Windowsでいうところの、「セーフモード」状態で起動しているようです。
===========================================================
BUFFALO BBR-4MG Loader v1.80 build Dec 12 2003 10:13:58
Broad Net Technology, INC.
===========================================================
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
Copying boot params.....DONE
Press any key to enter command mode ...
Press Reset button to enter Tiny_ETCPIP_KERNEL ...
RESET_BTN was pressed, wake up Tiny_ETCPIP_KERNEL
Unzipping web ... done
Unzipping code ... done
Boot ETCPIP running ...
ABCDEFGHIJDRAM
STCK
MAIN
install_exception
sys_irq_init
memlib_init
hw5120cfg_init
ADMtek_GPIO_Init()
set GPIO 3 to output mode and enable with output value HI.
system startup...
tcpip_startup...
manu_id=6000 chip_id=401A
INTEL TE28F160C3-B bottom boot 16-bit mode found
pBootParams=BFD00000
Set flash memory layout to BPARAMS+RECOVER_KERNEL
Bootcode version: v1.80
Serial number: S437******
Hardware version: 01
!!No configuration file present!!
default route: 0.0.0.0
default route: 0.0.0.0
BufferInit:
BUF_HDR_SZ=16 BUF_ALIGN_SZ=0 BUFFER_OFFSET=80
BUF_BUFSZ0=384 BUF_BUFSZ1=1632
NUM_OF_B0=1300 NUM_OF_B1=1300
BUF_POOL0_SZ=520000 BUF_POOL1_SZ=2142400
Buf0_Block a05e324c Buf1_Block a03d817c
BUF0[0]=0xa05e3250 BUF1[0]=0xa03d8180
buffer0 pointer init OK!
buffer1 pointer init OK!
init_if() ; gConfig.Interface[0].Link_Type is [4]
Interface 0 ip = 127.0.0.1
init_if() ; gConfig.Interface[1].Link_Type is [1]
ssmac_init begin ..
test 1ifp 8067f390
test 2test 3+Pafter my_if5120_init ..
if_adm51201: Ethernet address: ** ** ** ** ** **
Interface 1 ip = 192.168.11.1
init_if() ; gConfig.Interface[2].Link_Type is [0]
RUNTASK id=1 if_task if0...
RUNTASK id=2 if_task if1...
RUNTASK id=3 timer_task...
RUNTASK id=4 period_task...
RUNTASK id=5 dhcp_daemon...
RUNTASK httpd...
RUNTASK id=8 dhcpd_mgmt_task...
Starting Multitask...
MTstart2() begin ...
period_task running!!!
httpd: listen at 192.168.11.1:80
dhcpd_mgmt_task started...
period_task running 120
period_task running 240
period_task running 360
この状態で、LAN経由でブラウザ上からWeb設定画面にアクセスすると、
通常とは異なり、下記のような緊急用のページが表示され、ファームウェアの書き込みはできる。
ちなみに、ページにある項目のリンク先は下記のようになっていた。
「Firmware Upgrade」= http://192.168.11.1/upgrade_firm_browse.stm
「Reboot」 = http://192.168.11.1/tools_save_restart.stm
「Upgrade Target」の箇所は、プルダウン形式になっているが、
「Firmware」の1種類しか表示されない。
●ファームウェアが破損していたり、改造ファームウェアが入っていたりした場合には、(?)
ルータを起動させた直後に「Enter」キーを押すと、
下記のようなプロンプトが表示され、「コマンドモード」に入ることができる。
*セーフモードも立ち上がらない場合のための、超緊急モードといったもの(?)
[BBR-4MG Boot]:
この状態で「Enter」キーを押すと、下記のような表示が出ます。
======================
[U] Upload to Flash
[E] Erase Flash
[G] Run Runtime Code
[A] Set MAC Address
[#] Set Serial Number
[V] Set Board Version
[P] Print Boot Params
======================
この状態で「U」ボタンを押すと、FLASHメモリへの更新メニューが表示されます。
[0] Boot 0xBFC00000 128K
[1] Configuration 0xBFC20000 128K
[2] Web Image 0xBFC40000 256K
[3] Code Image 0xBFC80000 512K
[4] Boot Params 0xBFD00000 64K
●ルータを起動させた直後に「!」キーを押すと、
下記のようなプロンプトが表示され、「アドミニストレータモード」に入ることができる。
[BBR-4MG Boot]:
この状態で「!」キーを押すと、下記のような表示が出ます。
[BBR-4HG Boot]:!
Enter Administrator Mode !
======================
[U] Upload to Flash [E] Erase Flash [G] Run Runtime Code [M] Upload to Memory [R] Read from Memory [W] Write to Memory [T] Memory Test [Y] Go to Memory [A] Set MAC Address [#] Set Serial Number [V] Set Board Version [P] Print Boot Params======================
コメントをかく