其實前一篇只以 "wlc radio 1/0" (相當於 "wl radio on/off") 管理無線開關的做法可能並不完全, 只不過原先擔心的是如果修改了 "wireless.wl0.disabled", 然後其他程式又執行 "uci commit wireless", 那麼下次啟動可能就不會啟用無線 (WLAN LED 滅), 容易被誤以為無線有問題, 但這回小弟加了一項啟動指令, 以PWR LED 代表無線狀態, 閃爍代表無線關閉以及無線開關作用中, 那就前後一致了
/sbin/woggle
語法:
#!/bin/sh
if [ "`uci get wireless.@wifi-device[0].disabled`" = 1 ]; then
uci set wireless.@wifi-device[0].disabled=0 && wifi && \
echo 1 > /proc/diag/led/power
else
uci set wireless.@wifi-device[0].disabled=1 && wifi && \
echo f > /proc/diag/led/power
fi
/etc/hotplug.d/button/01-radio-toggle
語法:
#!/bin/sh
if [ "$BUTTON" = reset ] && [ "$ACTION" = pressed ] && [ "$SEEN" -gt 2 ]; then
/sbin/woggle &
fi
/etc/init.d/custom-user-startup
語法:
#!/bin/sh /etc/rc.common
START=98
start() {
if [ "`/sbin/uci get wireless.@wifi-device[0].disabled`" = 1 ]; then
( /sbin/wifi down && echo f > /proc/diag/led/power ) &
fi
}
輸入完畢請執行:
語法:
chmod +x /sbin/woggle
chmod +x /etc/hotplug.d/button/01-radio-toggle
chmod +x /etc/init.d/custom-user-startup
由於 /etc/rc.d/S95done 會設定PWR LED 正常狀態, 所以/etc/init.d/custom-user-startup "START" 數值必須大於95, 編輯完畢請執行:
語法:
/etc/init.d/custom-user-startup enable
/etc/init.d/custom-user-startup start
以上指令會產生 /etc/rc.d/S98custom-user-startup
本篇和前一篇主要不同之處就是盡量遵循Kamikaze 所使用的組態和指令, 以便相容於不同平台和不同設定, 但是小弟並不確定Atheros 平台的LED 控制方式是否透過GPIO, 請參考 /etc/diag.sh 或 /etc/init.d/done
Wifi Toggle Script - OpenWrt Wiki (新版WifiToggle)
Wireless configuration - OpenWrt Wiki
書籤