一. 基本知識
如果是刷了帶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端口號,並將其屬性設置中的速率改爲1152003、電腦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文庫拷貝到 自己的電腦上以備用.
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
此後總重複出現如上的信息, 路由器在不停的 Reset, 無法進入Linux
----- 用編程器直接操作芯片, 燒錄上面合成的bin, 開機後路由器恢復正常!!!
0x20000: FW的起始地址, 可以看到Openwrt的標誌和版本號
------------------------------------------------------------------------------------------
常用 Flash 型號如下:
Name | Manufacture | Size |
S25FL016A | Spansion | 2MB |
EN25F16 | Eon | 2MB |
EN25QH16 | Eon | 2MB |
AT26DF161 | ATMEL | 2MB |
MX25L1605D | MXIC | 2MB |
W25Q16BV | Winbond | 2MB |
S25FL032P | Spansion | 4MB |
EN25F32 | Eon | 4MB |
EN25Q32B | Eon | 4MB |
EN25QH32 | Eon | 4MB |
AT25DF321 | ATMEL | 4MB |
AT25DF321A | ATMEL | 4MB |
MX25L3205D | MXIC | 4MB |
W25Q32BV | Winbond | 4MB |
S25FL064A | Spansion | 8MB |
S25FL064P | Spansion | 8MB |
EN25Q64 | Eon | 8MB |
AT25DF641 | ATMEL | 8MB |
AT25DF641A | ATMEL | 8MB |
MX25L6405D | MXIC | 8MB |
W25Q64BV | Winbond | 8MB |
S25FL128P | Spansion | 16MB |
S25FL129P | Spansion | 16MB |
EN25Q128 | Eon | 16MB |
MX25L12805D | MXIC | 16MB |
W25Q128BV | Winbond | 16MB |
EN25QH256 | Eon | 32MB |
MX25L25635E | MXIC | 32MB |
路由器內存
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
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