2 feb. 2009

Aceleración 3D con nvidia en Ubuntu Jaunty alpha3

Uno de los puntos donde Jaunty debe seguir mejorando es el soporte de controladores restringidos con aceleración 3D para el entorno gráfico. Sin embargo, aunque oficialmente no hay aun soporte para los modelos de nvidia (podemos ver la información sobre este fallo en Bug #308410), ya es posible usar estos controladores para ejecutar juegos OpenGL o escritorios 3D como compiz. En este artículo os mostraré los pasos que seguí para conseguirlo en mi nVidia GeForce 8600GT.


  • ¿Que versión del controlador necesito?
Esto depende del chipset de nuestra nvidia, el chipset lo veremos con la orden:
$ lspci | grep -i vga
02:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)


En función de lo que salga usaremos el paquete:
nvidia-glx-180: para chipsets Geforce6 o superior
nvidia-glx-173: para chipsets Geforce5
nvidia-glx-96: para chipsets Geforce2 y Geforce4
nvidia-glx-71: para chipsets Riva TNT/TNT2

Nota: si no estás seguro de que driver exacto necesita tu gráfica puedes dirigirte a http://www.nvidia.com/ y rellenar el formulario de descarga del driver. Con eso sabrás que versión te recomienda y descargar esa versión usando apt-get


  • Instalación de controlador
Jaunty incorpora la última versión disponible del driver de nvidia empaquetada y lista para instalar con la orden (en caso de que tu chipset sea anterior al Geforce6 cambia 180 por la versión del driver que necesites):
$ sudo apt-get install nvidia-glx-180 nvidia-180-modaliases nvidia-settings nvidia-kernel-common


  • Editar el archivo /etc/X11/xorg.conf
Este archivo contiene las definiciones manuales de todos aquellos parámetros que el servidor gráfico no puede detectar por sí mismo, en nuestro caso lo usaremos para forzar el uso del controlador acelerado.

Creamos una copia de seguridad del archivo antes de modificarlo:
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup

Generamos un archivo /etc/X11/xorg.conf válido para nvidia con la orden:
$ sudo nvidia-xconfig

Editamos el archivo /etc/X11/xorg.conf:
$ sudo gedit /etc/X11/xorg.conf

Y añadimos al final del archivo estas lineas:
Section "ServerFlags"
Option "IgnoreABI" "True"
EndSection



  • Reiniciar el sistema
Este paso es necesario para que se puedan cargar los controladores del kernel, los alias de los módulos y de paso se reinicia el servidor gráfico para que empiece a usar el controlador acelerado:
$ sudo reboot

Una vez dentro del entorno gráfico nos aseguramos que todo ha ido bien con la orden:
$ glxinfo | grep -i render
direct rendering: Yes
OpenGL renderer string: GeForce 8600 GT/PCI/SSE2


Otra manera de comprobarlo es lanzarlo el programa de muestra del OpenGL que debería mostrar unos engranajes girando sin parar:
$ glxgears
40039 frames in 5.0 seconds = 8006.224 FPS
40713 frames in 5.0 seconds = 8142.548 FPS
40058 frames in 5.0 seconds = 8011.128 FPS


Y ya estamos listos para utilizar cualquier aplicación que necesite aceleración 3D.

jaunty.jpg
Jaunty alpha3 mostrando aplicaciones que requieren 3D


  • ¿Y si falla?
Si por algun motivo el entorno gráfico fallase sería tan fácil como restaurar la copia de seguridad que hicimos al principio (y opcionalmente volver a intentar el proceso con otra versión del driver):
$ sudo mv /etc/X11/xorg.conf_backup /etc/X11/xorg.conf


  • Artículos relacionados
Ubuntu 9.04 Jaunty Jackalope, Alpha3
Mil maneras de instalar el driver de nvidia


  • Más información
Fallo al instalar el controlador de nvidia en Jaunty: Bug #308410
Modificaciones necesarias para el /etc/X11/xorg.conf: X-server breakage
Drivers oficiales e información: http://www.nvidia.com/

12 comentarios :

Crashbit dijo...

Bueno, ahora toca una de libre :)

Pues sí, resulta que con Jaunty ya tenemos el tan esperado driver libre de nvidia (nouveau) de serie.
Rsulta que solo tenemos que hacer un aptitude install xserver-xorg-video-nouveau nouveau-kernel-source.

Y ... listo!

No tenemos acceleración 3D, pero seremos mas libres y si te fijas el driver 2D va muy,pero que muy bién.

Ahora que el kernel 2.6.28 ya lleva el gestor de memoria GEM, no creo que los desarrolladores de nouveau tengan dudas de que gestor usar para el 3D, manos a la obra!

PD. Saludos fosco :þ

Esteban dijo...

Segui las instrucciones y cuando reinicie no podia iniciar el entorno grafico (me da la opcion de restaurar los drivers por defaul, que es lo que hice, reconfigurarlo y otras dos mas) ya probe bajarlo de la pag de nvidia e instalarlo y tambien probe instalarlo por el controladores de hardware y no se puede.
Que otra cosa puedo hacer(tengo 9.04 final)

fosco_ dijo...

@Esteban: las instrucciones de este artículo eran exclusivamente para la alpha3 de Jaunty. Con la versión final q es la q tú tienes solo es necesario activar el driver desde el gestor de controladores.

No te recomiendo q uses los drivers de la web de nvidia porque una incorrecta instalación hará dificil luego diagnosticar donde está el problema.

Recomendación: instalación limpia y activarlos desde controladores del software, en caso de q no funcione seguir el artículo Mil maneras de instalar el driver de nvidiaSuerte.

Esteban dijo...

Ya probe la del controlador de hardware y la de los driver oficiales (no use el envy, por qie no me inspira confianza), no quiero los no oficiales ya que me interesa el 3d.
El de envidia me pide los source files (tengo los headers y el build-essential).

dirty fingers dijo...

Aca estoy fosco ! soy un usuario de ubuntu ! jaja y aprendo rapido asi que ya puedo tirarte un detale para mejorar esto. si le queres sacar un poco mas de jugo a la placa podes agregar esto en device Option "Coolbits" "1" y ahora en el menú de envidia aparece la opción de overclock ;-)

CJD dijo...

Hola agradezco mucho el tuto, me trae loco el driver nvidia (todas sus versiones) especialmente en jaunty.

tengo una Pentium IV (1 core) 1 gb ram fx5500 nvidia, y como en el Urban Terror ando con 5 a 30 FPS, me tire a tratar con el driver oficial... error mio.

ahora gracias a tu ayuda pude dejar la aceleracion 3D funcionando, el glxgears me tira el doble de fps que antes de comenzar la doisea del driver, pero con el direct rendering tengo un problema,

~$ glxinfo | grep -i render
Error: API mismatch: the NVIDIA kernel module has version 173.14.16,
but this NVIDIA driver component has version 173.14.18. Please make
sure that the kernel module and all NVIDIA driver components
have the same version.
NVIDIA: Direct rendering failed; attempting indirect rendering.
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
OpenGL renderer string: GeForce FX 5500/AGP/SSE2

esto debe ser consecuencia de mis pruebas anteriores.
no deberia el gestor de paquetes validar estas versiones?

Gracias

CJD dijo...

NOTA de mi post anterior, no encuentro nada con 173.14.18.

viendo el glxinfo completo encuentro

OpenGL version string: 2.1.2 NVIDIA 173.14.18

pero esto no se de donde se setea o configura o que.

Alguna pista donde buscar? el synaptic no me da nada con esos numeros

CJD dijo...

Novedades:

ya encontre de donde sale el 173.14.18 del driver, es el que baje de la pagina de nvidia, en tanto que el mudlo para el kernel es 173.14.16, el tema es como lo reemplazo, porque intente desinstalar todos los componentes de nvidia e instalar por apt-get (como dice al principio del tuto) para que tome todo de los repos, pero sigue igual.

$ glxgears
Error: API mismatch: the NVIDIA kernel module has version 173.14.16,
but this NVIDIA driver component has version 173.14.18. Please make
sure that the kernel module and all NVIDIA driver components
have the same version.
NVIDIA: Direct rendering failed; attempting indirect rendering.

alguna sugerencia como deshacerme definitivamente del .18 o en su defecto, llevar todo lo nvidia al .18 ?

gracias

jose alejandro dijo...

a mi como q no me funciona la aceleracion 3d. tengo una geforce 6200 turbo cache y el ubuntu 9.04. cuando trato de iniciar urban terror no sucede nada. cuando doy el comando glxinfo me aparece esto:
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
120 GLXFBConfigs:
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat


alguien me podria ayudar....
o guiarme en la configuracion del archivo xorg.list



otra cosa, no se si sea tambien de la configuracion de video pero siempre q agrando la pantalla para ver mas grande el video en youtube se cierra firefox
gracias de antemano.

fosco_ dijo...

Lo primero es que intentes hacer lo que sale en esta web, está bien explicado y no es difícil.

Si aun asi asi sigues teniendo problemas pon en que paso exacto tienes el problema y se te ayudará.

Suerte.

Jesús dijo...

Muchas gracias. He estado liado con la configuración de la nvidia fx500 para un i86 en Kubuntu Lucid durante al menos dos días. Si le instalaba el controlador que me ofrecía el Hardware drivers la resolución de pantalla más alta era de 600x300. Ahora puedo tenerla a 1280x1024.
Gracias de nuevo.

fosco_ dijo...

@Jesus: me alegro de que mi post te haya ayudado, y gracias por el comentario.