Tengo un Thinkpad y me gustaría usar ThinkLight (la luz de flash blanca sobre la pantalla diseñada para iluminar el teclado) para notificaciones de mensajes entrantes de Jabber.
Es fácil de realizar, ya que uno solo necesita cambiar /sys/class/leds/tpacpi::thinklight/brightness
a 255. Lo haré con un simple script Bash, que dejará que la luz parpadee tres veces.
Pero para poder hacer esto, necesito cambiar los permisos, que no solo la raíz puede cambiar este archivo.
Y no quiero sudo chmod o+w /sys/class/leds/tpacpi::thinklight/brightness
después de cada arranque.
Creo que la mejor solución es usar udev
esto. Sin embargo, nunca lo he usado udev
antes y estoy bastante confundido por los tutoriales que encontré en línea.
Probé esta udev
regla:
KERNEL=="tpacpi::thinklight", MODE="0666"
tanto como
KERNEL="thinklight", MODE="0666"
Pero no funciona. Aunque no obtengo errores mientras ejecutoudevadm test /class/leds
Gracias por cualquier ayuda y éxitos. O tal vez otras soluciones.
fuente
Respuestas:
Estoy usando dos reglas de udev de la siguiente manera, para dar a los miembros del grupo
leds
acceso a todos los LED:Tenga en cuenta que la
ACTION=="change"
regla es necesaria para manejar atributos creados dinámicamente. Por ejemplo, si el gatillo del LED se ajusta a "temporizador" (echo timer > trigger
), luego atributos adicionalesdelay_on
ydelay_off
se crean. Lachange
acción se especifica para que estos nuevos atributos tengan su grupo y permisos establecidos.Me di cuenta de que
change
se genera un evento cada vez que se apaga el LED escribiendo0
a/sys/class/leds/.../brightness
. Esto parece deberse a que el código del controlador LED de Linux desencadena los activadores cada vez que se configura el brillo0
. Es por eso que la segunda regla tiene laENV{TRIGGER}!="none"
condición, para evitar que la regla se active cada vez que se apaga un LED.fuente
Creo que tienes la configuración incorrecta 'KERNEL'. De este impresionante documento para escribir y depurar reglas de udev:
http://www.reactivated.net/writing_udev_rules.html#basic
Creo que necesitas KERNEL = brillo, y quizás un SUBSISTEMA = leds
Luego, en caso de que su distribución carece de soporte inotify. Asegúrese de que udevd esté viendo sus cambios:
fuente