网件WNDR3700v2刷OpenWrt后的高级设置和救砖
20200423更新:增加“救砖”一节。
20120930初稿:初稿。
WNDR3700是网件NETGEAR旗下的经典款无线路由器。4个千兆网口+2.4G/5G双频+USB接口,双频均支持300Mbps,WIFI和电源均有独立开关。
虽然放到现在看来,性能已经没法跻身高端路由器的前几名了,但是再怎么说也是曾经的“世界最强”,该有的特性基本齐全。尤其是v2版本AR7161/64M/16M的配置,刷个OpenWrt,一般用途还是完全能够满足的。
下面结合自己玩路由器的经验,简单谈下这款路由器刷了OpenWrt之后有哪些必须的设置。因为感觉WNDR3700刷Backfire10.03.1之后,默认的几个设置比较别扭,可能是官方编译镜像的时候没有一一针对每款路由单独设置。因此这里讨论一下如何进行几个必要的设置使你的WNDR3700用起来更舒服。旨在普及,高手勿喷……
讨论局限于以下的范围:
硬件:Netgear WNDR3700 V2
系统:OpenWrt Backfire 10.03.1 Final
范围:基本的一些设置LuCi界面已经做得很好了,因此这里不讨论那些不需要下载软件包且通过LuCi就能完成的设置,请自行摸索。
一、交换机LED指示灯的设置
WNDR3700交换机LAN口1-4每个端口都有橘黄色和绿色两个LED,而且可以闪烁。网件原生的固件对于这4个交换机端口的LED定义为:
- 10/100Mbps连接亮橘黄色,有数据传输时闪烁;
- 1000Mbps连接亮绿色,有数据传输时闪烁;
感觉网件官方的设置比较合适,但是刷OpenWrt后,这4个交换机LED只能亮橘黄色。因此需要重新配置。方法为:
swconfig dev rtl8366s port 1 set led 6
swconfig dev rtl8366s port 2 set led 9
WLAN口只有橘黄色的LED,不要妄想……
二、USB LED指示灯的设置
首先需要一个安装一个软件包(kmod-leds-wndr3700-usb)来支持WNDR3700的USB LED。可以在LuCi界面的System - Software中安装,我还是比较习惯用命令行模式:
- SSH到你的路由器
- opkg update
- opkg install kmod-leds-wndr3700-usb
之后可以在LuCi的System - LED Configuration中控制USB LED的默认状态。如果你希望插入USB设备的时候指示灯点亮,卸载之后熄灭,需要进行如下配置:
增加一个入口 '/etc/hotplug.d/usb/10-usb',内容如下:
#!/bin/sh # Copyright (C) 2009 OpenWrt.org case "$ACTION" in add) # update LEDs echo "255" >/sys/devices/platform/wndr3700-led-usb/leds/wndr3700:green:usb/brightness ;; remove) # update LEDs echo "0" >/sys/devices/platform/wndr3700-led-usb/leds/wndr3700:green:usb/brightness ;; esac
LED现在应该可以随着USB设备的插入/卸载而变化。请不要妄想更多功能,比如随着USB设备的读写而闪烁……
三、WiFi开关按钮
WNDR3700默认是提供了WiFi开关的,原生固件也支持这个功能。对于比较在意辐射什么的人来说,这是个不错的功能。当然从安全性角度来讲也很好!
有资料称只这款路由器需要安装Wifi Toggle软件包后,路由器就能够自动支持WiFi开关的功能。但是我在 Back Fire, Trunk 和 Attitude Adjustment 版本上都尝试了,似乎都不行。尝试改了改/etc/wifitoggle/配置文件也没成功。
参考http://wiki.openwrt.org/doc/howto/wifitoggle,提供一个比较底层的方法,可能WiFi Toggle也是这么做的吧,思路是:
首先,增加一个用于跟踪热插拔事件的句柄,在按钮按下时触发。其次,增加一段开关WiFi的脚本,根据当前的WiFi状态开启或是关闭WIFI。
步骤:
3.1 开关脚本
在目录/sbin下创建一个名为woggle的文件,把下面的代码粘贴进去:
#!/bin/sh case "$(uci get wireless.@wifi-device[0].disabled)" in 1) uci set wireless.@wifi-device[0].disabled=0 wifi echo 1 > /proc/diag/led/ses_white ;; *) uci set wireless.@wifi-device[0].disabled=1 wifi echo 0 > /proc/diag/led/ses_white echo 2 > /proc/diag/led/wlan ;; esac
使用命令chmod +x /sbin/woggle
来赋予它可执行属性。
3.2 创建热插拔事件
在/etc/hotplug.d位置创建一个目录,名为button,然后在/etc/hotplug.d/button下创建名为01-radio-toggle的文件:
#!/bin/sh if [ "$BUTTON" = "ses" ] && [ "$ACTION" = "pressed" ] ; then ( sleep 1; /sbin/woggle ) & fi
现在,每次你想开关WIFI时就可以通过按按路由器上的按钮来实现了!当然,你也可以通过在OpenWrt shell中调用一个名为woggle的命令来实现。
3.3 其他
WPS按键在Backfire版本中的名称为BTN_1,在Trunk版本中的名称为wps。
WPS功能我实在用不到,配置好像略复杂,也没仔细研究。我是把WPS按钮用作测试一个锐捷认证的功能了,当然我觉得用它来执行reboot也是不错的选择,方法请自行参考WiFi开关那部分照猫画虎……
四、WNDR3700的TFTP救砖操作
网件WNDR3700v2内置了“刷不死”功能,桶reset复位键的同时开电源会进入TFTP修复状态,注意观察电源指示灯,要一直按住复位键直到电源指示灯从开机时的橙色常亮(持续20S左右)变为橙色闪亮(持续10S左右),再转为绿色闪亮状态,此时,设备以192.168.1.1地址开启TFTP服务器。
使用TFTP客户端上传一个正确的*.img固件,例如:
tftp -i 192.168.1.1 PUT factory.img
文件传送完毕后,从电源指示灯状态判断设备是否成功完成固件修复。电源指示灯状态由熄灭(持续1分钟左右)变为橙绿交替闪亮(持续1分钟左右),等到电源指示灯变为橙色常亮,说明固件上传过程已完成。稍后,设备将以新固件启动运行。
具体可以参考Netgear网件论坛的帖子:http://club.ntgrchina.cn/Knowledgebase/Document_detail.aspx?Did=945
如果是OpenWrt的固件,首次开启可能没有5G WiFi,按电源键关闭后再开启一次即可。
参考资料
[1] OpenWrt Wiki:http://wiki.openwrt.org/zh-cn/toh/netgear/wndr3700,网件WNDR3700的中文Wiki由本人创建于2012年8月7日。
[2] OpenWrt Wiki:http://wiki.openwrt.org/zh-cn/doc/howto/wifitoggle,该wifitoggle的How-to文档的中文版由本人创建于2012年11月21日。
[3] Netgear网件论坛:如何通过TFTP方式对WNDR3700v2进行固件修复
本文固定链接: https://blog.xieyc.com/how-to-setup-after-upgrading-netgear-wndr3700-to-openwrt/ | 小谢的小站