User Tools

Site Tools


zh-cn:doc:howto:wifitoggle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

zh-cn:doc:howto:wifitoggle [2012/11/21 02:50] (current)
Line 1: Line 1:
 +
 +====== Wifi Toggle ======
 +
 +:!: **软件包'​wifitoggle'​可以实现和这些代码相同的功能**
 +
 +利用下面的脚本,可以用SES按钮来开关WIFI。首先,增加一个热插拔事件的句柄,用以反映按钮按下事件。其次,增加一段开关脚本,根据当前状态来开启或是关闭WIFI。
 +
 +注意: 如果你使用加密的无线网络,nas和radius守护进程在开关时并不真正关闭,而是继续占用cpu和内存资源。但这并不消耗太多的资源,因为根本没有客户端接入。
 +
 +===== 开关脚本 =====
 +
 +在目录''/​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''​的命令来实现。
  
zh-cn/doc/howto/wifitoggle.txt · Last modified: 2012/11/21 02:50 (external edit)