Gentoo Logo

Guía nVidia Gentoo Linux

Contenido:

1.  Introducción

Los controladores nVidia drivers en el árbol Portage los libera nVidia y son construidos contra el núcleo Linux. Contienen un binario que realmente hace el trabajo con respecto a la tarjeta. Los controladores consiste de dos partes: un módulo para el núcleo y un controlador X11. Ambos conforman un único paquete. Debido a la manera como nVidia empaqueta sus controladores, hará falta escoger antes de instalar.

El paquete nvidia-drivers contiene los controladores más actuales de nVidia con soporte para todas las tarjetas con varias versiones disponibles dependiendo de qué tan antigua sea la tarjeta. Usa un eclass para detectar que tipo de tarjeta está usando de manera de instalar la versión adecuada.

2.  Compatibilidad de los controladores

¿Cuál versión?

El paquete nvidia-drivers soporta la gama completa de tarjetas nVidia disponibles. Están disponibles múltiples versiones para instalación, dependiendo de la(s) tarjeta(s) que tenga.

Las tarjetas más modernas, tales como las GeForce 9, 8, 7 y la serie 6 deben usar los últimos controladores.

Las tarjetas un poco más antiguas, como las series GeForce FX 5 deben usar los controladores 173.x, como nvidia-drivers-173.14.15. Para estas tarjetas, debe enmascarar >=x11-drivers/nvidia-drivers-174.00 en su archivo /etc/portage/package.mask. Esto evitará que las nuevas versiones del controlador que son incompatibles con su tarjeta sean instaladas.

Las tarjatas anteriores como las series GeForce 3 o GeForce 4 requieren los controladores 96.x. Para estas tarjetas, debería enmascarar >=x11-drivers/nvidia-drivers-97.00 en su archivo /etc/portage/package.mask.

Las tarjetas más antiguas basadas en NV2x (como las TNT, TNT2, GeForce y GeForce 2) requieren los controladores 71.x (como nvidia-drivers-71.86). Para estas tarjetas debe enmascarar >=x11-drivers/nvidia-drivers-87.00 en /etc/portage/package.mask.

Puede revisar la compatibilidad de los controladores para su tarjetas y determinar el soporte disponible leyendo el archivo README según plataforma, sea x86 o x86-64 en la página apropiada.

3.  Configurar la tarjeta

Configuración del núcleo

Tal como mencionamos antes, el controlador nVidia en el núcleo se instala y ejecuta en el núcleo actual. Se construye como módulo, así que tiene sentido que el núcleo soporte la carga de módulos. Si ha usado genkernel all para configurar su núcleo entonces está listo, sino revise su configuración del núcleo para que este soporte esté activado:

Listado de Código 3.1: Activar la carga de módulos del núcleo

Loadable module support --->
  [*] Enable loadable module support

Probablemente tenga que activar Memory Type Range Register en el núcleo:

Listado de Código 3.2: Activar MTRR

Processor and Features --->
  [*] MTRR (Memory Type Range Register) support

Además, si tiene una tarjeta gráfica AGP, puede escoger activar el soporte agpgart del kernel, bien sea compilado integralmente o como un módulo. Si no usa el agpgart del núcleo, los controladores usarán su propia implementación de agpgart, llamada NvAGP. En ciertos sistemas se puede obtener mejor desempeño que la del kernel y en otros peor. Hará falta evaluar en el propio sistema para saber cual es el mejor desempeño. Si no está seguro qué hacer, use el agpgart del núcleo.

Listado de Código 3.3: Activar agpgart

Device Drivers --->
Character devices --->
_*_ /dev/agpgart (AGP Support) --->

Nota: En amd64, el IOMMU controla la configuración del agpgart.

Observaciones específicas a la arquitectura

Importante: En los procesadores x86 y AMD64, el controlador del núcleo hace conflicto con el de nVidia. Si compila su núcleo para alguno de estos procesadores, elimine completamente el soporte para el controlador del núcleo tal como mostramos:

Listado de Código 3.4: Eliminar el controlador incluido en el núcleo

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
< >   nVidia Framebuffer Support
< >   nVidia Riva support

Una de alternativa framebuffer es uvesafb, un framebuffer avanzado. Puede escoger su compilación integral al núcleo o como módulo. El siguiente ejemplo compila uvesafb de manera integral al núcleo.

Listado de Código 3.5: Activar soporte uvesafb

Device Drivers --->
Graphics Support --->
<*>   Userspace VESA VGA graphics support

O puede probar con VESA:

Listado de Código 3.6: Activar soporte VESA

 Device Drivers --->
 Graphics Support --->
 <*> Support for frame buffer devices --->
 [*]   VESA VGA graphics support
 

Para mayor información, puede leer /usr/src/linux/Documentation/fb/vesafb.txt si está usando vesafb o busque la documentación para su framebuffer en /usr/src/linux/Documentation/fb/.

Continuar con la configuración del núcleo

Los ebuilds nvidia-drivers automáticamente descubren la versión del núcleo con el enlace simbólico /usr/src/linux. Por favor, asegúrese que este enlace apunta a las fuentes correctas y que su núcleo esté correctamente configurado. Vea la sección "Configurando el Núcleo" del Manual Gentoo para más detalles sobre la configuración de su núcleo.

Primero, hará falta hacer emerge al paquete eselect (si es que ya no lo tiene). Si está usando las fuentes gentoo-sources-2.6.18-r4, el listado del núcleo se vería algo como:

Listado de Código 3.7: Chequee su enlace simbólico /usr/src/linux

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.18-gentoo-r4 *
  [2]   linux-2.6.20-gentoo-r7
  [3]   linux-2.6.20-gentoo-r8
(Verifique que el núcleo adecuado esté señalado con un asterisco

En la salida anterior, notará que el núcleo linux-2.6.18-gentoo-r4 está marcado con un asterisco (*) para mostrar que es el núcleo con el enlace simbólico.

Si el enlace simbólico no apunta a las fuentes correctas debe actualizar el enlace seleccionando el número del núcleo deseado, como en el ejemplo anterior.

Listado de Código 3.8: Crear/Actualizar el enlace simbólico /usr/src/linux

(Seleccione las fuentes del núcleo correcto)
# eselect kernel set 1

Instalando los controladores apropiados

Ahora toca instalar los controladores.

Listado de Código 3.9: Instalar los controladores nVidia

# emerge nvidia-drivers

Nota: Los controladores pueden instalarse con el parámetro USE gtk. Esto instalará también el paquete media-video/nvidia-settings, una útil herramienta gráfica para monitorear y configurar distintos aspectos de la tarjeta nVidia.

Importante: Cada vez que compile un nuevo núcleo o recompile el actual, debe volver a ejecutar emerge nvidia-drivers para reinstalar los módulos nVidia. Una manera más sencilla de seguirle la pista a los módulos instalados por los ebuilds (por ejemplo nvidia-drivers) es instalar sys-kernel/module-rebuild. Una vez instalado, ejecute module-rebuild populate para llenar su base de datos con una lista de paquetes que deben reconstruirse. Una vez que haya terminado de compilar o recompilar un núcleo, ejecute module-rebuild rebuild para reconstruir los controladores para el núcleo nuevo.

Al concluir la instalación, ejecute modprobe nvidia para cargar el módulo del núcleo a la memoria. Si es una actualización, primero debe remover el módulo anterior.

Listado de Código 3.10: Cargar el módulo del núcleo

# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia

Para evitar tener que cargar el módulo manualmente y automatizar esto cada vez que arranque, modifique /etc/modules.autoload.d/kernel-2.6 y agregue nvidia. ¡No se olvide ejecutar update-modules después!

Importante: Si compiló agpgart como módulo, tendrá que agregarlo al fichero /etc/modules.autoload.d/kernel-2.6..

Listado de Código 3.11: Ejecute update-modules

# update-modules

Configurar el servidor X

Una vez que los controladores apropiados estén cargados, hará falta configurar su servidor X para que use el controlador nvidia en vez del controlador nv.

Abra el archivo /etc/X11/xorg.conf con su editor de texto preferido (como nano o vim) y busque la sección Device. Allí cambie la línea Driver:

Listado de Código 3.12: Cambiar nv por nvidia en la configuración del servidor X

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  VideoRam   65536
EndSection

Luego vaya a la sección Module y verifique que el módulo glx sea cargado y que el módulo dri no lo sea:

Listado de Código 3.13: Actualizar la sección Module

Section "Module"
  (...)
  # Load  "dri"
  Load  "glx"
  (...)
EndSection

A continuación, en la sección Screen, asegúrese que la directiva DefaultDepth esté ajustada en 16 ó 24, o que solamente tiene subsecciones Display con la directiva Depth configurada con los valores 16 ó 24. Sin esto, las extensiones de nvidia-glx no se iniciarán.

Listado de Código 3.14: Actualizar la sección Screen

Section "Screen"
  (...)
  DefaultDepth 16
  Subsection "Display"
  (...)
EndSection

Ejecute eselect para que el servidor X use las bibliotecas GLX de nVidia:

Listado de Código 3.15: Ejecutar eselect

# eselect opengl set nvidia

Agregar usuarios al grupo video

Debe agregar el usuario al grupo video para que éste tenga acceso a los archivos de dispositivo nVidia:

Listado de Código 3.16: Agregar el usuario al grupo video

# gpasswd -a su_usuario video

Esto tal vez no sea totalmente necesario si no está usando udev, pero no hace daño alguno, ya que es una actualización a futuro.

Probar su tarjeta

Para probar su tarjeta nVidia, inicie X y escriba el comando glxinfo, que forma parte del paquete mesa-progs. Debería decir que el renderizado directo ha sido activado:

Listado de Código 3.17: Revisar el estado del renderizado directo

$ glxinfo | grep direct
direct rendering: Yes

Para verificar su FPS (cuadros por segundo), ejecute glxgears.

Habilitar el soporte para nvidia

Algunas herramientas, como pueden ser mplayer y xine-lib, utilizan una variable USE local llamada xvmc que activa el soporte para XvMCNVIDIA, útil cuando se ven películas de alta resolución. Añada esta variable USE a su /etc/make.conf o agréguela a media-video/mplayer y/o media-libs/xine-lib en /etc/portage/package.use.

Existen algunas aplicaciones que hacen uso del parámetro USE nvidia, de manera que quizás desee agregarlos al archivo /etc/make.conf.

Hecho esto, ejecute emerge -uD --newuse world para recompilar las aplicaciones que se benefician de este cambio en la variable USE.

Usar la herramienta de configuración de nVidia

nVidia también proporciona una herramienta de configuración. Esta herramienta permite revisar y cambiar la configuración gráfica sin reiniciar el servidor X. Está disponible en Portage como media-video/nvidia-settings. Tal como mencionamos anteriormente, será incorporada automáticamente al instalar el controlador con el parámetro USE gtk colocado en el archivo /etc/make.conf o en /etc/portage/package.use.

4.  Solución de problemas

¿Cómo hacer funcionar la aceleración 2D en equipos con 4Gb o más de memoria?

Si tiene problemas con la aceleración 2D es probable que no haya podido configurar un intervalo de escritura combinada (write-combining range) con el MTRR. Para verificar, revise el contenido de /proc/mtrr:

Listado de Código 4.1: Revisión de activación de escritura combinada

# cat /proc/mtrr

Cada línea debe contener "write-back" o "write-combining". Si ve una línea con la palabra "uncachable", habrá que cambiar la configuración del BIOS para hacerlo funcionar.

Reinicie su equipo e ingrese al BIOS. Encuentre la configuración MTRR (probablemente bajo "CPU Settings"). Cambie la configuración de "continuous" a "discrete" y reinicie Linux. Deberá poder comprobar que no hay entradas "uncachable" y que la aceleración 2D funcione sin problemas.

Cuando intento cargar el módulo del núcleo recibo el mensaje "no such device" (no existe tal dispositivo)

Esto normalmente ocurre cuando no se tiene una tarjeta de video nVidia. Asegúrese que tiene una tarjeta gráfica potenciada por nVidia (puede doblemente chequear esto usando el comando lspci).

Si está seguro que tiene una tarjeta nVidia, revise su BIOS y vea si la directiva Assign IRQ to VGA (Asignar IRQ a VGA) está activada.

5.  Configuración para expertos

Documentación

El paquete del controlador nVidia también viene con una exhaustiva documentación. Esta se encuentra instalada en /usr/share/doc y se puede ver con el siguiente comando:

Listado de Código 5.1: Ver la documentación de NVIDIA

$ less /usr/share/doc/nvidia-drivers-*/README.gz

Parámetros del módulo del núcleo

El módulo nvidia acepta un número de parámetros (opciones) que puede usar para refinar el comportamiento del controlador. La mayoría de estos están mencionados en la documentación. Para agregar o cambiar los valores de estos parámetros, edite el archivo /etc/modprobe.d/nvidia. Recuerde ejecutar update-modules después de modificar este archivo y tenga en mente que necesitará recargar el módulo nvidia antes de que tomen efecto la nueva configuración.

Listado de Código 5.2: Ajustar las opciones del módulo nvidia

(Edite /etc/modprobe.d/nvidia en su editor favorito)
# nano -w /etc/modprobe.d/nvidia
(Actualice la información del módulo)
# update-modules
(Descargue el módulo nvidia ...)
# modprobe -r nvidia
(... y cárguelo nuevamente)
# modprobe nvidia

Configuración avanzada del Servidor X

La capa GLX también tiene un variedad de opciones que pueden ser configuradas. Estas controlan la configuración de la salida de TV, pantallas duales, detección de frecuencia del monitor, etc. Nuevamente, todas las opciones disponibles están detalladas en la documentación.

Si desea usar cualquiera de esas opciones, tendrá que listarlas en la sección Device de su archivo de configuración del servidor X (normalmente en /etc/X11/xorg.conf). Por ejemplo, supongamos que se quiere desactivar el logo de inicio:

Listado de Código 5.3: Configuración avanzada de nvidia en la configuración de X

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  Option     "NoLogo" "true"
  VideoRam   65536
EndSection


Imprimir

Actualizado 5 de agosto, 2009

Sumario: Muchos usuarios de Gentoo tienen un chipset nVidia en su sistema. nVidia suministra controladores específicos para aumentar el desempeño de su tarjeta. Esta guía informa cómo instalar y configurar estos controladores.

Sven Vermeulen
Autor

Joshua Saddler
Editor

M. Curtis Napier
Editor

Chris Gianelloni
Editor

John Christian Stoddart
Traductor

Andrés Pereira
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.