Habilite las luces de fondo del teclado en Lenovo compatible (por ejemplo, Carbon X1) con el comando

18

Algunas computadoras portátiles Lenovo tienen retroiluminación del teclado y se pueden encender con Fn+ Space. Hay tres estados: apagado, normal y brillante.

Cuando inicio Ubuntu, estas computadoras portátiles siempre vuelven al brillo de la pantalla solar y el teclado se apaga.

Quiero un brillo medio y las luces del teclado encendidas de forma predeterminada, porque generalmente uso esta computadora portátil en entornos oscuros.

La luz de fondo es fácil. Internet está lleno de información sobre esto.
echo 10 > /sys/class/backlight/acpi_video0/brightness

Pero, ¿cómo enciendo las luces de fondo del teclado con un comando? He estado buscando aquí pero parece que no hace nada:
/sys/class/leds/tpacpi\:\:thinklight


Actualizaciones

Lo intenté for i in {1..32}; do xset led $i; donepero nada cambia. ¿Quizás la retroiluminación del teclado para las computadoras portátiles Lenovo tiene un controlador propietario y solo se puede controlar tpacpi?

También intentado for i in $(find /sys/devices/platform/thinkpad_acpi/leds/ | grep /brightness\); do echo 255 > $i; doneen vano.

Redsandro
fuente
Ya sea xset led (es casi 100% probable que sea Bloq Mayús, etc., pero lo agregaré de todos modos) o setleds. Editar: Encontré esto
Wilf
No funciona Lo intenté for i in {1..32}; do xset led $i; donepero nada cambia.
Redsandro

Respuestas:

8

Parece que esto se ha actualizado, mi X1C con ubuntuMATE 16.04 LTS tiene

/sys/class/leds/tpacpi\:\:kbd_backlight/brightness

que funciona como se esperaba, es decir:

# echo 2 > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness

Trae a la luz :)

wuxmedia
fuente
Oye, sí, de hecho! Gracias por tomarse el tiempo para compartir esto con una vieja pregunta. :)
Redsandro
1
No hubieron problemas, fue el primer golpe cuando yo estaba buscando, pensó que no puede ser que dura, por lo que pensé que debería actualizar éste con mis resultados :)
wuxmedia
14

¡Esto es realmente necesario para solucionarlo!

Creo que este es un error común en los nuevos thinkpads. Si enciende el teclado manualmente fn + space, ejecute:

echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness

el teclado se desvanecerá. Consulte el siguiente enlace si le ayuda:

http://www.spinics.net/lists/ibm-acpi-devel/msg03090.html

rashad
fuente
Hola tienes razón, no lo sabía. Dado que podemos apagarlo, 'se siente' como si fuera muy fácil arreglar esto para los desarrolladores. ¿Ya hay un informe de errores?
Redsandro
El correo electrónico sugirió esta solución alternativa: gist.github.com/hadess/6847281 ¿ Alguna idea de cómo podemos implementarlo?
rashad
4

Este es el script bash que uso:

https://gist.github.com/vzaliva/0adba7bc40e2f31a0b5f802af2a63267

Funciona en IBM ThinkPad X260 con Ubuntu 16.04.

krokodil
fuente
IBM? ¡Esa computadora portátil debe tener al menos 10 años! ¡Pero también funciona en mi Carbon X1! Para ser justos, el código de hadess respondido por rashad hizo lo mismo, pero no quiero seguir 5 pasos e instalar compiladores. Estaba buscando un simple comando bash. Y esto es algo que puedo usar. Gracias por responder a mi pregunta de 3 años. Aceptado.
Redsandro
Me alegra que lo hayas encontrado útil. Por supuesto, me refería a Lenovo Thinkpad y mi X260 es completamente nuevo. Simplemente tuve el mismo problema y encontré esta respuesta, pero no me gustó el programa C, que también requiere modprobe manual, así que lo reescribí como un script. Los autores originales del programa C hicieron todo el trabajo pesado.
krokodil
3

Ok, funciona bien conmigo con esta esencia:

https://gist.github.com/hadess/6847281

  • En primer lugar, descargue la esencia anterior, le cambié el nombre a en ThinkLight.clugar detmp.c .
  • Asegúrese de tener instalado glib-2.0:

    sudo apt-get install libglib2.0-dev
    
  • Compilar de ThinkLight.cla siguiente manera:

    gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ThinkLight.c -o ThinkLight -lglib-2.0
    
  • Cargar ec_sysmódulo (esto se puede agregar al /etc/modulesinicio):

    sudo modprobe ec_sys
    
  • Finalmente ejecutar ThinkLightcon argumento de nivel (0, 1 o 2):

     sudo ./ThinkLight 0
     sudo ./ThinkLight 1
     sudo ./ThinkLight 2
    

¡Un agradecimiento especial a hadess por hacer que esto suceda!

rashad
fuente
¿Alguna idea de cómo ejecutar esto sin sudo? Intento ejecutar esto dentro de otro script, y eso se ejecuta como mi usuario.
zsquare
Intenté esto y obtuve algunos errores :( ThinkLight.c: En la función 'main': ThinkLight.c: 56: 6: advertencia: declaración implícita de la función 'lseek' [-Wimplicit-function-declaración] if (lseek (fd, 0xd, SEEK_CUR) <0) {^ ~~~~ ThinkLight.c: 60: 6: advertencia: declaración implícita de función 'write' [-Wimplicit-function-declaración] if (write (fd, & niveles [nivel], 1 ) <0) {^ ~~~~
Heriberto Juarez
@HeribertoJuarez esta es una respuesta anterior, puede manipular esto directamente con los nuevos núcleos de Linux. Verifique la respuesta de
wuxmedia
1

Mi T450s no volvería a habilitar la retroiluminación del teclado al reanudar con núcleos anteriores a 4.6. FWIW, con 4.6 ahora, la luz de fondo del teclado está configurada con el brillo que tenía antes de suspender.

bk138
fuente