[OpenWrt] WR703N修磚記 --- 刷機有風險, 折騰需謹慎

一. 基本知識
如果是刷了帶HTTP的U-boot, 真正成了刷不死的小強了, 可以盡情折騰吧:
捅菊花的方法:電腦ip 設成192.168.1.2,接好網線(單獨直連或者HUB內都可以)
上電後,燈會常亮1到2秒,然後熄滅,這時按住菊花不放,燈會常亮,鬆開菊花打開火狐輸192.168.1.1 就能看到選擇界面了(不支持IE)

路由器的安全模式: 若wifi無效, 則需要連接網線. 設置本地ip爲192.168.1.*, 準備可以觸碰reset工具一件.
眼明手快的活來了: 插電源燈亮,當燈閃的瞬間 按下reset鍵 3秒, led狂閃則路由器進入安全模式
打開CMD窗口, ping 192.168.1.1 若能成功連接, 則輸入命令: telnet 192.168.1.1, 再firstboot, 然後重啓
一般都能恢復正常, 此方法在之前屢試不爽.  如果不行, 請參考下面的.
編程器固件中包含uboot、fw和art。
uboot就像電腦的bios,是底層的管理系統;
fw就像電腦的操作系統,實現路由器的各種功能;
art就像電腦的無線驅動程序,是無線校驗碼;
uboot的長度爲128KB(0x20000);art爲64KB(0x10000);fw有4M和8M的區別,4M的爲3840K(0x3c0000),8M的爲7936KB(0x7c0000)。在刷機之前要對要刷入flash的uboot、fw、art的文件長度用ultraedit或winhex進行校驗。尤其是uboot,如果大小不對,千萬不要嘗試刷入,那是一定會變磚的。
秋水注: U-boot: 0x1fc00 起的6個字節爲 Lan時的 MAC地址,  0x1FE00 起的8個自己爲PIN

uboot、fw和art在flash中的位置如下:
4M的FLASH:flash地址從0x000000~0x3FFFFF
ttl訪問flash的地址從0x9F000000~0x9F3FFFFF

flash起始地址
TTL起始地址
flash終止地址
TTL終止地址
uboot
0X000000
0X9F000000
0X01FFFF
0X9F01FFFF
fw
0X020000
0X9F020000
0X3DFFFF
0X9F3DFFFF
art
0X3F0000
0X9F3F0000
0X3FFFFF
0X9F3FFFFF

8M的FLASH:flash地址從0x000000~0x7FFFFF
ttl訪問flash的地址從0x9F000000~0x9F3FFFFF

flash起始地址
TTL起始地址
flash終止地址
TTL終止地址
uboot
0X000000
0X9F000000
0X01FFFF
0X9F01FFFF
fw
0X020000
0X9F020000
0X7DFFFF
0X9F7DFFFF
art
0X7F0000
0X9F7F0000
0X7FFFFF
0X9F7FFFFF

準備工作
1、從PCB版上上引出TTL線,一般有三根:TX RX和GND,對應主板上的標記,應該是TP-IN,TP-OUT,主板上焊點較大、覆蓋面積較廣的一般就是GND,有USB的,外殼連接的就是GND,可以從這些地方引出。

WR703N: TP_IN爲RX,TP_OUT爲TX,GND: 電源引腳標有USB1, R106旁邊的3個過孔, 從而實現免拆機無損TTL改造。

我的TTL線: 黑色爲GND,綠色爲RX,白色爲TX。 排列: 黑白綠(Err), 黑綠白(OK),  靠近RAM芯片端爲黑線.

2、USB-TTL板或串口TTL板,裝好驅動,在設備管理器中查出該設備佔用的COM端口號,並將其屬性設置中的速率改爲115200
3、電腦IP設置192.168.1.2,網關255.255.255.0,掩碼192.168.1.1,網線連接路由器LAN口和電腦網線接口。
4、需要的軟件PUTTY。連接好TTL,打開PUTTY,點串口,端口改爲上部查出的COM端口號,速率選擇115200,點確定。如果接上路由器電源以後不出碼,請交換ttl的Tx和Rx兩線;如果出亂碼,請查COM端口的速率是不是都是115200。
5、需要的軟件tftp32。將固件放到tftp32同一目錄,打開ftfp32,一般默認的server interface就已經是你的網卡IP地址(對於路由器uboot的遠端地址不是192.168.1.2的,請按照5樓hhhjjj159 所說的,在TTL中斷系統啓動以後,輸入setenv ipaddr 192.168.1.1;setenv serverip 192.168.1.*(電腦IP地址)命令)。
TTL刷固件的命令
瞭解以上地址信息以後,就可以利用以上信息在不拆FLASH的情況下利用TTL向FLASH寫入編程器固件或者其中的某一部分。
在插上路由器電源,屏幕開始出碼的時候,迅速點擊T、P、L三個字母,會中斷系統的啓動,光標停在提示符下,這時就可以輸入刷固件的命令了。
命令如下:

4M的:
刷編程器固件:
tftp 0x80000000 full.bin
erase 0x9f000000 +0x400000
cp.b 0x80000000 0x9f000000 0x400000
刷uboot:
tftp 0x80000000 uboot.bin
erase 0x9f000000 +0x20000
cp.b 0x80000000 0x9f000000 0x20000
刷fw:
tftp 0x80000000 fw.bin
erase 0x9f020000 +0x3c0000
cp.b 0x80000000 0x9f020000 0x3c0000
刷art:
tftp 0x80000000 art.bin
erase 0x9f3f0000 +0x10000
cp.b 0x80000000 0x9f3f0000 0x10000


8M的:
刷編程器固件:
tftp 0x80000000 full.bin
erase 0x9f000000 +0x800000
cp.b 0x80000000 0x9f000000 0x800000
刷uboot:
tftp 0x80000000 uboot.bin
erase 0x9f000000 +0x20000
cp.b 0x80000000 0x9f000000 0x20000
刷fw:
tftp 0x80000000 fw.bin
erase 0x9f020000 +0x7c0000
cp.b 0x80000000 0x9f020000 0x7c0000
刷art:
tftp 0x80000000 art.bin
erase 0x9f7f0000 +0x10000
cp.b 0x80000000 0x9f7f0000 0x10000

--------- 以下爲實戰操作記錄 --------------------------------------------
路由器共3臺, 4M的好用一個, 4M(
上電後燈每3秒閃一次, 重複到永遠)和8M()的磚頭各一個,  都無法進入安全模式
4M型號: SPANSION 的 S25FL032P,
8M型號: MX25L6445EM2I-10G

一. 先從好用的703N中導出bin文件, SecureCRT登陸後, 命令如下:
root@OpenWrt:~#
root@OpenWrt:~# cd /tmp
root@OpenWrt:/tmp# cat /proc/mtd
//---- 4M
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000da370 00010000 "kernel"
mtd2: 002f5c90 00010000 "rootfs"
mtd3: 000b0000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 003d0000 00010000 "firmware"
//---- 8M
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 00100000 00010000 "kernel"
mtd2: 006d0000 00010000 "rootfs"
mtd3: 00250000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware

root@OpenWrt:/tmp# dd if=/dev/mtd0 of=uboot.bin
256+0 records in
256+0 records out
root@OpenWrt:/tmp# dd if=/dev/mtd5 of=firmware.bin
7808+0 records in
7808+0 records out
root@OpenWrt:/tmp# dd if=/dev/mtd4 of=art.bin
128+0 records in
128+0 records out
root@OpenWrt:/tmp#

root@OpenWrt:/tmp# cat uboot.bin firmware.bin art.bin > xxx.bin    #合成完整文件以備用
二. WinSCP, 將上面的3個.bin文庫拷貝到 自己的電腦上以備用.
三. TTL接好後, 能看到4M的啓動信息如下, 至少uboot部分還正常, 萬幸啊, 阿門!
U-Boot 1.1.4 (Sep 26 2011 - 11:13:45)
AP121-2MB (ar9330) U-boot
DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment
In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds
## Booting image at 9f020000 ...
  Uncompressing Kernel Image ... Too big uncompressed streamLZMA ERROR 1 - must RESET
 Uncompressing Kernel Image ... OK   //此爲正確的信息

此後總重複出現如上的信息, 路由器在不停的 Reset, 無法進入Linux  

----- 用編程器直接操作芯片,  燒錄上面合成的bin, 開機後路由器恢復正常!!!spacer.gif
0x20000: FW的起始地址, 可以看到Openwrt的標誌和版本號

27194309_1352702554ddPb.jpg
------------------------------------------------------------------------------------------
常用 Flash 型號如下:

NameManufactureSize
S25FL016ASpansion2MB
EN25F16Eon2MB
EN25QH16Eon2MB
AT26DF161ATMEL2MB
MX25L1605DMXIC2MB
W25Q16BVWinbond2MB
S25FL032PSpansion4MB
EN25F32Eon4MB
EN25Q32BEon4MB
EN25QH32Eon4MB
AT25DF321ATMEL4MB
AT25DF321AATMEL4MB
MX25L3205DMXIC4MB
W25Q32BVWinbond4MB
S25FL064ASpansion8MB
S25FL064PSpansion8MB
EN25Q64Eon8MB
AT25DF641ATMEL8MB
AT25DF641AATMEL8MB
MX25L6405DMXIC8MB
W25Q64BVWinbond8MB
S25FL128PSpansion16MB
S25FL129PSpansion16MB
EN25Q128Eon16MB
MX25L12805DMXIC16MB
W25Q128BVWinbond16MB
EN25QH256Eon32MB
MX25L25635EMXIC32MB

路由器內存
DDR內存:
32M:
W9425G6D(E)H-5 WINBOND(華邦)
64M:
HY5DU121622CTP-D43 現代顆粒64M (親測:二手貨市場10元買條256mb,四粒芯片的內存)
VDD9616A8A-6B H0513 VDATA(威剛)
46V32M16 MT(鎂光)
D5116AFTA-5B-E ELPIDA\爾必達
128M:
46V64M16 P-6TA MT(鎂光)

SD內存:
HY57V561622 現代顆粒 32M
HY57V561620 現代顆粒 32m(親測)
K4S561632H 三星顆粒 32M


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章