viernes, 31 de agosto de 2012

Nouveau con aceleración 3D

Nouveau es un proyecto de Software libre y de código abierto que tiene el objetivo de crear un controlador de hardware libre para las tarjetas gráficas Nvidia, mediante el uso de ingeniería inversa de los controladores propietarios de GNU/Linux y del hardware Nvidia.

Este proyecto de la X.Org Foundation y freedesktop.org se baso originalmente en el controlador "nv" liberado anteriormente por nvidia. El nombre del proyecto hace referencia al hecho de que "nouveau" significa "nuevo" en francés.

- La aceleración 2D tiene una madurez suficiente para trabajar en el día a día.

- El uso de KMS es obligado, forma parte del driver y es necesario. Es además el principal punto conflictivo para aquellos que quieren usar el driver de nvidia privativo. Es necesario, en aquellos casos, desactivar el KMS (metiendo por ejemplo el módulo nouveau en el blacklist de modprobe).

( KMS (Kernel Mode Setting) es una tecnología que permite que sea el kernel y no el driver X11, el encargado de manejar el modo gráfico de la consola. Esto reduce la carga en el sistema, y permite que ciertas operaciones se realicen algo más rápido. Pero también ayuda a los desarrolladores a solucionar problemas del kernel cuando el sistema de ventanas X está ejecutándose. Sin embargo, apenas notaremos diferencias, salvo quizás mejores tiempos cuando realizamos el cambio de un usuario a otro en la misma máquina, algo que no utilizamos muchos de nosotros pero que es una consecuencia directa de la aplicación de KMS )

- El driver tal y como lo proporciona el paquete de Debian Squeeze no posee capacidad de aceleración 3D (a petición de los desarrolladores de nouveau). Si deseas tener soporte para aceleración 3D (totalmente experimental, y solo funciona en algunas tarjetas), dirígete al sitio de nouveau, donde se explica como compilar los drivers con soporte para Gallium3D. Sin embargo en Debian Wheezy si incluye aceleración 3D.

Direct Rendering Manager (Gestor de Renderizado Directo o DRM) es un componente de Direct Rendering Infrastructure (Infraestructura de Renderizado Directo o DRI), que provee a sistemas operativos tipo Unix, como Linux, FreeBSD, NetBSD, y OpenBSD de aceleración gráfica eficiente, especialmente para aplicaciones 3D.

Consiste en dos módulos del kernel: un módulo genérico llamado drm, y otro específico para el chip gráfico de que conste el hardware. Estos dos drivers en conjunto permiten que un cliente en el espacio de usuario (userspace) pueda acceder al hardware de vídeo de manera más o menos directa, acelerando de este modo la producción de imágenes.






Instalar Nouveau con aceleración 3D

Si realizamos una instalación limpia y nueva de Debian GNU/Linux Squeeze, el driver que incluye por defecto para las tarjetas gráficas nvidia es nouveau, pero este no incluye aceleración 3D.

A partir de la actual Debian testing llamada Wheezy, el driver nouveau incluye aceleración 3D por defecto.

Con la utilización del siguiente comando en una consola virtual, podemos verificar que contamos con aceleración 3D,

glxinfo | grep direct


También podemos ver que tenemos habilitada la aceleración 3D, haciendo uso de la herramienta de kde llamada kinfocenter. Nos dirigimos al apartado Información Gráfica, en los submenus Servidor X y OpenGL




Para asegurarnos que tendremos un funcionamiento decente en la aceleración 3D usamos el siguiente comando:

# glxgears



Vemos somos los engranajes empiezan a funcionar y en la otra ventana a parecen los frames, con un resultado decente, aunque muy lejos del driver privado de nvidia. Aun siendo el driver privado mejor que el libre, me quedo con el driver libre Nouveau con gallium 3D.




Con esta aceleración 3D, podemos hacer de todo, jugar, usar programas que necesite aceleración 3D, etc... y todo con software libre.





Instalar Nouveau y desinstalar Nvidia desde synaptic

SI tenemos instalado el driver propietario de nvidia, y ahora después de leer este manual nos damos cuenta que con el driver libre NOUVEAU, podemos hacer lo mismo pero con el driver libre, los pasos a seguir son los siguientes:

Tenemos que deshacer los pasos dados anteriormente para instalar el driver privado de nvidia, tal como se indica en el manual de instalación del driver privado (enlace aquí)

Vamos a resumir los pasos a seguir para desinstalar nvidia e instalar nouveau.

- Primero. instalamos con synaptic el driver libre nouveau: xserver-xorg-video-nouveau


- Segundo. Eliminamos el módulo del driver nouveau de la lista negra en el fichero blacklist.conf que se encuentra en /etc/modprobe.d






Borramos el módulo del driver nouveau, (que aparece en la imagen de arriba) para que se cargue en el arranque del sistema. Quedando como se observa en la imagen de abajo.






También hemos de borrar todas la referencias al módulo del driver nouveau de los ficheros que se incluyen en la misma carpeta del fichero blacklist.conf, es decir de /etc/modprobe.d
y observamos como existen referencias al modulo nouveau en los siguientes ficheros:

- blacklist.conf
- nvidia-installer-disable-nouveau.conf
- dkms.conf

En todos estos casos borramos la referencia al driver nouveau o bien comentamos la línea con el símbolo almohadilla, ya que dicho símbolo, lo que hace es ignorar el contenido de dicha línea. Y añadimos a la lista el modulo de nvidia, para que no lo cargue en el arranque. (blacklist nvidia y blacklist nvidiafb)

blacklist.conf





nvidia-installer-disable-nouveau.conf



 dkms.conf




- Tercero. Ahora tenemos que desinstalar los siguientes paquetes y todas sus dependencias:

- nvidia-kernel-2.6.32-5-amd64 (o el que corresponda según nuestro sistema)
- nvidia-glx
- nvidia-xconfig
- nvidia-settings








Ahora ya esta desinstalado el driver de nvidia instalado desde los repositorios de Debian GNU/Linux.

*En caso de haber instalado el driver bajado desde la web oficialde nvidia, hemos de usar el siguiente comando en una consola y usando el usuario administrador:

nvidia-installer --uninstall

Ahora ya esta desinstalado el driver de nvidia bajado desde la web oficial de nvidia.

- Cuarto. El siguiente paso es borrar el fichero de configuración xorg.conf que se encuentra en /etc/X11 con la ayuda del programa krusader





 -Quinto y ultimo. Como previamente teníamos instalado el driver privado nvidia, este realiza modificaciones en el fichero de configuración de glx llamado libglx.so Este fichero se encuentra en el paquete xserver-xorg-core para restaurar dicho fichero a su estado original, tan solo tenemos que reinstalar dicho paquete, con la ayuda de synaptic.

apt-get install --reinstall xserver-xorg-core


Ahora lo mas fácil para un usuario novel es reiniciar el ordenador. y con esto ya tenemos el driver nouveau instalado y funcionando con aceleración 3D gracias a gallium 3D y a OpenGL.





VIDEOTUTORIAL









Enlaces para instalar el driver privado.

- Driver Nvidia
- Debian Squeeze, instalar driver Nvidia
- Nvidia - Driver privado oficial
- Desinstalar driver Nvidia






















4 comentarios:

Anónimo dijo...

Mmm... pero no funciona, luego de instalar los nouveau ya no carga el lightdm

Usuario_Debian dijo...

Hola.
Seguiste el tutorial?, En el punto 4, pone:

Cuarto. El siguiente paso es borrar el fichero de configuración: xorg.conf que se encuentra en /etc/X11 con la ayuda del programa krusader

Es super importante borrar el archivo xorg.xonf

Saludos

jose dijo...

Gracias! me sirvio para Debian 9, 4.9 rt realtime que no le va el nividia 304XX legacy para una GeForce 7025 nForce 603a.

Anónimo dijo...

Gracias,debian 10 nividia 304XX legacy para una GeForce 7025 nForce 603a.

solo tuve que instalar los Mesa GL utilities en debian para los comando glxinfo y glxgrep con:
apt-get install mesa-utils