linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1404字,纯文字阅读大概需要3分钟。
内容图文
![linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?](/upload/InfoBanner/zyjiaocheng/959/852e6ad28ee04e4595ed2a945232b24c.jpg)
我有一台Thinkpad,想要使用ThinkLight(用于点亮键盘的屏幕上方的白色闪光灯)来接收有关传入Jabber消息的通知.
很容易实现,因为只需要将/ sys / class / leds / tpacpi :: thinklight / brightness更改为255.我将使用一个简单的Bash脚本来完成它,它会使灯闪烁三次.
但是为了能够做到这一点,我需要更改权限,不仅root能够更改此文件.
并且我不想在每次启动后sudo chmod o w / sys / class / leds / tpacpi :: thinklight / brightness.
我认为,最好的解决方案是使用udev.但是,我之前从未使用过udev,而且我对在网上找到的教程感到很困惑.
我试过这个udev规则:
KERNEL=="tpacpi::thinklight", MODE="0666"
以及
KERNEL="thinklight", MODE="0666"
但它不起作用.虽然我在运行udevadm test / class / leds时没有收到错误
感谢您的帮助和点击.或者其他解决方案.
解决方法:
我正在使用以下两个udev规则,以便让组leds成员访问所有LED:
SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
SUBSYSTEM=="leds", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
请注意,需要ACTION ==“更改”规则来处理动态创建的属性.例如,如果LED的触发器设置为“定时器”(echo timer>触发器),则创建额外属性delay_on和delay_off.指定更改操作,以便这些新属性设置其组和权限.
我注意到每次关闭LED时都会产生一个更改事件,方法是将0写入/sys/class/leds/…/brightness.这似乎是由于每当亮度设置为0时,Linux LED驱动程序代码清除触发器.这就是为什么第二条规则具有ENV {TRIGGER}!=“none”条件,以防止每次LED转动时触发规则关闭.
内容总结
以上是互联网集市为您收集整理的linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?全部内容,希望文章能够帮你解决linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。