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
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.
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
|
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.
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.
¿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.
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
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
|
El contenido de este documento está registrado bajo los términos de la licencia Creative Commons - Reconocimiento / Compartir Igual