Problemas con el brillo en Linux


Un problema que muchos de los usuarios de Linux han tenido alguna vez, es el dichoso brillo. Cuantos quebraderos de cabeza nos ha dado que el kernel no nos detecte bien el controlador de la GPU (tarjeta gráfica), y por culpa de esto, nos falle el brillo, no podamos subirlo o bajarlo, o simplemente, cuando encendemos el PC, tenemos "imagen", pero sin brillo. Todo esto es cosa de la retroiluminación, y es fácil de detectar. Yo desde que actualicé al kernel 3.+ , tengo este problema. La solución puede ser tan compleja, como simple, dependiendo de qué nos funcione. Si has tenido problemas con el brillo en Ubuntu, Debian, o cualquier distro de Linux, este es tu tema. Sigue leyendo.


Primera solución: Editando la configuración de GRUB

Si nuestro Linux no sube ni baja el brillo de la pantalla, o directamente se queda en "negro", desde que enciende, podemos pasarle un parámetro a GRUB para que nos detecte desde el inicio la tarjeta gráfica, además de todo el hardware.
Curiosamente, esto también arregla problemas con el ventilador, si se nos recalienta demasiado el CPU por falta de potencia de nuestra ventilación; o todo lo contrario, ruge como un tornado.
 Abrimos un shell (terminal, CTRL+ALT+T), y abrimos con nano el archivo de configuración de GRUB2:

sudo nano /etc/default/grub
En la línea GRUB_CMDLINE_LINUX_DEFAULT="quiet splash", editamos dejándola así:



Guardamos y cerramos (CTRL+X para guardar y salir). De nuevo con el control del shell, introducimos las siguientes órdenes para actualizar GRUB con su nuevo fichero de configuración:

sudo update-grub && sudo update-grub2
Hecho esto, reiniciamos nuestro PC. Si los cambios han surgido efecto, cuando subamos y bajemos el brillo con las teclas de nuestro portátil, Linux responderá efectuando esas órdenes. 

Si aún habiendo cambiado esa línea, Linux no arranca con la iluminación encendida, pero sí que responde a las teclas, podemos pasarle una orden al inicio para que, cuando termine de cargar el kernel, la ejecute. 


Nos vamos a la terminal, y escribimos:

sudo nano /etc/rc.local
y antes del exit 0 introducimos la siguiente orden:
setpci -s 00:02.0 f4.b=00

 El archivo nos debe quedar así:
Fichero rc.local


Para el curioso, la orden setpci manda una señal al hardware, -s hace que se envíe la señal solo a esa placa en concreto, 00:02.0 es el identificador de nuestra tarjeta gráfica (si no funciona, introduce en un terminal la orden lspci, y busca el número del mismo formato que coincide con la entrada VGA), y f4.b=00  es la variable de oscuridad de la pantalla; la cual, si está a 00 no tendrá oscuridad, y si está en ff, apagará nuestro brillo en pantalla.

Una vez que reiniciemos el sistema, ya tendremos iluminación en la pantalla. Si esto no te funciona, sigue leyendo ;)

Segunda solución: Creando un archivo ejecutable en bash (script) (más "geek")

La segunda solución, sólo por si no funciona el parámetro que le indicamos al archivo de configuración de GRUB, es crear un archivo ejecutable programado en bash, para que el intérprete de Linux lo reconozca y así poder activar la iluminación.
ACTUALIZACIÓN: El proyecto ya está añadido a GitHub, así que lo bajaremos con Git. Lo primero que necesitamos, si aún no lo tenemos, es git:

sudo apt-get install git
Una vez instalado, podemos bajar el código junto con las instrucciones de instalación desde GitHub:

git clone git://github.com/reddevilrau/brightness-control.git

Con los archivos ya descargados, copiamos el ejecutable al directorio de binarios del sistema:

cp ~/brightness-control/code/brillo /bin/

Ahora, solo tenemos que darle permisos de ejecución para todos los usuarios:

chmod +x /bin/brillo

Ya está oficialmente instalado, solo queda hacer que se ejecute desde que nuestro ordenador se encienda:

nano /etc/rc.local

Añadimos antes del exit 0 la línea /bin/brillo &

Cerramos y guardamos (CTRL+x), y reiniciamos nuestro PC. Con todo esto, hemos generado un "archivo de configuración" que nos permite subir y bajar el brillo de la pantalla de nuestro portátil como si se tratase de la misma línea del GRUB. Para aquellos a los que no se les encienda la pantalla nada más iniciar, hay que hacer lo mismo que para este problema en la primera solución: añadir la orden setpci -s 00:02.0 f4.b=00 al archivo rc.local (está explicado más arriba).


Una vez terminado todo esto, ya deberíamos tener iluminación en nuestro portátil.


# HÁGASE LA LUZ!

8 comentarios :

  1. Me funciono muy bien en Elementary OS al acutalizar el Kernel al 3.10.9 :) Muchas Gracias

    ResponderEliminar
  2. Me alegra ver que a alguien le ha sido de utilidad! Un saludo!

    ResponderEliminar
  3. Saludos amigo! Tenia tiempo buscando esta solución :)

    ResponderEliminar
  4. Andres Lopez Salinas31 de julio de 2014, 13:14

    muchas gracias , por fin un blog donde la solución me funciona correctamente.


    Al final con el script todo funciona ok , porque si cambiaba la configuracion del grub se me encendia la pantalla pero me desconfiguraba la resolución.


    Solo una ultima duda:
    ...con la configuracion del script el brilo se queda al maximo posible y no se puede bajar ,lo cual es un poco molesto, ¿si cambio el valor a 50 el brillo quedara a la mitad no?
    REPITO MUCHAS GRACIAS por explicarlo sencillo y con imagenes

    ResponderEliminar
  5. Pues a ver, en el código del script, "00" es el valor máximo que puede alcanzar el brillo. Puedes cambiar ese valor por un valor medio entre 00 y ff, como 99, y así obtendrías un brillo medio. Igualmente, en el archivo rc.local también puedes cambiar el valor de f4.b a 99, para que el PC inicie con ese valor medio de brillo en pantalla. Y de nada, siempre gusta ayudar! :D

    ResponderEliminar
  6. ayuda! A mi me sucede al contrario, apenas enciendo la pc esta arranca con el brillo máximo, y solo lo puedo bajar apenas haya iniciado sesión :c (ubuntu 14.04, aunque pasa con cualquier linux)

    ResponderEliminar
  7. Señor Andalú! Muchísimas gracias por sus conocimientos. Llevo casi desde que salió la nueva versión de Elementary OS (Freya) disfrutando este buen Sistema Operativo. Pero me hacía falta este punto, en Luna lo intenté pero nunca me salió, y ahora con Freya ya tenía casi el par de semanas de terco, y con sus clarísimas instrucciones, ha quedado listo! Esto en teoría debe mejorar aún más el rendimiento de la batería de la portátil, que de por si, ha sido mejorado en esta versión. Mucho éxito en su carrera universitaria y de nuevo gracias por sus conocimientos y por compartirlos.

    ResponderEliminar
  8. Gracias a ti por los ánimos! Me alegro de que esta solución siga funcionando a día de hoy :D

    ResponderEliminar