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

本文提供了一套详细的路由器固件刷机流程,包括如何通过TTL线进入路由器安全模式、如何使用TFTP工具上传固件以及如何解决刷机过程中遇到的问题。同时,文中还列举了一些常见故障及其解决办法,帮助用户轻松恢复路由器正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 基本知识
如果是刷了带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, 开机后路由器恢复正常!!!
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
20120905版4M固件: 1. 720N固件,基于703N改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。 且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。 2. 4M固件,当然8M的flash也可以刷。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。 如703n原厂固件web界面请刷factory,且需要先把固件标识改成07030101才能刷。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。trunk就是不稳定啊, 没办法~~ 14.刷机风险,变本人概不负责。 吐糟一下,如3G有掉线问题,请看日志中是否出现“No response to 5 echo-requests”。 而解决这个问题,除了降低无线功率或者干脆关闭无线外,我是没找到其他更好的办法(可能和3G网卡有关)。 曾经尝试过换电源增强供电、用带外接电源的usb-hub,包括尝试TP-LINK原厂固件也一样掉线。还有改/etc/ppp/options里 的lcp-echo-interval,把值改大点后是不掉线了,但是3G其实已经断流了,没什么意义。我用MU350网卡试过FW300R、FWR171-3G 还有720N这几个路由都是这样。不知道是TP-Link设计问题,还是td-scdma这种垃圾芯片功率过高的问题,或者Atheros芯片 的设计缺陷? 百撕不得骑姐啊!
原贴 http://www.right.com.cn/forum/thread-91571-1-1.html 20120905版4M固件: 1. 720N固件,基于703N改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。 且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。 2. 4M固件,当然8M的flash也可以刷。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。 如703n原厂固件web界面请刷factory,且需要先把固件标识改成07030101才能刷。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。 trunk就是不稳定啊,没办法~~
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值