功能目标:
Cudy tr3000已刷Openwrt 24.10.5系统,需要将机身自带的滑动开关设置为Wifi开关,并联动LED灯显示 - Wifi关闭机身指示灯熄灭,Wifi开启则指示灯长亮。
实现方法:
采用hotplug button方式。Procd方式经测试未能实现。
开始之前先确认安装了必要组件:
opkg update
opkg install kmod-button-hotplug
第一步,
/etc/hotplug.d/button/ 下建立一个20-slider-wifi的文件,赋予可执行权限,文件内容如下:
#!/bin/sh
[ "$BUTTON" != "BTN_0" ] && exit 0
logger "Slider event: $ACTION seen=$SEEN"
LED_PATH="/sys/class/leds/white:status/brightness"
case "$ACTION" in
pressed)
uci set wireless.radio1.disabled='1'
echo 0 > $LED_PATH
;;
released)
uci set wireless.radio1.disabled='0'
echo 1 > $LED_PATH
;;
esac
uci commit wireless
wifi reload
第二步,
/etc/rc.local 文件中写入如下内容(这部分主要是为了实现系统重启后LED灯状态与Wifi开关保持一致,否则在Wifi关闭情况下重启设备后指示灯不会熄灭。采用循环脚本的原因是某些系统组件在启动过程中会打开LED灯,所以循环检测并设置一分钟,以确保指示灯状态正确体现。):
(
for i in $(seq 1 30); do
RADIO1_DISABLED=$(uci -q get wireless.radio1.disabled)
LED_PATH="/sys/class/leds/white:status/brightness"
if [ "$RADIO1_DISABLED" = "1" ]; then
echo 0 > "$LED_PATH"
else
echo 1 > "$LED_PATH"
fi
sleep 2
done
) &
exit 0
完毕!