linux修改led中颜色,linux – 如何使用`udev`更改/ sys中的权限以改变LED /灯的状态?...

我有一台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,permissions,udev,thinkpad

来源: https://codeday.me/bug/20190809/1629042.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值