BUFFALO WHR-AM54G54 無線ブロードバンドルータにDD-WRTをインストールすると、802.11aのLEDが点灯しなくなり、802.11b/gのLEDも最初に通信が行われるまで点灯しない。
このLEDをWifiに接続された機器がある時のみ点灯するように、スクリプトを作成してみる。
DD-WRTのWeb設定画面より、管理 → コマンド実行 のタブを開き、実行コマンドの入力欄に次のシェルスクリプを入力して「起動時スクリプトとして保存」を押す。
#!/bin/sh
# get interface name associate with wifi ch-0 and ch-1
WL0_NAME=`nvram get wl0_ifname`
WL1_NAME=`nvram get wl1_ifname`
WAN_NAME=`nvram get wan_ifname`
while sleep 1;do
# 802.11b/g LED
if [ -z `wl -i $WL0_NAME assoclist` ]
then
/sbin/gpio enable 3
else
/sbin/gpio disable 3
fi
# 802.11a LED
if [ -z `wl -i $WL1_NAME assoclist` ]
then
/sbin/gpio enable 2
else
/sbin/gpio disable 2
fi
# Bridge LED on by wan interface traffic
TRANS=`ifconfig $WAN_NAME|grep bytes`
if [ "$TRANS" != "$TRANS_PREV" ]
then
/sbin/gpio disable 1
else
/sbin/gpio enable 1
fi
TRANS_PREV=$TRANS
done
ちなみに、$WL0_NAME = eth1, $WL1_NAME = eth2, $WAN_NAME = vlan1 が設定される。
どの変数に、何の値がセットされているのかは、
# nvram show
というコマンドで表示できる。
詳しくは、DD-WRTのスクリプト マニュアル
・Hardware (nvramコマンドについて説明)
・Wl command
・Script Execution
・LED Scripts