== 1. Introducción: == nVidia ciertamente ofrece drivers de calidad aceptable para sus tarjetas gráficas, pero también existen alternativas libres logradas a base de ingeniería inversa y mucho esfuerzo por parte de la comunidad. Los drivers libres como 'nv' o 'nouveau' poseen capacidad de aceleración 2D, y además 'nouveau' cierta capacidad de aceleración 3D. Éstos son suficientes si no se requiere de efectos de escritorio ni uso de aplicaciones 3D, como juegos o programas de modelado. En el caso de necesitar aceleración 3D, y mientras 'nouveau' no alcance una estabilidad aceptable, la única opción es usar los drivers privativos. Para esto Debian puede facilitarnos la tarea o podemos acudir al instalador oficial de nVidia. En este artículo se trata de explicar la instalación, configuración y desinstalación de todos los drivers. == 2. Instalación: == == 2.1. Driver libre "nv": == Hasta la versión Lenny: en la instalación estándar de Debian, este es el driver que se instalará si tu tarjeta gráfica es nvidia, por lo que en esta guía (por el momento) no se explica su instalación. A partir de Squeeze: nv sigue siendo una opción a considerar si tu tarjeta gráfica es relativamente vieja o si nouveau te está dando problemas. Ten en cuenta que "nv" es un driver cuyo soporte a los nuevos modelos de tarjetas cesó hace tiempo, recomendándose desde Nvidia el uso del driver genérico "vesa" o del privativo "nvidia". == 2.2. Driver libre "nouveau": == Es el driver para tarjetas Nvidia desarrollado por la comunidad de software libre, cuyo objetivo es ser proveer un driver libre de calidad para este tipo de tarjetas y sustituir, con el tiempo, al obsoleto driver "nv" desarrollado por Nvidia. NOTA IMPORTANTE: Actualmente, Nouveau está disponible tanto en Squeeze como en Sid y es el driver que se selecciona por defecto siempre que no se indique lo contrario (por ejemplo, en ausencia de xorg.conf). La parte relacionada con el DRM está incluída en el kernel desde la versión (en formato debian) == 2.6.32-4. La parte de las X se reduce a paquete xserver-xorg-video-nouveau. == Para instalarlo hay que tener en cuenta lo siguiente: * La aceleración 2D tiene una madurez suficiente para trabajar en el día a día. * El uso de KMS es obligado, forma parte del driver y es necesario. Es además el principal punto conflictivo para aquellos que quieren usar el driver de nvidia privativo. Es necesario, en aquellos casos, desactivar el KMS (metiendo por ejemplo el módulo nouveau en el blacklist de modprobe). * El driver tal y como lo proporciona el paquete de Debian no posee capacidad de aceleración 3D (a petición de los desarrolladores de nouveau). Si deseas tener soporte para aceleración 3D (totalmente experimental, y solo funciona en algunas tarjetas), dirígete al sitio de nouveau, donde se explica como compilar los drivers con soporte para Gallium3D. **Instalación:** El paquete "nvidia-glx" entra en conflicto con el paquete de 'nouveau', por lo que es recomendable no usar el driver privativo (instalado con m-a) mientras se instala el driver 'nouveau', ya sea realizando la instalación desde una tty, o desde el servidor gráfico usando un driver como el 'nv' o el 'vesa'. Asimismo, si fuese necesario actualizar xorg, es recomendable hacerlo y comprobar el buen funcionamiento de la nueva versión antes de instalar 'nouveau'. Pasos para la instalación: * Actualizar la lista de paquetes # aptitude update * Instalar el último kernel disponible de esa rama (nouveau disponible a partir de 2.6.32-4) y la parte de las Xorg # aptitude install linux-image-2.6.32-4-686 (alternativamente -amd64 o la arquitectura que estés usando). # aptitude install xserver-xorg-video-nouveau * Añadir a /etc/initramfs-tools/modules "nouveau modeset=1" * Editar el xorg.conf y sustituir el driver actual ('nv', 'vesa' o 'nvidia') por 'nouveau' (y eliminar opciones propias de otros drivers). Este paso es muy importante, puesto que si no se hace la máquina se quedará prácticamente bloqueada (aunque responde a un REISUB) al cargar el KMS de nouveau e intentar arrancar las X con un driver no compatible con ese KMS. * Reiniciar el sistema o cargar el módulo "modprobe nouveau modeset=1" y reiniciar las X Nota: En caso de haber tenido instalado el driver privativo, será necesario descargar el módulo 'nvidia' antes de iniciar xorg con el nuevo driver (en otras palabras, hacer un modprobe -r nvidia). == 2.3. Driver privativo "nvidia": == == 2.3.1. Instalación mediante module-assistant: == Método general de instalación Primero asegurarse de tener activada la sección non-free de nuestros repositorios. Luego, instalar los drivers privativos de Nvidia en Debian usando module-assistant es tan sencillo como hacer los siguiente: # aptitude install module-assistant # m-a prepare # m-a a-i nvidia Por favor, refierase al manual de module-assistant en consola para ver las opciones disponibles, sobre todo si usa la opcion "purge", ejecute para ello: #man m-a Revisa antes los mensajes de error ya que muy probablemente no puedas instalarlo porque previamente exista una compilación errónea o "restos" de una mala instalación. En caso de no instalarse por éste motivo ejecuta: #m-a clean nvidia Vuelve al paso "2.3.1" para intentarlo de nuevo o continúa con el siguiente método: # m-a a-i nvidia-kernel-source Luego, para asegurarnos de tener todo actualizado: # aptitude install nvidia-glx En este punto, si todo ha salido bien, sólo resta editar el xorg.conf de modo que usemos el driver: En la sección "Device" debe quedar especificado el driver 'nvidia': Section "Device" ... ... Driver "nvidia" ... EndSection **¿Que ventajas tiene este método con respecto al .run de nvidia?** Todo quedará mucho más integrado en Debian, y la desinstalación de estos drivers se hará mucho más sencilla (aptitude purge los_paquetes_que_fueren). Casos especiales en las diferentes ramas de Debian En Lenny no están los drivers completos. En Etch creo recordar que sí, y en Sid también (por supuesto, en las ramas non-free). Esto es sencillo de ver si usando los repositorios de lenny hacemos: # apt-cache search nvidia cpufreqd - fully configurable daemon for dynamic frequency and voltage scaling dmraid - Device-Mapper Software RAID support tool nvclock - Allows you to overclock your nVidia card under GNU/Linux nvclock-gtk - Allows you to overclock your nVidia card under GNU/Linux nvclock-qt - Allows you to overclock your nVidia card under GNU/Linux nvidia-xconfig - The NVIDIA X Configuration Tool nvtv - tool to control TV chips on NVidia cards under Linux sensors-applet - Display readings from hardware sensors in your Gnome panel trigger - free 3D rally racing car game trigger-data - free 3D rally racing car game - data files xserver-xorg-video-nv - X.Org X server -- NV display driver nvidia-cg-toolkit - NVIDIA Cg Toolkit Installer nvidia-kernel-common - NVIDIA binary kernel module common files nvidia-settings - Tool of configuring the NVIDIA graphics driver python-cg - nVidia Cg driver binding for Python Que paquetes (básicos) nos faltan: nvidia-glx (o nvidia-glx-legacy-loquesea) nvidia-kernel-source Así, metemos los repositorios de sid: deb http://ftp.fr.debian.org/debian sid non-free # apt-cache search nvidia cpufreqd - fully configurable daemon for dynamic frequency and voltage scaling dmraid - Device-Mapper Software RAID support tool nvclock - Allows you to overclock your nVidia card under GNU/Linux nvclock-gtk - Allows you to overclock your nVidia card under GNU/Linux nvclock-qt - Allows you to overclock your nVidia card under GNU/Linux nvidia-xconfig - The NVIDIA X Configuration Tool nvtv - tool to control TV chips on NVidia cards under Linux sensors-applet - Display readings from hardware sensors in your Gnome panel trigger - free 3D rally racing car game trigger-data - free 3D rally racing car game - data files xserver-xorg-video-nv - X.Org X server -- NV display driver nvidia-cg-toolkit - NVIDIA Cg Toolkit Installer nvidia-kernel-common - NVIDIA binary kernel module common files nvidia-settings - Tool of configuring the NVIDIA graphics driver python-cg - nVidia Cg driver binding for Python nvidia-glx - NVIDIA binary Xorg driver nvidia-glx-dev - NVIDIA binary Xorg driver development files nvidia-glx-legacy-71xx - NVIDIA binary Xorg driver (71xx legacy version) nvidia-glx-legacy-71xx-dev - NVIDIA binary Xorg driver development files nvidia-glx-legacy-96xx - NVIDIA binary Xorg driver (96xx legacy version) nvidia-glx-legacy-96xx-dev - NVIDIA Xorg driver development files (96xx legacy version) nvidia-kernel-2.6-486 - NVIDIA binary kernel module for 2.6 series compiled for 486 nvidia-kernel-2.6-686 - NVIDIA binary kernel module for 2.6 series compiled for 686 nvidia-kernel-2.6-k7 - NVIDIA binary kernel module for 2.6 series compiled for k7 nvidia-kernel-2.6.18-4-486 - NVIDIA binary kernel module for Linux 2.6.18-4-486 nvidia-kernel-2.6.18-4-686 - NVIDIA binary kernel module for Linux 2.6.18-4-686 nvidia-kernel-2.6.18-4-k7 - NVIDIA binary kernel module for Linux 2.6.18-4-k7 nvidia-kernel-legacy-2.6-486 - NVIDIA binary kernel module for 2.6 series compiled for 486 nvidia-kernel-legacy-2.6-686 - NVIDIA binary kernel module for 2.6 series compiled for 686 nvidia-kernel-legacy-2.6-k7 - NVIDIA binary kernel module for 2.6 series compiled for k7 nvidia-kernel-legacy-2.6.18-4-486 - NVIDIA binary kernel module for Linux 2.6.18-4-486 (legacy version) nvidia-kernel-legacy-2.6.18-4-686 - NVIDIA binary kernel module for Linux 2.6.18-4-686 (legacy version) nvidia-kernel-legacy-2.6.18-4-k7 - NVIDIA binary kernel module for Linux 2.6.18-4-k7 (legacy version) nvidia-kernel-legacy-71xx-2.6-686 - NVIDIA binary kernel module for 2.6 series compiled for 686 nvidia-kernel-legacy-71xx-2.6-k7 - NVIDIA binary kernel module for 2.6 series compiled for k7 nvidia-kernel-legacy-71xx-2.6.18-4-686 - NVIDIA binary kernel module for Linux 2.6.18-4-686 (legacy version) nvidia-kernel-legacy-71xx-2.6.18-4-k7 - NVIDIA binary kernel module for Linux 2.6.18-4-k7 (legacy version) nvidia-kernel-legacy-71xx-source - NVIDIA binary kernel module source (71xx legacy version) nvidia-kernel-legacy-96xx-2.6-686 - NVIDIA binary kernel module for 2.6 series compiled for 686 nvidia-kernel-legacy-96xx-2.6-k7 - NVIDIA binary kernel module for 2.6 series compiled for k7 nvidia-kernel-legacy-96xx-2.6.18-4-686 - NVIDIA binary kernel module for Linux 2.6.18-4-686 (legacy version) nvidia-kernel-legacy-96xx-2.6.18-4-k7 - NVIDIA binary kernel module for Linux 2.6.18-4-k7 (legacy version) nvidia-kernel-legacy-96xx-source - NVIDIA binary kernel module source (96xx legacy version) nvidia-kernel-source - NVIDIA binary kernel module source Ahora sí, ya podemos instalar los drivers usando module-assistant. 2.3.2. Instalación mediante el instalador de nvidia: Para conseguir el driver debemos ir a la siguiente URL AQUI Instalación: - Entramos en un terminal (CTRL+ALT+F1) y nos logeamos como root: $su root - Desactivamos las X: Depende de lo que utilices, deberás ejecutar: GDM: #/etc/init.d/gdm stop KDM: #/etc/init.d/kdm stop XDM: #/etc/init.d/xdm stop Como alternativa, puedes pasar a modo monousuario con: #init 1 - Verificamos cual es la version de nuestro Kernel instalado: #uname -r ó #uname -a Y apuntamos el resultado para usarlo en el siguiente paso. - Agregamos a la instalación de nuestro sistema los siguientes componentes: apt-get install linux-headers-"aqui colocamos la versión que nos aparecio al hacer uname -r" gcc make Ejemplo para la version "2.6.25-2-486" del kernel (esto puede variar según el resultado del paso enterior): #apt-get install linux-headers-2.6.25-2-486 gcc make - Instalamos el driver; nos ubicamos en el lugar donde lo hemos descargado y escribimos: #sh NVIDIA-Linux-x86-173.14.12-pkg1.run La pantallas que aparecerán después son simples cuadros de dialogos en inglés, les suguiero traducirlos y tomar una decisión (no es nada dificil). En la parte que nos dice del tipo de compilador que estamos usando (gcc) y que no es quizá el mismo que tenemos instalado, tan solo le damos un NO y continuamos con nuestra instalación. El instalador nos preguntará casi al final si queremos que auto configure el archivo "xorg.conf", pues le decimos SI. Ojo: Leamos bién los cuadros de diálogo..!! Para pre finalizar, reiniciamos las X. Dependiendo de que utilices, ejecutarás: GDM: /etc/init.d/gdm restart KDM: /etc/init.d/kdm restart XDM: /etc/init.d/xdm restart Si pasaste a modo monousuario: #init 2 && startx - Para finalizar, verificamos que todo marche bien: quizá nuestro idioma de teclado haya cambiado, pero eso lo restauramos copiando o modificando la sección correspondiente al teclado y que tenemos guardado en nuestro backup de los archivos xorg.conf.old) Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Los resaltados con negro deben ser escritos iguales, porque sino, arrojaría un error (es simple, solo precaución) Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "latam" EndSection == 3. Configuración del xorg: == En este manual, por el momento, la configuración del xorg se explicó arriba en la sección correspondiente del capítulo "Instalación". == 4. Desinstalación: == == 4.1. Desinstalación de los drivers libres: == == 4.2. Desinstalación del driver privativo: == == 4.2.1. Desinstalación del driver privativo instalado mediante module-assistant: == Tan sencillo como escribir en consola (como root): # aptitude purge nvidia == 4.2.2. Desinstalación del driver privativo instalado mediante el instalador de nvidia: == Tan sencillo como escribir en consola (como root): # nvidia-uninstall Y lo hace todo automágicamente.