Luego de una reciente instalación de Fedora, lo que normalmente hacemos es empezar a configurar nuestro escritorio y nuestras aplicaciones, ya sea instalando el software de nuestra preferencia o instalando software privativo como es el caso de los drivers Nvidia.
Es cierto que Nouveau es el driver libre por defecto en las distros Linux para las tarjetas de video, pero a veces por algún motivo u otro este driver no cumple con nuestros requerimientos y por ello queremos instalar los drivers desde la propia web del fabricante.
En este artículo aprenderemos cómo instalar los drivers privativos Nvidia en Fedora 16 y en versiones anteriores de Fedora, de manera que tengamos éxito durante el proceso y que no se produscan algunos errores o conflictos con el driver Nouveau.
Información previa
Nouveau es un driver para tarjetas gráficas Nvidia, desarrollado como proyecto de código abierto a través de la ingeniería inversa del driver Nvidia. Nouveau viene por defecto en las distribuciones Linux actuales como driver para las tarjetas gráficas, pero no está desarrollado, relacionado, ni tiene soporte por parte de Nvidia excepto el hecho de que ambos el driver Nouveau y el de Nvidia son capaces de controlar los GPUs de dicha empresa. Sin embargo, sólo un driver puede controlar el GPU a la vez, así que si nuestra tarjeta gráfica está siendo controlada por el driver Nouveau, primero debemos desactivarlo antes de instalar el driver Nvidia.
Es precisamente allí en donde surgen la mayoría de los problemas con la instalación del driver propietario Nvidia: nos olvidamos de desactivar o no desactivamos del todo el driver Nouveau, dando como resultado fallidos intentos de instalación del driver propietario, pérdida de nuestro entorno gráfico, o que incluso ya no inicie y nos quedemos viendo únicamente el logo de Fedora y nada más.
Para resumir lo descrito anteriormente, en nuestro tutorial esto es lo que haremos para tener una correcta instalación de los drivers Nvidia en Fedora:
- Descargar el driver apropiado para nuestra tarjeta gráfica
- Salir del entorno gráfico para realizar nuestra tarea
- Instalar paquetes de compilación requeridos para instalar el driver Nvidia
- Detener el servidor X
- Desactivar completamente el driver Nouveau
- Instalar el driver Nvidia
- Regresar al entorno gráfico de Fedora
Bueno empecemos con nuestro tutorial...
1. Descargar el driver apropiado para nuestra tarjeta gráfica
Simplemente vamos a la web oficial de Nvidia en el siguiente link:
Nvidia.com Drivers
Allí seleccionamos el tipo de producto (por ejemplo GeForce), la serie (en mi caso GeForce 6 Series), el sistema operativo que está marcado en general como Linux en donde debes seleccionar segun tu versión 32-bit o 64-bit (no importa si tu distro es Fedora, Ubuntu o cualquier otra, sólo selecciona Linux), y finalmente el idioma. Le das click en iniciar la búsqueda y listo. Antes de empezar la descarga, hay un punto importante a considerar: ver si nuestro modelo de tarjeta de video se encuentra dentro de los productos respaldados para ese driver, así que dale click en la pestaña PRODUCTOS RESPALDADOS y asegúrate que figure el modelo de tu tarjeta gráfica. Cuando hayas verificado tu modelo de tarjeta, inicia la descarga.
Es mi recomendación que una vez terminada la descarga del driver, modifiques el nombre para hacer más sencilla su ejecución pero no lo ejecutes y también es recomendable ubicarlo en una carpeta de fácil acceso. Ten en cuenta que la instalación la haremos fuera del entorno gráfico de Fedora, así que tendremos que escribir manualmente la ruta completa y el nombre del driver para poder instalarlo. En mi caso, yo lo renombre NVIDIAdriver.run y lo ubiqué en la carpeta /home/jasz/Documentos/
Cuidado: no borres la extensión .run del driver
2. Salir del entorno gráfico para realizar nuestra tarea
Debo mencionarte que al salir del entorno gráfico de Fedora ya no veremos ventanas, gadgets, paneles ni nada, sólo veremos algo similar a una gran consola de comandos. Apartir de aquí te pido que imprimas este tutorial o anotes los comandos e indicaciones que usaremos, ya que no podrás ver nada una vez que salgamos del entorno gráfico.
Recomendación: es muy importante que anotes en un papel la ruta completa y el nombre del driver, en mi caso es algo así:
/home/jasz/Documentos/NVIDIAdriver.run
Hechas las recomendaciones y aclaraciones, continuemos con el tutorial.
Primero debemos cerrar todas las aplicaciones abiertas. Así que teniendo únicamente frente a nosotros el esritorio de Fedora con todos los programas cerrados presionamos la combinación de teclas Ctrl+Alt+F2 para iniciar una sesión de consola fuera del entorno gráfico.
Ahora que estamos en oscuras :) nos logueamos primero como el usuario de siempre, en login escribimos el nombre de nuestro usuario y luego escribimos la contraseña asociada a ese usuario. Luego verás que estamos en la consola de comandos y en el prompt verás el símbolo $. Lo siguiente es loguearnos como root, para ello escribe: $ su , luego se te pedirá tu contraseña pero esta vez la de root no la de usuario. Ahora ya verás el símbolo # en el prompt
3. Instalar paquetes de compilación requeridos para instalar el driver Nvidia
Para instalar el driver, es necesario recompilar ciertas cosas en el kernel, pero ocurre que Fedora no viene con paquetes de desarrollo instalados por defecto. Por eso debemos instalarlos nosotros mismos, bueno... sencillo, ya que estás logueado como root escribe el siguiente comando para instalar los paquetes que necesitaremos:
y esperamos que termine la descarga e instalación de estos paquetes. Sino lo hacemos, el driver simplemente no podrá ser instalado. Si anteriormente ya habías instalado estos paquetes de compilación, puedes ignorar este paso.
4. Detener el servidor X
Básicamente debemos detener el servidor Xorg. Para ello, escribimos:
Es probable que después de ejecutar el comando anterior, tengas que volver a loguearte como root, así que deberás hacerlo en la manera que mencionamos en pasos enteriores.
Cuando ya estés otra vez como root, tenemos que hacer un respaldo por si algo sale mal (nunca está de más prevenir). En resumen, tenemos que hacer un backup del archivo xorg.conf cuya ruta completa es /etc/X11/xorg.conf, bueno... ejecutamos el siguiente comando:
con esto, si ocurre alguna falla en el proceso, tendremos un repaldo en el archivo /etc/X11/xorg.conf.bak que acabamos de crear.
Cuidado: entre la coma (,) y el punto (.) de conf{,.bak} no hay espacios.
5. Desactivar completamente el driver Nouveau
Esta sección está dividida en dos partes: (a) Información Previa: Análisis y conceptos a tomar en cuenta y (b) Desactivación de Nouveau: Aplicando los conceptos previos. La primera parte es sólo informativa. Depende de ti si la lees o no, pues no es necesario, pero podrías aprender algunas cosas sobre lo que haremos. Así que si deseas puedes saltar la primera parte (a) e ir directamente a la segunda parte (b)
(a) Información Previa: Análisis y conceptos a tomar en cuenta
Desactivar el driver Nouveau es el paso más importante de todo el proceso, de no hacerlo correctamente podrían surgir problemas como:
- No poder instalar el driver Nvidia, ya que como expliqué anteriormente uno y sólo un driver para la tarjeta gráfica puede estar activado.
- No poder ver el escritorio de Fedora luego de un reinicio y nos quedamos viendo únicamente el logo (me pasó cuando instalé los drivers Nvidia desde los repositorios de RPM Fusion)
Personalmente me sucedieron ambas cosas, como si Fedora me dijera "te estoy mostrando los dos casos para que hagas un tutorial.... :)"
En fin, el problema era que no podía desactivar completamente el driver Nouveau. Aunque yo pensaba que ya lo había desactivado, en realidad no era así. Y es que desconocía un dato que no había tomado en cuenta. Paso a explicar:
Tal y como dice el título de esta sección, nuestra tarea es evitar que Nouveau se cargue. Una manera sencilla de hacer esto es agregar directivas de configuración a un archivo ubicado en la carpeta /etc/modprobe.d/ . Estas directivas de configuración técnicamente se pueden añadir a cualquier archivo en /etc/modprobe.d/, pero muchos de los archivos existentes en este directorio son suministrados y mantenidos por el distribuidor (Fedora), los cuales de vez en cuando, proporcionan archivos de configuración actualizados que podrían entrar en conflicto con los cambios que hagamos. Por lo tanto, se recomienda crear un nuevo archivo, por ejemplo, /etc/modprobe.d/disable-nouveau.conf en lugar de editar uno de los archivos existentes como el popular /etc/modprobe.d/blacklist.conf. Ten en cuenta que algunos cargadores de módulos sólo buscarán por las directivas de configuración en los archivos cuyos nombres terminan en .conf , así que si estás creando un nuevo archivo, asegúrate de que su nombre termina en .conf
Bueno, hemos hablado de añadir unas instrucciones o directivas de configuración en uno de los archivos .conf, ¿pero cuales son estas directivas? Ya sea que elijas crear un archivo nuevo (recomendado) o editar uno ya existente, tendríamos que añadir las siguientes dos líneas (no teclees nada esto es sólo informativo, ya después te indicaré como hacer esto):
Eso es lo que yo hice, y pensando que era suficiente procedí a instalar el driver Nvidia, pero este me negaba una y otra vez la instalación. No entendía el por qué, hasta que di con un dato muy importante:
Nouveau estaba habilitado por otras razones... Nouveau estaba incluido en el ramdisk incial del sistema y por tanto este se cargaba antes de que Fedora se inicie, justo en el arranque del sistema. Y es que algunas distribuciones, sobre todo las distribuciones recientes de Red Hat / Fedora incluyen Nouveau en una imágen de disco de memoria inicial o ramdisk (en adelante conocido como el "initrd" y a veces también conocido como "initramfs") de modo que la carga de Nouveau tomaba lugar tan pronto como era posible en el proceso de arranque del sistema. Esto de hecho nos plantea un reto adicional a los que deseamos evitar el inicio de Nouveau, ya que este inicio se produce mientras el sistema se ejecuta en el initrd, y antes de que las directivas en /etc/modprobe.d/ se procesen. Y por tanto por más que hayamos incluido esas directivas de configuración Nouveau no se desactiva.
(b) Desactivación de Nouveau: Aplicando los conceptos previos
Resumiendo la explicación anterior, para desactivar Nouveau correctamente, debemos hacer dos cosas:
- Primero, añadir la directivas de configuración: blacklist nouveau options nouveau modeset=0 a un archivo nuevo ó editar uno ya existente en /etc/modprobe.d/
- Y segundo, evitar que Nouveau se cargue durante el arranque del sistema.
Entonces en esta sección básicamente tenemos que hacer ambas cosas, vayamos por partes para no confundirnos.
»» Sobre lo primero "añadir las directivas de configuración", si no lo hemos hecho manualmente no te preocupes porque el propio instalador del driver Nvidia al darse cuenta de eso, él mismo se encargará de darte un mensaje indicándote que añadirá esas directivas de configuración automáticamente durante la instalación y creará el archivo:
/etc/modprobe.d/nvidia-installer-disable-nouveau.conf
Así que esto no representa problema alguno y si deseas puedes ignorar este paso ya que como mencioné, el instalador del driver Nvidia lo hará por ti. Pero si eres de lo que necesitan hacerlo por ti mismo, entonces puedes crear un archivo nuevo y añadir manualmente las directivas de configuración, para ello ejecuta el comando siguiente:
el nombre nvidia-installer-disable-nouveau lo puedes cambiar por el que desees, aunque te recomendaría dejarlo con ese nombre, pero eso sí, NO OLVIDES la terminación .conf . Una vez abierto el editor nano, escribe en dos líneas separadas lo siguiente:
blacklist nouveau
options nouveau modeset=0
Atención: en la última línea es el número cero no la vocal "o".
hecho eso, guardamos los cambios con Ctrl+O (la vocal "o") , luego presionamos Enter para dejar el nombre del archivo igual (NO LO CAMBIES) y finalmente cerramos el editor con Ctrl+X
»» Por lo segundo, "evitar el inicio de Nouveau en el arranque del sistema", no nos queda otra más que hacerlo manualmente con unos comandos. Bueno... la idea es reconstruir el initramfs con dracut. Para ello ejecuta los siguientes dos comandos uno a uno (recuerda que seguimos logueados como root):
la ejecución del segundo comando dracut tomará unos segundos, hay que esperar a que termine su función. Al terminar volverás a ver el prompt #
Listo !! hasta aquí ya tenemos todo preparado. Nouveau ya está completamente desactivado y no generará más problemas. Es hora de iniciar el instalador del driver Nvidia, así que vayamos al penúltimo paso.
6. Instalar el driver Nvidia
Si hemos hecho todo lo anterior correctamente, esta parte es tan sencilla como ejecutar un comando:
En mi caso y como mencioné al inicio de este artículo, yo renombré y guardé el driver en la ruta /home/jasz/Documentos/NVIDIAdriver.run así que yo ejecuté lo siguiente:
# sh /home/jasz/Documentos/NVIDIAdriver.run
Verás que se inicia la carga del instalador, y luego nos aparece un cuadro de diálogo que nos pide aceptar la licencia de uso, le damos enter en la opción Accept. De ahí sólo debemos esperar mientras se instala el driver, es probable que se nos pida instalar unos paquetes adicionales para la aceleración 3D en paquetes de 32-bit. Le damos Accept otra vez.
Una vez que el instalador ha terminado, nos pregunta si deseamos ejecutar el programa nvidia-xconfig, el cual modificará automáticamente el archivo xorg.conf con los valores adecuados para activar la aceleración gráfica. Obviamente aceptamos, y listo... hemos terminado. Ya tienes tu driver Nvidia completamente instalado para su correcto funcionamiento.
7. Regresar al entorno gráfico de Fedora
Prácticamente ya terminamos nuestra tarea, sólo nos falta entrar de nuevo en una sesión gráfica. Basta con ejecutar el comando (sigues logueado como root):
o en todo caso reiniciar el sitema con el comando:
con cualquiera de los dos comandos podrás entrar nuevamente al entorno gráfico de Fedora. Aquí el resultado de todo lo hecho anteriormente
Actualización Muy Importante:
Ayer 14 de Noviembre los usuarios de Fedora recibimos una nueva actualización del kernel en su versión 3.1.1-1.fc16.x86_64 la cual es importante y recomiendo hacer. Pero al hacer eso, surge un problema al reiniciar el sistema: el entorno gráfico queda estropeado.
Al reiniciar, ahora el Grub tiene estas 3 opciones (antes habían sólo 2):
La primera opción es el nuevo kernel. Es muy probable que si escojen esa opción, se inicie la carga del sistema pero luego se quede colgado y tengan que apagar el pc con el botón de encendido en el gabinete.
Si escojen la segunda opción (que es la del kernel con el cual estabamos trabajando tan bien) podrán ingresar pero seguro tendrán problemas con la gráfica. En mi caso era un completo desastre pues todo estaba desequilibrado.
Eso lo pude arreglar reinstalando los mismos drivers Nvidia (según los pasos de este tutorial) que felizmente tenía aún guardado en mi disco duro. Reinstalé los drivers para el kernel antiguo 3.1.0-7.fc16.x86_64 y luego ya pude ingresar al escritorio de Fedora, aunque el nuevo kernel 3.1.1-1.fc16.x86_64 aún seguía inutilizable. Hasta ahí todo bien... pero hoy 15 de Noviembre surgió una nueva actualización para los drivers Nvidia, estos son los archivos que se actualizaron:
y después de esto otra vez surgió el problema, pero era esta vez peor ya que luego de iniciar Fedora se quedaba atascado en la carga tanto en el kernel antiguo como en el nuevo y por tanto estaban ambos inutilizables.
Hoy pude solucionar el problema y ya puedo ingresar a ambos kernel 3.1.0-7.fc16.x86_64 y 3.1.1-1.fc16.x86_64. Así que te mostraré como solucionarlo.
Empecemos:
1. Seguramente ya te habrás dado cuenta que luego de actualizar el sistema y reiniciar el equipo, en el Grub aún no se puede ver el modo recovery del nuevo kernel, y dado que no podemos entrar en el modo normal con ninguno de los kernel porque se quedan atascados durante la carga, entraremos al modo recovery del kernel antiguo Linux 3.1.0-7.fc16.x86_64 (recovery). Así que reinicia el pc y elige esa opción.
2. Espera hasta ver el prompt, y luego hay que terminar el servidor Xorg, asi que escribe y ejecuta:
3. Lo siguiente es loguearse como usuario normal con tu nombre y contraseña de usuario. Luego en el prompt ejecuta: # su para iniciar una sesión de root, te pedirá tu contraseña de root no la de usuario. Al final verás el promtp #
4. Ahora reinstalaremos el driver Nvidia con el instalador que habíamos descargado y que espero no hayas borrado. Esta instalación la haremos sólo para el nuevo kernel 3.1.1-1.fc16.x86_64, sí, sólo para el más reciente.
Yo instalaré el driver para el kernel más reciente:
»» Instalando driver Nvidia para el nuevo kernel 3.1.1-1.fc16.x86_64 o superior a este
Aun como root escribe y ejecuta el siguiente comando (cambia los nombres según tus propios datos):
En mi caso yo ejecuté lo siguiente:
Cuidado: en esta parte --kernel-name=3.1.1-1.fc.x86_64 pon el nombre correcto de tu kernel (el mio es de 64-bit). Es muy importante poner el nombre correcto.
Verás que se inicia la reinstalación del driver. En un principio se te informará que desinstalará el driver existente para luego volver a instalar el driver. Acepta la instalación. Es probable que veas este mensaje de error:
File: /usr/lib64/xorg/modules/extensions/libglx.so is not a symbol link
ignóralo y continua con la instalación. Luego en algún momento te pedirá aceptar la instalación de Nvidia's 32-bit compatibility Open GL libraries y también te dirá que modificará automáticamente el archivo xorg.conf, acepta ambas cosas. Terminado esto verás el prompt de root # otra vez.
5. Finalmente sólo nos queda reiniciar. Para ello escribe: # reboot
Aquí una imágen del nuevo kernel funcionando con los drivers Nvidia:
Actualizando el Grub para ver el modo Recovery del nuevo kernel al arrancar el equipo.
Sólo debemos actualizar el archivo del Grub para que al reiniciar el sistema podamos ver todo correcto y también para ver el modo recovery del nuevo kernel. Ya en tu escritorio de Fedora, sólo abre un terminal y ejecuta: (te pedirá tu contraseña de usuario)
En el próximo reinicio de tu ordenador, en el Grub ya podrás ver los kernel instalados y sus respectivos modos Recovery. Listo !!! .. hemos terminado.
Listo amigos... tarea cumplida !! He sido creo algo extenso en la explicación de este tutorial, pero mi idea era no sólo decirte como hacer la instalación, sino también mostrarte el por qué del procedimiento, justificando todo lo que se estaba haciendo, de manera que consigas aprender algo nuevo o quitarte esa duda de algo similar que leiste por algún otro lugar.
Bueno... no hay nada más que decir, nos vemos en algún otro tutorial. Saludos y que tengan un buen día.