OpenWRT、dd-wrt自設定路由按鈕功能

相信不少的路由器都有類似WPS/AOSS之類的按鈕,如果你覺得它沒多大用途的話,不妨嘗試賦予它自定義的功能。之前的文章介紹了如何自動定時關閉WIFI減少輻射,而這次將介紹如何方便地手動人手控制開關WIFI爲例子。
wzr-300hp-openwrt-ddwrt-button

看到途中星星處就是一個可以撥上撥下的開關,我就利用它撥上去就是打開WIFI,撥下去關閉。

1、找出按鈕的代號

根據OPENWRT WIKI去準備:

http://wiki.openwrt.org/doc/howto/hardware.button#preliminary.steps

首先修改 “/etc/hotplug2-common.rules”, 去掉button前的^符號

然後建立一個“/etc/hotplug.d/button”文件,copy wiki的內容進去,然後在SSH控制臺中按”logread”命令檢查

這個準備步驟的目的是查找出你的按鈕對應的名稱,例如BTN_1, BTN_2,然後是撥上是press狀態還是release狀態等等,方便之後編程。

2、設置按鈕的功能

有一個叫00-button的script可以方便大家運用UCI(相當於DD-WRT的NVRAM的物體)去方便地設置按鈕執行的命令。按WIKI去用wget命令獲得這個00-button script再按其指引copy and paste修改:

http://wiki.openwrt.org/doc/howto/hardware.button#using.atheros.00-button.uci

進行測試:

uci add system button    
uci set system.@button[-1].button=BTN_1 (改成你需要修改的按鈕名字)
uci set system.@button[-1].action=pressed (你需要的按鈕狀態)
uci set system.@button[-1].handler='logger BTN_1 pressed'
uci commit system

然後用logread檢查是否有BTN_1 pressed字句,如果有,證明script運作正常。

然後把logger BTN_1 pressed 換成你需要執行的命令,例如關閉WIFI
uci set system.@button[-1].handler='uci set wireless.@wifi-device[0].disabled=1 && wifi'
然後再用uci add加入一段是打開WIFI的,把pressed變成release,disable=1改成disable=0就成了!
~
另附DD-WRT的按鈕修改方法:
http://www.dd-wrt.com/wiki/index.php/SES_Button (dd-wrt我只試過SES/WPS/AOSS那個按鈕能自定義,上圖紅圈那個上下撥的按鈕如何自定義我沒有經驗)
~
祝大家成功!

最后,Upsangel爲大家奉上玩轉路由器附加強大功能的攻略(架設vpn server,共享printer,scanner, 離線BT等),請參考小弟在hkepc的得獎文章:OpenWRT, DD-WRT資源彙總索引 - http://www.hkepc.com/forum/viewthread.php?tid=2025967&extra=page%3D1

Leave a Reply