一般都能恢复正常, 此方法在之前屡试不爽. 如果不行, 请参考下面的.
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,
一. 先从好用的703N中导出bin文件, SecureCRT登陆后, 命令如下:
root@OpenWrt:~#
root@OpenWrt:/tmp# cat uboot.bin firmware.bin art.bin > xxx.bin #合成完整文件以备用
二. WinSCP, 将上面的3个.bin文库拷贝到 自己的电脑上以备用.
此后总重复出现如上的信息, 路由器在不停的 Reset, 无法进入Linux
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