OpenWrt学习笔记之刷机及救砖
完成了固件的编译之后就可以进行刷机了,当然也可以去官网直接下载固件。连接如下:http://wiki.openwrt.org/toh/tp-link/tl-wr703n。找到Flashing中的squashfs-factory.bin点击即可下载。
有了固件就可以开始刷机了。刷机的方法有很多种,最简单的就是直接输入路由器本地IP (192.168.1.1) ,如果是新买的路由器即之前没有刷过固件就采用如下方法:找到系统工具—软件升级,加载自己的固件即可。附上一张图
大约需要几分钟,在这个过程中不要断电,否则就等着救砖吧。
升级成功的界面如下图所示:
另外一种情况就之前刷过固件即路由器中已经有固件需要刷新的固件。方法大同小异只是网页界面不同而已。登陆192.168.1.1,找到System—Backup—Flash new firmware image,选择自己的固件即可。
以上就是网页刷固件的方法。另外一种就是TTL刷机的方法。同时这也是救砖的方法。这种方法相对比较麻烦,需要拆机改装,需要一根USB转串口。
打开路由器的机壳,可看到电路板,找到TP_IN,TP_OUT,和GND。TP_IN对应RXD,TP_OUT对应TXD.需要注意的是串口与电路板的RX与TX需要互相反接。接好之后就可做刷机准备了。
需要两款软件
1.SecureCRT破解版(下载地址:http://pan.baidu.com/share/link?shareid=187741142&uk=3895152584)
2.TFTP破解版(下载地址:http://www.greenxf.com/soft/26147.html)
两款软件下载完毕之后,将USB转串口插入电脑USB口,接着打开设备管理器可以看到串口设备,设置其波特率为115200.
设置完之后安装SecureCRT并打开软件,也要进行一些设置。如下图
接下来打开TFTP软件,默认是不需要设置的,注意这里需要把固件放在TFTP软件所在的目录,固件名称尽量短一些。
下面用网线把路由器和电脑连接,打开电源,会在SecureCRT里看到路由器的启动信息。在接通路由器电源的时候迅速按tpl三个字母可以阻止路由器的启动,(也有可能是其它的,比如ctrl+c)直到出现命令输入的光标。如图
接下来就可以输入命令开始刷机了。
/*以下是刷机时的全程TTL信息*/
U-Boot 1.1.4 (Mar 21 2013 - 10:09:10)
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: xx:xx:xx:xx:xx:xx /*此处为网卡MAC地址,已隐去*/
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: xx:xx:xx:xx:xx:xx
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds /*此时输入tpl三个字母中断启动*/
hornet> setenv ipaddr 192.168.1.1 /*设置本机地址*/
hornet> setenv serverip 192.168.1.4 /*设置tftp服务器地址*/
hornet> tftpboot 0x80000000 abc.bin /*下载刷机固件*/
eth1 link down
dup 1 speed 100
Using eth0 device
TFTP from server 192.168.1.4; our IP address is 192.168.1.1
Filename 'abc.bin'.
Load address: 0x80000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######################################################
done
Bytes transferred = 3932160 (3c0000 hex) /*成功下载固件,记住括号里文件的大小,我这里刷的是官方的*/
hornet> erase 0x9f020000 +0x3c0000 /*擦除Flash,以0x9f020000为起点,往后0x3c0000个内存单位的空间,注意+号前面有空格*/
First 0x2 last 0x3d sector size 0x10000 61
Erased 60 sectors
hornet> cp.b 0x80000000 0x9f020000 0x3c0000 /*从0x80000000写入固件到0x9f020000,大小为0x3c0000*/
Copy to Flash... write addr: 9f020000
done /*刷机成功!*/
/*以上是刷机时的全程TTL信息*/
上述过程远没有想象的那么顺利。刚开始的时候一直重复Loading,网上也有很多认遇到了同样的问题,解释的理由也是千奇百怪。比如要关闭防火墙等等。这些方法都没有能够解决我的问题,最终原因是因为网线坏了。坑爹!
上述TTL刷机的方法同时也是救砖的方法。被刷成砖一般都是因为操作系统坏了。只要uboot是好的一般都可以救回来。但即使是uboot坏了也同样有方法可以救回来,只是更加复杂而已。