Skip to main content

Ajustar el brillo de pantalla con el driver nouveau (workaround)

Si, como en mi caso, utilizas el controlador libre para tu gráfica NVIDIA, puede que tengas problemas a la hora de ajustar el brillo de tu portátil. Aunque por defecto en muchos modelos puedes ajustarlo con el teclado (con sus teclas específicas), algunas veces puedes encontrarte con que realmente no aumenta ni disminuye el brillo de tu pantalla aunque el indicador efectivamente se mueva. ¿Por qué pasa esto?

Para no entrar en muchos tecnicismos (en otra ocasión, quizá) el problema se puede resumir en un fallo de comunicación entre el núcleo de tu sistema Linux (el kernel) y el driver abierto. El desarrollo de ambos es constante y dependiendo de la distribución que utilices o el kernel específico que tengas instalado es posible que alguna vez no se entiendan muy bien.

Estos pequeños problemas se suelen solucionar con actualizaciones del núcleo, aunque es cierto que puede pasar al contrario (que con una versión nueva deje de funcionar el ajuste de brillo). Si las especificaciones del hardware fueran libres, estos problemas no existirían. Siendo cerradas, nos tenemos que fiar del código que haga la propia NVIDIA o agradecer el inmenso curro que se pegan los desarrolladores de nouveau, sabiendo que a veces hay cosas que pueden fallar.

Puede parecer que una cosa tan trivial como el ajuste del brillo no sea crítica. En mi caso concreto, al usar Debian “testing” con nouveau en un portátil con una gráfica NVIDIA un poco fastidiosa, no puedo disminuir el brillo cuando uso la batería, con el consecuente drenaje de energía innecesario. Leyendo algo de documentación, empecé a entender cómo manejan los kernels “modernos” el tema del brillo.

Sin entrar en mucho detalle, lo que descubrí es que el brillo actual del sistema se almacena como número (del 0 al 100) en el siguiente fichero:

/sys/class/backlight/nv_backlight/brightness

Si accedo a ese archivo, veo que está en 100 (al máximo). Cuando intento aumentarlo o disminuirlo con el teclado, sin embargo, ese número no cambia. ¡Pero debería! Después de echarle un ojo a esos directorios me di cuenta de que al utilizar los atajos de teclado el fichero que se modificaba era…

/sys/class/backlight/acpi_video0/brightness

…que es el que el kernel entiende que es el controlador primario o por defecto. Hice una prueba y modifiqué a mano el número en el primer fichero (como root) y ¡voilà! Confirmado que el problema es que nv_backlight no está enlazado correctamente como controlador por defecto.

Tener que cambiar el brillo de la pantalla de esta manera no es práctico ni seguro por una serie de razones:

  1. El fichero, como no es el que el kernel entiende que es el “maestro”, reinicia sus valores cada vez que reinicias el sistema
  2. Modificar un archivo de sistema como root nunca es una buena idea
  3. Si te equivocas y pones un valor incorrecto o un 0 en el fichero, se te apagará la pantalla y te verás forzado a reiniciar por la fuerza tu sistema

Por eso esto no es una solución a este problema, sino un workaround de momento. En el mundo del software propietario podría poner una queja y pedir que me devolvieran el dinero (cosa que no pasaría, seguro). Pero en el mundo del software libre lo que toca es investigar un poco más el problema, notificarlo como bug a los desarrolladores y que en un futuro todo el mundo se pueda beneficiar de la solución de éste.

Imagen de cabecera: tecnoinnovador

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *