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/配置文件也没成功。
参考,提供一个比较底层的方法,可能WiFi Toggle也是这么做的吧,思路是:
首先,增加一个用于跟踪热插拔事件的句柄,在按钮按下时触发。其次,增加一段开关WiFi的脚本,根据当前的WiFi状态开启或是关闭WIFI。
步骤:
一、开关脚本
在目录/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来赋予它可执行属性。
二、创建热插拔事件
在/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的命令来实现。
四、其他
WPS按键在Backfire版本中的名称为BTN_1,在Trunk版本中的名称为wps。
WPS功能我实在用不到,配置好像略复杂,也没仔细研究。我是把WPS按钮用作测试一个锐捷认证的功能了,当然我觉得用它来执行reboot也是不错的选择,方法请自行参考WiFi开关那部分照猫画虎……