Driver NVIDIA en Linux 2.5/2.6 HOWTO
------------------------------------
por ACE
versión 0.1
1.Introducción
2.Obteniendo drivers NVIDIA y parches
3.Instalación
4.Configuración XFree86
5.Configuración módulos
1.INTRODUCCIÓN
--------------
Esta pequeña guía pretende ayudar a aquellas personas que quieran instalar los drivers NVidia en una máquina con kernel Linux versión 2.5 o 2.6 pero que no tengan muy claro como hacerlo. La idea me vino de los foros de
EOL, donde ||Facil|| lo propuso después de que le ayudase a instalarlos. Este documento no pretende ser exhaustivo ni explicar nada más allá de lo que su nombre indica, de modo que si has llegado aquí buscando ayuda para la instalación o configuración de otros drivers o incluso del sistema X lo siento pero poco provecho le sacarás
Los drivers NVidia para Linux son controladores propietarios para la mayoría de tarjetas gráficas con chipset de esta compañía. Aunque existe un controlador libre para estas tarjetas, distribuido junto a XFree86, los drivers propietarios ofrecen al usuario aceleración 3D y soporte para salida de televisión en las tarjetas que lo permitan, logrando un mayor aprovechamiento de las capacidades de la tarjeta. Si se quiere jugar en 3D, hacer uso de OpenGL o ver películas en la televisión desde el reproductor del ordenador habrá de optarse por estos drivers oficiales.
La instalación de los drivers no tiene demasiado problema, y menos en las últimas versiones donde se ha automatizado el proceso para que el usuario sólo tenga que responder "Sí" a un par de preguntas. El problema surge con los nuevos kernels 2.6 (y la rama de desarrollo 2.5), ya que estos son drivers programados para Linux 2.4, y no compilarán en un 2.6. Por ello se han escrito unos parches que una vez aplicados al driver nos permitirán instalarlo en las nuevas versiones del kernel, con la consiguiente satisfacción. Al parecer en Gentoo se pueden "emergear" los drivers ya parcheados, aunque no es así para el resto de distribuciones, y aquí entra este HOWTO.
En el momento de escribir esto la versión actual del kernel es la 2.6.0-test2, los drivers NVIDIA están en su versión 1.0-4496 y el proceso lo he llevado a cabo en una Debian Sid, aunque no debería ser diferente en otras distribuciones.
Pues nada, al tema
2.OBTENIENDO DRIVERS NVIDIA Y PARCHES
-------------------------------------
Los drivers NVidia se pueden descargar de manera completamente anónima y gratuita desde
http://www.nvidia.com/object/linux.htmlpara arquitecturas Intel de 32 y 64 bits (disponen también de versión para FreeBSD). Basta con seleccionar la arquitectura que nos interese y descargar el archivo run correspondiente (en este caso NVIDIA-Linux-x86-1.0-4496-pkg2.run). Sería también interesante hacerse con el README correspondiente, ya que en él se explica en detalle como usar el driver.
En cuanto al parche para las series 2.6 del kernel, obra de Christian Zander, habremos de buscarlo en
http://www.minion.de. Seleccionamos el diff correspondiente a nuestra versión de drivers NVidia (en este NVIDIA_kernel-1.0-4496-2.5.diff) y listos.
Y bueno, en este punto ya tenemos drivers y parche. Ahora habrá que hacer algo con ellos ¿no?
3.INSTALACIÓN
-------------
Pues nada, vamos allá. Básicamente lo que haremos será descomprimir el driver (no instalarlo directamente), aplicar el parche e instalarlo al estilo "tradicional".
ATENCIÓN: para que este proceso tenga éxito habrán de estar instaladas en el equipo las nuevas utilidades de módulos, ya que los viejos modutils no funcionan con los 2.6 (en Debian, por ejemplo, habrá de instalarse el paquete module-init-tools).
Nos posicionamos en el directorio en el que hayamos guardado el fichero run descargado de la página de NVidia y ejecutamos:
# ./NVIDIA-Linux-x86-1.0-4496-pkg2.run --extract-only
Deberiamos ver lo siguiente:
Creating directory NVIDIA-Linux-x86-1.0-4496-pkg2
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 1.0-4496
Tras lo cual dispondremos del directorio NVIDIA-Linux-x86-1.0-4496-pkg2. En este mismo directorio habremos de desplazarnos hasta usr/src/nv, que es donde habremos de copiar el diff:
# cd usr/src/nv/
# cp /downloads/NVIDIA_kernel-1.0-4496-2.5.diff .
Luego aplicamos el parche:
# patch -p1 < NVIDIA_kernel-1.0-4496-2.5.diff
Con el siguiente resultado:
patching file Makefile
patching file Makefile.kbuild
patching file Makefile.nvidia
patching file conftest.sh
patching file nv-linux.h
patching file nv.c
patching file os-agp.c
patching file os-interface.c
patching file os-registry.c
El parche nos deja escoger entre dos Makefile, la versión kbuild y la versión nvidia. Se aconseja usar la versión kbuild, con lo que haremos:
# ln -s Makefile.kbuild Makefile
Y ya tendremos los drivers parcheados y listos para su instalación. Para ello bastará con volver al directorio NVIDIA-Linux-x86-1.0-4496-pkg2 y ejecutar el ya clásico comando:
# cd ../../../
# make install
Pueden pasar dos cosas: o que todo vaya bien a la primera (jeje), o que algo falle. Posibles causas de fallo son no haber actualizado las utilidades de módulos o usar una versión de gcc diferente a la que usamos cuando compilamos nuestro kernel, lo que nos dará el error "*** Failed cc sanity check. Bailing out! ***" en rojo.
En este caso podemos o bien cambiar la versión de gcc, o si queremos forzar la compilación porque el cambio de versión es mínimo (de 3.3 a 3.3.1) definir la variable IGNORE_CC_MISMATCH:
# export IGNORE_CC_MISMATCH=1
# make install
Con todo esto ya deberiamos tener acabada la instalación de los drivers y las librerías OpenGL de NVidia (no hay que instalar ningún GLX aparte, ahora se instala todo junto).
4.CONFIGURACION XFREE86
-----------------------
Si es la primera vez que se instalan los drivers NVIDIA habrá que modificar el fichero /etc/X11/XF86Config-4, si se han estado usando versiones anteriores no hay nada que tocar. Habrá que cambiar las siguientes partes del fichero de configuración:
Section "Module"
Load "glx" ------------> añadirse en caso de no existir
Load "dri" ------------> quitarlo si existe
Load "GLcore" ---------> quitarlo si existe
Section "Device"
Driver "nvidia" -------> sustituir el que haya por este
Option "NVAgp" "3" ----> para usar AGP, 0 lo deshabilita
Hay otras muchas opciones para modificar el funcionamiento del driver, como quitar la pantalla de presentación, ponerle sombra al puntero y demás. Todas ellas vienen convenientemente explicadas en el README de NVIDIA.
Ahora bastará con arrancar las X y ya estaremos disfrutando de la nueva versión de los drivers. Para comprobar que la aceleración 3D esté funcionando no estaría de mas ejecutar glxgears.
5.CONFIGURACIÓN MÓDULOS
-----------------------
Quizás os pase que tengáis que cargar el módulo en el kernel manualmente cada vez que queráis arrancar las X. Esta es una cuestión que puede traer a más de uno de cabeza y que viene explicada en el README.
Basta con añadir la linea "alias char-major-195 nvidia" al fichero /etc/modprobe.d/aliases y ejecutar update-modules como root. Ya estará resuelto (la solución a este problema para kernels 2.4 es la misma, pero modificando el aliases correspondiente, y que varía en función de la distribución).
---------------------------------------------------------------------------------------------
Se agradecerá todo tipo de aportaciones, propuestas, correcciones y demás...