Tarjetas de Video nVidia en Linux.
April 14th, 2007 by Jorge MachinAunque prefiero las tarjetas de video ATI, también suelo usar tarjetas nVidia porque son baratas y fáciles de configurar. La computadora que utilizo para mis pruebas en Linux es un servidor Dell PowerEdge SC 430. Originalmente no traía tarjeta de video con aceleración gráfica y al principio estuvo bien, pero la verdad es que incluso para los scrolls de las terminales se necesita algo de aceleración. Por esa razón le agregué una modesta pero suficiente FX-5200.

Dell PowerEsge SC 430
Instalación de los controladores propietarios de Nvidia
En fedora la instalación se hace por medio de yum:
En Ubuntu:
nvidia-glx-config enable
Para que los cambios tomen efecto, es necesario salir de la sesión actual.
Archivo xorg.conf
El Archivo xorg.conf (/etc/X11/xorg.conf) tiene varias secciones:
1. Server Layout .
2. Configuración de la pantalla.
3. Configuración del ratón.
4. Configuración del monitor.
5. Configuración de la tarjeta de video.
6. Configuración de los módulos.
7. Configuración de los tipos.
Mi archivo de configuracion es el siguiente:
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
FontPath "unix/:7100"
EndSection
Section "Module"
Load "freetype"
Load "type1"
Load "record"
Load "fdbevhw"
Load "glx"
Load "dbe"
Load "extmod"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "latam"
EndSection
Section "Monitor"
Identifier "Monitor0"
ModelName "Samsung SyncMaster 753DF(X)/703DF(X)/783DF(X)/CD173A(T)"
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "dpms"
EndSection
Section "Device"
#Option "OpenGLOverlay" "on"
Identifier "Videocard0"
Driver "nvidia"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "Coolbits" "1"
#Option "VideoOverlay" "off"
Option "AddARGBGLXVisuals" "True"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1152x864" "1152x768" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
Rendimiento
Una forma fácil pero burda de probar el rendimiento de la aceleración 3D es con el programa glxgears:
En el servidor de mi casa da como resultado:
6955 frames in 5.0 seconds = 1390.953 FPS
Overclocking
Aunque no soy muy fanático del overclocking para que mi hardware viva más tiempo, pero hay veces que un 20% o 30% de rendimiento extra puede ser muy útil para sacar un video de muestra o para no quedar mal con las visitas. El overclocking se puede hacer desde la ventana de configurición de la tarjeta nVidia o desde la línea de comandos.
Primero, se necesita agregar la siguiente linea al archivo xorg.conf en la sección device donde se encuentra la tarjeta de video que queremos acelerar:
Desde el programa de configuración de nVidia (Menú->Sistema->Nvidia Display Settings) podemos modificar los parámetros de reloj para hacer el overclocking en la sección de "clock frequencies".

Ventana de configuración
Desde la línea de commando:
Attribute 'GPUOverclockingState' (linux.home:0.0) assigned value 1.
Attribute 'GPU3DClockFreqs' (linux.home:0.0) assigned value 306,514.
Con el overclocking, obtengo:
8663 frames in 5.0 seconds = 1732.444 FPS
que es una mejora cercana al 30%.
Beryl
Si se utilizan drivers propietarios de nvidia se tienen que hacer los siguientes cambios al archivo xorg.conf:
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
Load "GLCore"
Load "dri"
EndSection
Section "Screen"
...
DefaultDepth 24
Option "TripleBuffer" "true"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
...
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection