¿Por qué mi control de brillo Thinkpad omite los pasos?

15

El problema: hay 16 niveles de brillo en mi computadora portátil, pero al presionar teclas de acceso rápido Fn+Home, se Fn+Endajusta el brillo de 3 pasos a la vez (por ejemplo, de 0 a 3 o de 15 a 12).

Me parece importante notar que en la pantalla de inicio de sesión las teclas de acceso rápido funcionan bien . Pero después de iniciar sesión, aparece ese comportamiento extraño.

Además, si me concentro en un menú (por ejemplo, haga clic en el menú Archivo en Firefox), las teclas de acceso rápido funcionan bien .

xdotool key XF86MonBrightnessDownfunciona bien, ajustando el brillo en 1 paso (marcado con cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness).

También instalé indicator-brightness: muestra 16 niveles (0-15).

Intenté configurar acpi_backlight=vendoren grub (inspirado en este tema: http://ubuntuforums.org/showthread.php?t=1909184 con un problema similar). Funcionó en que las teclas de acceso rápido funcionaban bien. Pero surgieron problemas con la notificación OSD, xdotool y el indicador de brillo. Así que creo que no es una solución correcta.

Parece que después de iniciar sesión, algo interfiere en el esquema de procesamiento de teclas de acceso rápido. ¿Algunas ideas?

Editar (información adicional)

  • Observé que las teclas de acceso rápido funcionan a nivel de hardware: puedo ajustar el brillo inmediatamente después de encender mi computadora portátil (por ejemplo, en la pantalla del BIOS).

  • Después de las $ killall gnome-settings-daemonteclas de acceso rápido, ajuste el brillo en un paso, pero no aparecen notificaciones. En breve se gnome-settings-daemonrecupera, y el problema de triple paso vuelve.

  • acpi_listen da el siguiente resultado (ambas teclas secuencialmente):

    $ acpi_listen
    ibm/hotkey HKEY 00000080 00001010
    video LCD0 00000086 00000000
    ibm/hotkey HKEY 00000080 00001011
    video LCD0 00000087 00000000
    

    En este punto, pensé que (1) las teclas de acceso rápido funcionan a nivel de hardware; (2) ibm/hotkeycuida las teclas de acceso rápido; (3) también videose cuida. Por lo tanto, aparece el problema del triple paso.

    Intenté poner un video en la lista negra (esperaba que esto condujera a un comportamiento de doble paso), pero nada cambió.

Como solución alternativa, creé mis propias teclas de acceso rápido en CompizConfig Settings Manager, como se describe aquí , pero con --clearmodifiersargumento:

xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown

Así que ahora puedo usar teclas de acceso rápido iniciales o nuevas para ajustes más precisos.

Preguntas abiertas

Ya hubo discusión para el caso con doble paso: Lenovo ThinkPads, las teclas de función de brillo hacen dos pasos en lugar de uno, buscando una solución :

el hardware simplemente lo hace y luego envía una señal que dice que se ha presionado el botón. ¿Posiblemente podría desactivar el atajo en Sistema -> Preferencias -> Atajos de teclado para esta acción?

Pero estoy ansioso por saber

  1. ¿Por qué recibo un problema de triple paso?
  2. ¿Cómo puedo desactivar el procesamiento de estas teclas de acceso rápido?

Estaría muy agradecido si alguien lo explicara.

Andrey
fuente

Respuestas:

14

¿De dónde vienen los 3 pasos para 1 pulsación de tecla?

Obtiene tres pasos de brillo para una pulsación de tecla porque:

  1. El controlador estándar de ACPI / video ajusta el paso 1
  2. El thinkpad_acpicontrolador le dice al BIOS que ajuste el paso 2 pero aún reenvía el evento de pulsación de tecla
  3. El demonio de energía de GNOME intercepta esta pulsación de tecla y le dice a ACPI que vuelva a ajustar el paso 3

1. Desactive el controlador de video para que no ajuste el brillo por sí solo

Esto elimina uno de los tres pasos (paso 1) anteriores.

  • Abre la terminal
  • Tipo sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • Prueba, ahora deberías tener control de brillo en pasos de dos
  • Para deshabilitar esto automáticamente al iniciar, abra /etc/rc.localen su editor favorito y antes de la última línea ( exit 0), agregue:

    echo -n 0> / sys / module / video / parameters / shine_switch_enabled

2. Vuelva a compilar el thinkpad_acpimódulo para resolver el problema de doble presión

  • Tenemos que dejar thinkpad_acpide ajustar el brillo a través del BIOS y solo enviar la pulsación de tecla a GNOME, para que GNOME sea el único paso de ajuste
  • Este es un error conocido que se corrigió en el kernel 3.4+
  • Para arreglarlo para Ubuntu 12.04 / Precise, haremos un parche de su versión thinkpad_acpiy lo volveremos a compilar:

    1. Instale los encabezados del kernel: sudo apt-get install linux-headers-$(uname -r)
    2. Instalar herramientas de compilación sudo apt-get install build-essential
    3. Haga un directorio temporal y cámbielo:
      mkdir ~ / tpacpi-bright && cd ~ / tpacpi-bright
    4. Descargue y parchee el archivo fuente thinkpad_acpi.cdel repositorio git de Ubuntu Kernel:

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-precise.git; \
      a = blob_plain; f = drivers / platform / x86 / thinkpad_acpi.c; hb = HEAD "\
      El | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. En la misma carpeta donde thinkpad_acpi.cse descargó, necesitará un "Makefile". Puede descargarlo directamente desde este Pastebin , usando:

      wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT

    O pegue el siguiente en un archivo llamado Makefile:

    obj-m + = thinkpad_acpi.o
    todos: make -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) módulos
    limpiar: make -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) clean
    1. Ahora escriba makepara crear el módulo; verá un thinkpad_acpi.koarchivo en la carpeta cuando haya terminado.
  • Pruebe el módulo parcheado después de cargarlo con:

    sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
  • Si el brillo ahora está fijo y le da control total, reemplace el módulo de stock con el módulo parcheado:

    TPDIR = / lib / modules / $ (uname -r) / kernel / drivers / platform / x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    sudo mv ~ / tpacpi-bright / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • Puede limpiar la carpeta de compilación con make clean; ¡mantenlo para futuras actualizaciones del kernel!

ish
fuente
gracias por tu respuesta! Tu solución funcionó completamente para mí. El único problema: el control de brillo no funciona ahora en la pantalla de inicio de sesión (parece que entiendo por qué, porque thinkpad_acpise usa nuevo , pero GNOME power daemon aún no está en funcionamiento).
Andrey
En aras del aprendizaje, ¿podría decirme si hay alguna forma de decirle a GNOME power daemon que no procese teclas de acceso rápido de brillo, como lo hicimos con el videocontrolador? Ubuntu proporciona GUI ( All Settings -> Keyboard -> Shortcuts) para personalizar las teclas de acceso rápido de audio (subir / bajar volumen, silenciar), pero no encontré dónde puedo cambiar o deshabilitar las teclas de brillo.
Andrey
@Andrey: de nada! Tengo un Thinkpad T520, así que esta fue una buena oportunidad para solucionar el problema. En cuanto a la pantalla de inicio de sesión, creo que la forma de resolver eso es poner la desactivación no en, rc.localsino en ~/.profile, para que solo se active después de iniciar sesión. Si hay una manera simple de deshabilitar el demonio de energía GNOME del procesamiento de teclas de acceso rápido de brillo, también deshabilitará el OSD (como backlight=vendor); hacerlo bien puede requerir modificar el código fuente ... Intentaré echarle un vistazo. De todos modos, una vez que salga 12.10, liberarán el kernel fijo con respaldo para 12.04, por lo que funcionará entonces.
ish
2

Estaba teniendo exactamente el mismo problema que tú, además de que mi sistema siempre comenzó con la pantalla apagada.

Me gustaría agradecerle por señalarme en la dirección correcta, acpi_backlight=vendorhizo el truco para mí sin ninguno de los problemas que experimentó. Estoy usando una HP G7 1116sg con gráficos híbridos (Intel HD3000 (actualmente solo uso la inteligencia debido a problemas híbridos en ubuntu. Lo digo solo porque el X220 aparece como el mismo adaptador de gráficos) / Radeon HD6870) y Ubuntu 12.04.

Solo quería decir que los cambios de comida me funcionaron sin ningún problema aparente.

Buena suerte en encontrar una solución.

DrA7
fuente
Me alegro de que te haya funcionado.
Andrey
0

La configuración de /sys/module/video/parameters/brightness_switch_enableda 0no me permite controlar el brillo en mi Thinkpad X230 mediante teclas de acceso directo, tanto en tty como en xfce 4.10. Tuve que decirle al xfce4-power-manager que no cambiara el brillo de los eventos clave. Puede hacerlo configurando una de las dos claves de configuración ocultas. El primero es:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false

Y el segundo:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false

Nota: ambas configuraciones deshabilitan la pantalla emergente de brillo en mi sistema, ¡pero al menos recupero los 16 niveles de brillo!

Puede leer más sobre este problema en esta página y en la parte inferior de esta página .

jeremija
fuente
0

En mi computadora portátil Lenovo S205 tuve este problema en el que tanto el controlador de video como el gnomo ajustaban el brillo.

Pero mi experiencia al deshabilitar la brightness_switch_enabledpropiedad es que gnome es lento y parece picante al actualizar la luz de fondo, por ejemplo, si dejo las teclas presionadas durante un par de segundos y luego lo dejo ir, gnome todavía tarda entre 5 y 10 segundos en procesar los eventos.

Por lo tanto, prefiero dejar que el controlador de video haga los ajustes y evitar que gnome los haga.

sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper

Desactivar el gsd-backlight-helperhizo el truco para mí. Rastreé los internets y no parece haber una opción visible para el usuario para hacer lo mismo.

Perdí el OSD de brillo, pero ahora los cambios de brillo se procesan instantáneamente y, como beneficio adicional, todavía tengo control de brillo en el tty.

Ivo Anjo
fuente