TP-LINK 720N刷了OpenWRT后LED灯定时开关

TP-LINK 720N刷了OpenWRT后LED灯定时开关

参考链接:https://blog.wangmao.me/openwrt-timing-off-led-lights.html
因为家里有三台电脑,其中一台是笔记本,想共用一台打印机,所以在某宝上买一以台已经刷好 OpenWRT 的TP-LINK 720N做无线打印服务器。具体设置过程不说了,卖家会给你视频教程的。
到了晚上发现这路由器的电源灯挺亮的,会影响睡眠,就产生了设置一个定时开关灯的任务的想法,就在网上找到上面链接的资料作为参考。
在这里插入图片描述
根据资料,LED都是由/sys/class/leds下面的文件控制的,我查了一下,下面只有两个灯。

root@OpenWrt:~# ls /sys/class/leds
ath9k-phy0           tp-link:blue:system

前面那个估计是网络接口的LED灯,也可能是不存在的LED,不管它,我只要控制后面这个LED: tp-link:blue:system 。
路由器是根据这个文件的值来控制灯的亮还灭的:/sys/class/leds/tp-link:blue:system/brightness

root@OpenWrt:~# cat /sys/class/leds/tp-link\:blue\:system/brightness
1

文件brightness值为0时,灯灭,为1时灯亮。
我就据这个文件,新建了两个脚本,一个是:/etc/off_system_led.sh

root@OpenWrt:~# cat /etc/off_system_led.sh
#!/bin/bash
echo 0 > /sys/class/leds/tp-link\:blue\:system/brightness

另一个是:/etc/on_system_led.sh

root@OpenWrt:~# cat /etc/on_system_led.sh
#!/bin/bash
echo 1 > /sys/class/leds/tp-link\:blue\:system/brightness

我就先直接在路由器上运行一下,看看效果:

root@OpenWrt:~# /etc/off_system_led.sh
-ash: /etc/off_system_led.sh: not found

提示出错,查一下系统的默认的shell

root@OpenWrt:~# echo $SHELL
/bin/ash

原来默认的shell是ash,就把上面的两个脚本的bash改为ash,保存就可以了。

root@OpenWrt:~# cat /etc/off_system_led.sh
#!/bin/ash
echo 0 > /sys/class/leds/tp-link\:blue\:system/brightness

root@OpenWrt:~# cat /etc/on_system_led.sh
#!/bin/ash
echo 1 > /sys/class/leds/tp-link\:blue\:system/brightness

再次运行,就没有出错了。

root@OpenWrt:~# /etc/off_system_led.sh
root@OpenWrt:~# /etc/on_system_led.sh
root@OpenWrt:~#

下面就开始做个定时脚本吧

root@OpenWrt:~# crontab -e
*/10 22-23,0-7 * * * /etc/off_system_led.sh
0 8 * * *  /etc/on_system_led.sh

到了晚上10点半后才发现有问题,灯还是在亮着,因为孩子要早睡,就先拿条毛巾把这灯给盖着,第二天再去搞。
第二天通过web登录路由器发现这时间不对,就先把这时区改成中国的,再设定好NTP服务器,让路由器自动更新时间。顺便说说,也可以点同步浏览器时间,即时更正时间,但如果不设置NTP服务器,重启后时间又不准了。具体请看图:
在这里插入图片描述
还有就是路由器自带的NTP服务器好像不能使用,请改作国内的NTP服务器。
经过修改上面定时开关的时间进行即时的测试,显示成功。改为正常10点关灯的脚本,到了晚上10点,终于按时灭了灯,第二天早上8点,也按开了灯,终于成功解决的我的问题。
(4月22日)补充:我刚发现,参考的资料跟我的需求是有区别的,他的需求是定时开关所有的灯,我的需求是关闭系统电源灯。他的路由器不同,有多个网口的指示灯要控制,这些灯很容易关闭后会因为各种原因被自动开启,所以他设定为每分钟关闭一次,我的路由器没有这些灯,主要是控制电源灯,不会被自动开启,所以定时任务可以改为:

root@OpenWrt:~# crontab -e
0 22 * * * /etc/off_system_led.sh
0 8 * * *  /etc/on_system_led.sh

经测试,在需要关闭的时间段没发现自动开启的情况。
以下为2021-6-2增加:
使用了段时间又出现了灯不按时关闭或开启的情况,登录管理界面发现是日期时间没有同步,应该是当时我同步了浏览器的时间,NTP根本没有生效。
在这里插入图片描述

查看ntpd有没有运行:
在这里插入图片描述
可以看到,ntpd是有运行的。在往上第二个图片内可以看到ping不通百度的网址,基本上可以确定是DNS是问题,开始我简单的修改了resolv.conf,加入自己的DNS,确认有用,但重启或等一段时间,就变回了原样:
在这里插入图片描述
再上网查了一下资料,在这个链接找到了个方法,一试果然有用:http://blog.sina.com.cn/s/blog_af853efb0102wp65.html
我只据所说的方法的第2步,增加了配置文件resolv.dnsmasq.conf:
在这里插入图片描述
从上图可以看到resolv.conf我是没有去改动的,因为还没找到方法,我增加了一个配置文件,把自己的DNS输进去,用/etc/init.d/dnsmasq restart重启dns服务,再ping百度,已经没有问题了,再查日期时间,已经同步。
在这里插入图片描述
在这里提醒一下,网上查到不少教程是说通过 crontab定时运行 ntpd或ntpdate来更新时间,我觉得是有问题的,除非你使用的ntp站点的IP,而不是网址。但很多情况下IP是会变动的,而网址是不会变的。


希望能帮助到需要的人,谢谢阅读!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值