¿Cómo resolver el problema de la pantalla en negro en Linux?

Publicado el 23 abril 2012 por Ubuntizando

Autobús urbano en Coruña, linea 6 camino a una entrevista de trabajo a eso de las 12 del mediodía. Todo tranquilo, el conductor a toda velocidad y el trafico infame. Justo en ese momento mágico en donde se hace el silencio, alguien dice: “Linux es una mierda y no puedo instalarlo en el portátil de mi hermana”

@_@ Miguel, paciencia… tu sigue el hilo de la conversación a ver como acaba. Pues bien, la historia es la siguiente, la hermana de nuestro amigo desconocido tiene un portátil Asus con gráfica Nvidia. Al tratar de instalar Ubuntu, tanto la versión 11.10 como 12.04 aparecía el logo de Ubuntu indicando la carga del sistema para luego quedar la pantalla en negro.

Bueno, ya sabemos que con Windows estás cosas no suceden. Que todo es estabilidad y los programas te los bajas gratis de la mula, etc. Menos mal que el trayecto fue corto. La entrevista muy mal, la empresa me ofreció un sueldo “asequible” y “popular” por un montón de condiciones y opciones que no vienen al caso.

Pero me quede pensando y creo que tengo una solución para lo que le sucede a nuestro amigo desconocido. Yo lo dejo caer por si sirve de ayuda a alguien.

En las ultimas versiones del  kernel de Linux se ha movido el ajuste del modo de vídeo en el núcleo. Así que toda la programación de las velocidades de reloj de hardware específicos y registros de la tarjeta de vídeo ocurren en el núcleo en lugar de en el controlador  X cuando el servidor X se inicia. Por desgracia, en algunas tarjetas esto no funciona correctamente y terminamos con una pantalla en negro tras el arranque. La solución pasa por añadir el  parámetro nomodeset en grub, indica al kernel para que no cargue los controladores de vídeo que las X se carguen.

También puede suceder que la luz que retroilumina nuestro LCD no quiera funcionar o que no muestre todo el brillo necesario. La solución pasa por añadir a grub acpi_osi=”Linux”

Conociendo esto, vamos a instalar Ubuntu. Con nuestro Live CD iniciaremos nuestro PC, justo después de ver el logo de nuestra bios o fabricante del portátil veremos la imagen de inicio de Ubuntu. Pulsaremos la tecla ESC para interrumpir el inicio por defecto. Ubuntu nos mostrará diferentes opciones, seleccionamos nuestro idioma y pulsamos F6, ahí seleccionamos la opción nomodeset como se muestra en la imagen.

Ahora deberíamos poder iniciar Ubuntu con normalidad y proceder a la instalación. Cuidado, esto es solo temporal. Ahora veremos como hacer nuestro cambio permanente y lo mas importante, que no tengamos que hacerlo a cada actualización del kernel que carguemos.

1. Iniciamos Ubuntu. Justo cuando aparece el logo de Ubuntu por primera vez pulsamos ESC para que se muestre Grub. Nos dará varias opciones, seleccionamos la primera con el teclado y pulsamos la tecla “e” para editar los comandos. Donde dice “quiet splash” añadimos “nomodeset” (sin comillas) y pulsamos Ctrl+X para iniciar

2. Ya en nuestra sesión de Ubuntu editamos las opciones por defecto que tomará Grub. Desde terminal: sudo gedit /etc/default/grub

De todo el texto que veremos buscamos el apartado que luce tal que así:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

Y lo modificamos de la siguiente forma:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset acpi_osi=\"Linux\""
GRUB_CMDLINE_LINUX=""

3. Guardamos y cerramos. Ahora actualizamos nuestro Grub escribiendo: sudo update-grub

Y con esto acabamos. No digo que fuera sencillo, pero ha sido muy rápido. A partir de ahora ya no tendremos que preocuparnos de la temida pantalla en negro. Y lo que es mas importante, el siguiente truco lo podemos hacer en cualquier versión de Linux. Yo he tomado el caso de nuestro amigo misterioso como ejemplo. Espero que os sea de ayuda.