Guía nVidia Gentoo Linux
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 actuales, tales como las GeForce 8, 7, 6, y la serie
FX 5 debería usar los controladores más nuevos de la serie 100.x.
Las tarjetas un poco más antiguas, como las series GeForce 3 o GeForce
4 requieren los controladores 96xx. Para estas tarjetas, debería
enmascarar >=x11-drivers/nvidia-drivers-97.00 en el archivo
/etc/portage/package.mask. Esto prevendrá la instalación
de versiones más nuevas del controlador que son incompatibles con la
tarjeta.
Las tarjetas antiguas basadas en NV2x (como las TNT, TNT2, GeForce y
GeForce 2) requieren los viejos controladores 71.x (como
nvidia-drivers-71.86). Para estas tarjetas enmascare
>=x11-drivers/nvidia-drivers-87.00 en el archivo
/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 --->
< > nVidia Framebuffer Support
< > nVidia Riva support
|
Una alternativa de framebuffer es VESA:
Listado de Código 3.5: Activar el soporte para VESA |
Device Drivers --->
Graphics Support --->
[*] VESA VGA graphics support
|
Tal vez quiera probar 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.6: Activar soporte uvesafb |
Device Drivers --->
Graphics Support --->
<*> Userspace 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
|
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 |
# 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/modules.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 |
# nano -w /etc/modules.d/nvidia
# update-modules
# modprobe -r nvidia
# 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
|