刷openwrt变砖
最近一直在openwrt上搞开发,不停的刷flash。一不留神,编译参数设错了,刷完后AP直接变砖。
还好的是,u-boot自带tftp,还有补救的机会。
openwrt编译的结果通常有3种:
ap-factory.bin
ap-sysupgrade.bin
ap-tftp.bin
ap-factory.bin用于将ap从厂家固件(firmware)刷成openwrt,这通常是首次刷机时用的
一旦AP已经被刷成openwrt,以后再刷时,只要使用ap-sysupgrade.bin就可以了
而ap-tftp.bin就是用于刷机失败后,通过tftp恢复的版本。
AP在启动的最初阶段(不同类型的设备时长不同,有的几秒,有的几十秒),会打开tftp服务,此后有一个很短的时间片段(通常只有很短的几秒钟),这个时间片段叫"TFTP Transfer Window".
我们可以在这个时间段内迅速的将ap-tftp.bin通过tftp刷进AP。
具体做法是:
在PC上,我的环境是debian:
arp -s ip_address mac_address
其中ip_address是AP默认的启动IP地址,mac_address是默认的MAC地址,这个一定要根据你的AP型号在openwrt网站上查清楚。
arp -s命令是为了在没有DHCP的环境时,简化数据交换的配置。
这个ip_address仅仅在AP启动最初阶段有效,一旦正式启动后续的firmware后,会变成成你在AP内平时设置的ip地址。
然后使用:
curl -T ap-tftp.bin tftp://ap_adress
很多人使用默认的tftp客户端,这个软件很难准确得把握住"TFTP Transfer Window"时间段正好开始tftp传输,错过这个时间窗口就会刷机失败。
用curl就好多了,先启动了这个curl命令后,再重启(断电/上电)AP,curl会不断尝试链接AP的tftp服务,一旦链接成功,立刻自动上传firmware,成功几率很高。
另外,在通过tftp刷机时,最好不要直接把PC用网线插到变砖的AP上,这是因为目前PC网卡大多有1000MB传输能力,刷机须要降到100MB,所以再找一个100MB的小hub,把PC和AP用网线都接到这个hub上。
当然也可以通过系统命令把PC的网口降到100MB,但没使用hub做中介来的方便。 HOPE太小气了,才0.2分! 技术分 +3
页:
[1]