WR703N修砖记 --- 刷机有风险, 折腾需谨慎

Hardware summary

http://wiki.openwrt.org/toh/tp-link/tl-wr703n


一. 基本知识

如果是刷了带HTTP的U-boot, 真正成了刷不死的小强了, 可以尽情折腾吧: 

电脑ip 设成192.168.1.x,接好网线(单独直连或者HUB内都可以),  上电后,灯会常亮1到2秒,然后熄灭,这时按住Reset开关不放,灯会常亮,松开Reset打开火狐输192.168.1.1 就能看到选择界面了(不支持IE), 升级时的提示如下:

Flashing...
The system is now trying to flash. If there is a problem, the LEDs will start to blink.
After a successful update the box will reboot 
V1.1 自己修改了u-boot, 目前测试OK


路由器的安全模式: 若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

16M: W25Q128FVSSIG, W25Q128FVSIG
一. 先从好用的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 型号如下:

______________________________________________________________________

Name     Manufacture         Size

______________________________________________________________________

S25FL016ASpansion2MB

EN25F16Eon2MB

EN25QH16Eon         2MB

AT26DF161ATMEL         2MB

MX25L1605DMXIC         2MB

W25Q16BVWinbond         2MB

S25FL032PSpansion4MB

EN25F32Eon4MB

EN25Q32BEon         4MB

EN25QH32Eon         4MB

AT25DF321ATMEL         4MB

AT25DF321AATMEL         4MB

MX25L3205DMXIC         4MB

W25Q32BVWinbond         4MB

S25FL064ASpansion8MB

S25FL064PSpansion8MB

EN25Q64         Eon         8MB

AT25DF641ATMEL         8MB

AT25DF641AATMEL         8MB

MX25L6405DMXIC         8MB

W25Q64BVWinbond         8MB

S25FL128PSpansion16MB

S25FL129PSpansion16MB

EN25Q128Eon         16MB

MX25L12805DMXIC         16MB

W25Q128BVWinbond         16MB

EN25QH256Eon         32MB

MX25L25635EMXIC         32MB


路由器内存
DDR内存:

32M:
W9425G6D(E)H-5 WINBOND(�A邦)

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

你可能感兴趣的:(路由器,openwrt,固件,703n)