Thinkpad가 있는데 Jabber 메시지 수신에 ThinkLight (키보드를 켜도록 설계된 화면 위의 흰색 플래시 표시 등)를 사용하고 싶습니다.
/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
도와 주셔서 감사합니다. 아니면 다른 솔루션 일 수도 있습니다.
답변
그룹 구성원 leds
에게 모든 LED에 대한 액세스 권한을 부여하기 위해 다음과 같이 두 개의 udev 규칙을 사용하고 있습니다 .
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=="change"
동적으로 생성 된 속성을 처리 하려면 규칙이 필요합니다. 예를 들어, 경우 LED의 트리거는 “타이머”(로 설정 echo timer > trigger
), 다음 추가 특성 delay_on
및 delay_off
생성됩니다. change
이 새로운 속성이 자신의 그룹과 권한이 설정 가질 수 있도록 조치가 지정됩니다.
change
에 글 0
을 작성하여 LED가 꺼질 때마다 이벤트가 생성되는 것을 알았 습니다 /sys/class/leds/.../brightness
. 밝기가로 설정 될 때마다 Linux LED 드라이버 코드 지우기 트리거로 인한 것 같습니다 0
. 그렇기 때문에 ENV{TRIGGER}!="none"
LED가 꺼질 때마다 규칙이 트리거되는 것을 방지하기 위해 두 번째 규칙에 조건이 있습니다.
답변
‘케르 넬’설정이 잘못되었다고 생각합니다. udev 규칙을 작성하고 디버깅하기위한이 멋진 문서에서 :
http://www.reactivated.net/writing_udev_rules.html#basic
KERNEL = brightness, 아마도 SUBSYSTEM = leds가 필요하다고 생각합니다
그런 다음 배포판에 inotify 지원이 부족한 경우. udevd가 변경 사항을보고 있는지 확인하십시오.
# udevcontrol reload_rules