Go2X
发布于 2026-02-01 / 6 阅读
0
0

Cudy tr3000 Openwrt下的硬件Wifi开关设置与LED联动

功能目标:

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

完毕!


评论