Aceleración gráfica
Contenido
Si posees una tarjeta de vídeo o gráfica moderna, es posible que su fabricante, habitualmente nVIDIA o ATI, ofrezca la instalación de un software extra no libre, para aumentar el rendimiento y potencia de tu tarjeta de vídeo. Ubuntu, de serie, sólo puede y quiere incluir aquel que es software libre por lo que, si no te importa sacrificar este punto, deberás de realizar una serie de pasos que pueden variar dependiendo de tu fabricante y modelo de tarjeta. Suponiendo que sus fabricantes o distribuidores ofrezcan de alguna manera software para Ubuntu o sistemas GNU/Linux.
Sin esta posibilidad lo habitual es que todas aquellas aplicaciones que requieran de aceleración gráfica, especialmente juegos, no funcionen o no sean jugables por su bajo rendimiento.
Actualmente nVIDIA es la que está ofreciendo mejor software propio por su rendimiento, aunque fabricantes como ATI están aumentando su desarrollo en sistemas Linux como Ubuntu y otros como Intel han ofrecido como libre su software relacionado con sus tarjetas gráficas, populares en algunos equipos de fabricantes conocidos.
Activar aceleración gráfica de tarjetas nVIDIA
La opción más cómoda es instalar los drivers de los repositorios, pero si disponemos de una gráfica de última generación, es necesarios instalar los últimos drivers propietarios oficiales.
Instalar los drivers propietarios de nVIDIA mediante paquetes
Primeramente hay que Activar repositorios externos. Luego instalamos los paquetes nvidia-glx y nvidia-kernel-common
$ sudo aptitude install nvidia-glx nvidia-kernel-common $ sudo nvidia-xconfig
Finalmente reiniciamos la sesión (Sistema -> Salir -> Cerrar Sesión) y reiniciamos el servidor gráfico presionando Crtl+Alt+Backspace.
Si queremos evitar que aparezca el logo inicial de Nvidia debemos editar el archivo xorg.conf:
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf-backup $ gksudo gedit /etc/X11/xorg.conf
Buscamos la sección del dispositivo, que se ve similar a:
Section "Device" Identifier "NVIDIA Corporation NV11 [GeForce2 MX/MX 400]" Driver "nvidia" BusID "PCI:1:0:0"
y agregamos en esta sección la siguiente línea:
Option "NoLogo"
Guardamos el archivo y reiniciamos el servidor gráfico.
Instalar los drivers propietarios de nVIDIA directamente
(Ésta es la mejor opción si todos los demás tutoriales os han dado fallos por algún motivo desconocido). Ubuntu trae en los repositorios una versión concreta de los drivers oficiales de nvidia, pero ésta no se actualiza, y si has comprado una tarjeta gráfica de última generación, es posible que los drivers no la soporten; lo mismo te digo si no consigues que tu tarjeta funcione adecuadamente y has probado ya un montón de tutoriales). La mejor opción en este caso es instalar directamente los drivers oficiales de la web de nvidia, cuya última versión trae soporte para las nuevas GeForce 8800GT/GTX.
- Descargamos los drivers apropiados para nuestra arquitectura.
- Ahora tienes que desinstalar todos los modulos de Nvidia que tengas instalados via Synaptic:
-> nvidia-glx -> nvidia-settings -> nvidia-kernel-common (Este ultimo es importante que este desinstalado)
- Instalar linux-source-2.6.20 es conveniente conseguir instalarlo. Con el terminal ponemos:
$ sudo aptitude install linux-source-2.6.20
- Desempaquetar linux-source-2.6.20.tar .bz2 a /usr/src:
$ ln -s /usr/linux/linux-source-2.6.20 /usr/src/linux
- Buscar con Synaptic e instalar:
-> build-essential
- Cerramos la sesión -antes de hacer esto, copia las órdenes de aquí al final, porque luego vas a estar en modo texto-, pulsamos Ctrl+Alt+F1, nos logueamos y ejecutamos:
sudo /etc/init.d/gdm stop
En caso de usar KDE:
sudo /etc/init.d/kdm stop
- Ejecutamos el instalador de nVIDIA (fíjate en qué carpeta lo has bajado, porque tienes que ejecutarlo desde la carpeta en donde esté; por ejemplo si lo has guardado en el escritorio, que es donde te lo deja por defecto el gestor de descargas del navegador Firefox, sólo tienes que teclear algo así como:
$ cd /home/<nombre_usuario>/Desktop
Donde <nombre_usuario> es el nombre que usas para iniciar la sesión. Ahora sólo teclea lo siguiente:
$ sudo sh ./NVIDIA-....run
Donde NVIDIA-....run, claro está, es el nombre del archivo que descargaste con los drivers de nVIDIA
- Cuando nos pregunte si queremos que modifique automáticamente el fichero xorg.conf, le decimos que sí.
- Al final, actualizamos GDM
$ sudo dpkg-reconfigure gdm
Y reiniciamos:
$ sudo shutdown now -r
o bien:
$ sudo reboot now
Al reiniciar el sistema ya deberíamos tener funcionando todo y posiblemente nos saldrá la patalla de nVIDIA al arrancar el entorno gráfico.
Este proceso tambien lo podreis encontar aqui en ingles.
Iniciar tarjeta Nvidia en vez de la Intel integrada
Esta sección va dirigida a los propietarios de motherboards que tienen una tarjeta gráfica Intel integrada que a veces pueden ser poco amistosas cuando tratas de usar una tarjeta diferente en GNU/Linux.
En esta sección aprenderás como desactivar la tarjeta integrada tanto en la BIOS como en ubuntu y usar tu tarjeta gráfica Nvidia (también debería funcionar con tarjetas gráficas ATI).
Requerimientos
- Ubuntu instalado (no lo intentes en un LiveCD).
- Una tarjeta gráfica nVIDIA.
- Una buena conección a internet.
Instalación
- Encendemos el ordenador, entramos a la BIOS y la configuramos para que inicie con la tarjeta gráfica integrada ("onboard").
- Debemos asegurarnos de que el cable del monitor esté conectado a la tarjeta integrada.
- Iniciamos Ubuntu
- Editamos el archivo /etc/modprobe.d/blacklist/:
$ sudo nano -w /etc/modprobe.d/blacklist
- Añadimos las siguientes líneas al final del archivo:
blacklist agpgart blacklist intel_agp
- Guardamos el archivo y salimos del editor.
- Ahora, editamos el archivo xorg.conf:
$ sudo nano -w /etc/X11/xorg.conf
- Nos desplazamos a la sección Device ("Section Device") e insertamos un "#" delante del BUSID de la tarjeta gráfica, como en el siguiente ejemplo:
Section "Device" Identifier "NVIDIA Corporation NV34 [GeForce FX 5500]" Driver "nv" #BusID "PCI:1:9:0"
- Entonces, añadimos la opción NvAGP debajo de BUSID (solo si nuestra tarjeta es nVIDIA):
Section "Device" Identifier "NVIDIA Corporation NV34 [GeForce FX 5500]" Driver "nv" #BusID "PCI:1:9:0" Option "NvAGP" "1"
- Guardamos el archivo y salimos del editor.
Por supuesto la tarjeta que se usa en el ejemplo puede que no concuerde con la tuya. Quizás tu tarjeta Intel integrada tampoco. |
Fuente: Nvidia Intel Integrated (en inglés)
Activar aceleración gráfica de tarjetas ATI
Con respecto a la aceleración gráfica en las tarjetas ATI existen 2 controladores (drivers) que la activan:
- Uno es el controlador libre que viene incorporado con Ubuntu y da soporte en general a todas las tarjetas pero sólo tiene capacidad de aceleración gráfica 3D hasta el modelo radeon 9250 (inclusive). El controlador libre no es necesario que se active, da soporte 3D a modelos inferiores a la radeon 9250 desde la instalación de Ubuntu. Si dispones de uno de estos modelos, utiliza este driver ya que está en contínuo desarrollo; a diferencia del driver propietario de ATI, que dejó de desarrollarse desde la versión 8.28 para estas tarjetas. Para optimizar el rendimiento de la tarjeta con este driver, ver este enlace.
- Otro es el controlador propietario (no libre) distribuido por ATI que proporciona aceleración gráfica 3D a todas las tarjetas pero que no está incluido en Ubuntu por defecto. A continuación vamos a exponer 2 métodos para instalar el controlador propietario de ATI, uno es la instalación por paquetes (recomendable) específica para Ubuntu y otro es la instalación por medio del archivo .run de ATI (no recomendable).
ATI dejó de dar soporte a los modelos inferiores a la radeon 9250 (inclusive) a partir de la versión 8.28.8 de sus controladores. Aunque aun se pueden descargar e instalar (es versión) es recomendable usar los controladores libres.
Es conveniente estar informado sobre nuevas versiones. Para ello ATI dispone de este feed RSS. |
Instalar los drivers propietarios de ATI mediante paquetes
Si usas Ubuntu 6.10 Edgy Eft o 7.04 Feisty Fawn tienes que desactivar la extensión Composite (activada por defecto):
sudo gedit /etc/X11/xorg.conf
Al final del archivo, escribimos estas líneas:
Section "Extensions" Option "Composite" "0" EndSection
Guardamos y cerramos el editor de textos.
Si tenias alguna versión de los controladores propietarios debes desactivar el antiguo controlador de la siguiente forma:
sudo gedit /etc/default/linux-restricted-modules-common
Ahora escribimos:
DISABLED_MODULES="fglrx"
Guardamos y cerramos el editor de textos.
1. Descarga el instalador del driver de ATI desde la página de soporte de ATI. Hay versiones para sistemas de 32bit y 64bit, aunque no lo he probado en esta última arquitectura. En la página de la descarga hay una referencia a las notas de la versión (RELEASE NOTES) en la que puedes ver si tu tarjeta está soportada. Puedes descargarte la última versión escribiendo esto en una terminal:
wget https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8.40.4-x86.x86_64.run
2. Tienes que instalar algunos programas necesarios para crear los paquetes, por lo que necesitarás tener activados los repositorios universe y multiverse (Ver Activar universe y multiverse
sudo aptitude update sudo aptitude install module-assistant build-essential fakeroot dh-make debconf libstdc++5 linux-headers-`uname -r`
3. Ahora le decimos al instalador que cree los paquetes:
Si usas Ubuntu 6.06 Dapper Drake:
sudo bash ati-driver-installer-8.40.4-x86.x86_64.run --buildpkg Ubuntu/dapper
Si usas Ubuntu 6.10 Edgy Eft:
sudo bash ati-driver-installer-8.40.4-x86.x86_64.run --buildpkg Ubuntu/edgy
Si usas Ubuntu 7.04 Feisty Fawn:
sudo bash ati-driver-installer-8.40.4-x86.x86_64.run --buildpkg Ubuntu/feisty
4. Instalamos los paquetes generados:
sudo dpkg -i xorg-driver-fglrx_8.40.4-1_i386.deb sudo dpkg -i fglrx-kernel-source_8.40.4-1_i386.deb sudo dpkg -i xorg-driver-fglrx-dev_8.40.4-1_i386.deb sudo dpkg -i fglrx-amdcccle_8.40.4-1_i386.deb
5. Eliminamos los debs antiguos de fglrx que pudiesen haber de /usr/src/:
sudo rm /usr/src/fglrx-kernel*.deb
Con la nueva versión puede que esto no haga falta hacerlo, si no ves ningún archivo o dice que no hay ninguno, no intentes borrar nada más. |
6. Compilamos el módulo del kernel:
sudo module-assistant prepare sudo module-assistant update sudo module-assistant build fglrx sudo module-assistant install fglrx sudo depmod -a
Tienes que recompilar el módulo del kernel en cada actualización del kernel. |
7. Actualizamos el fichero de configuración xorg.conf escribiendo en una terminal:
sudo aticonfig --initial sudo aticonfig --overlay-type=Xv
O como alternativa:
sudo gedit /etc/X11/xorg.conf
luego cambia la línea:
Driver "ati"
por estas otras:
Driver "fglrx" Option "VideoOverlay" "on" Option "OpenGLOverlay" "off"
8. Y reiniciamos. Al volver a entrar en el sistema aparecerá en Aplicaciones -> Accesorios -> ATI Control el programa para gestionar algunos parámetros de nuestra ATI. Al ejecutar el programa fglrxinfo la salida debería ser algo como:
display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X300/X550 Series Generic OpenGL version string: 2.0.6011 (8.28.8)
Instalar los drivers propietarios de ATI mediante repositorios
Existe una opción más rápida que consiste en descargar directamente el driver de los repositorios. La versión que se encuentra es la 8.28.8, que es anterior a la actual. Para usar la última versión disponible deberemos instalar los paquetes manualmente.
1. Nos aseguramos antes de empezar de tener activados los repositorios Universe y Multiverse.
2. Instalamos los siguientes paquetes:
sudo apt-get install linux-restricted-modules-`uname -r` xorg-driver-fglrx
3. Añadimos los módulos al kernel:
sudo depmod -a
Si instalamos una nueva versión del kernel, debemos repetir este paso para recuperar la aceleración 3D. |
4. Actualizamos el fichero de configuración xorg.conf escribiendo en una terminal:
sudo aticonfig --initial sudo aticonfig --overlay-type=Xv
O como alternativa:
sudo gedit /etc/X11/xorg.conf
luego cambia la línea:
Driver "ati"
por estas otras:
Driver "fglrx" Option "VideoOverlay" "on" Option "OpenGLOverlay" "off"
5. Ahora ya solo nos queda reiniciar el servidor gráfico (Ctrl+Alt+Retroceso) para probar el sistema.
Instalar los drivers propietarios de ATI directamente
No es recomendable seguir este método ya que es muy genérico, el más fiable es la instalación por paquetes.
1. Descarga la última versión de los drivers de la página oficial de ATI/AMD. Hay que descargar el driver ATI Driver Installer, asegúrate que se trata de un archivo .run.
2. Abre el terminal y colócate en el directorio donde se ha descargado el driver e introduce en el terminal:
$ sudo sh ./ati-driver-installer-8.38.6-x86.x86_64.run
Siendo ati-driver-installer-8.38.6-x86.x86_64.run el nombre del archivo descargado.
3. Ahora basta seguir el asistente. En mi caso, cuando llego al punto Please, choose the mode of installation. sólo me permite el modo personalizado (Custom). Si te ocurre lo mismo, selecciona el modo Custom, presiona Continue y marca todas las casillas: Display and OpenGL Drivers, Kernel Module y Control Panel. El Control Panel no es estrictamente necesario.
4. Una vez concluida la instalación correctamente, introduce en el terminal:
$ sudo /usr/X11R6/bin/aticonfig --initial
5. Reinicia el sistema y comprueba la aceleración.
Activar aceleración gráfica de tarjetas 3DFX
Es necesario verificar si la tarjeta es una voodoo 2(o inferior) o voodoo banshee, 3 ó superior, para esto nos vamos a sistema, Administración, Administrador de dispositivos y buscamos donde diga voodoo.
Si es una Voodoo 2, debemos instalar el siguiente paquete:
libglide2
Si es una Voodoo Banshee, Voodoo 3, Voodoo 4 o Voodoo 5, este otro:
libglide3
Activar aceleración gráfica de tarjetas VIA / ASROCK / S3G
Unichrome / Unichrome Pro
Esta guía esta dirigida a los modelos:
- CLE266
- KN400
- KM400
- K8M800
- PM800
- CN400
- CN700
- VN800
- K8M890
- P4VM800
Pero puede darse el caso de que funcionen con otros modelos (aunque es poco probable).
Instalación automática
El controlador que dar soporte a los modelos anteriormente mencionados se llama OpenChrome y se puede instalar desde los repositorios de Ubuntu buscando el siguiente paquete:
*xserver-xorg-video-openchrome
Instalación manual
Si la instalación automática no funciona por cualqueir motivo (por ejemplo no proporciona la aceleración 3D) procederemos con la instalación manual.
No sé si afecta dejar instalado o no el paquete del modo automático pero por seguridad se recomienda desinstalarlo para empezar desde cero.
Aceleración 2D en OpenChrome
- Instalando los paquetes necesarios
Abrimos una terminal y escribimos lo siguiente:
Si usamos Ubuntu 6.10 o 7.04
sudo apt-get build-dep xserver-xorg-video-via
Si usamos Ubuntu 6.06.1
sudo apt-get build-dep xserver-xorg-driver-via
Luego para cualquier versión de Ubuntu instalamos los paquetes subversion, autoconf, automake1.9 y libtool del método que queramos. Aquí usaremos la terminal por lo que escribimos este comando:
sudo aptitude install subversion autoconf automake1.9 libtool
- Empezamos la diversión (compilación y instalación del controlador)
Para todos los modelos (excepto el K8M890) nos descargaremos el código fuente del controlador escribiendo el siguiente comando en una terminal:
svn checkout http://svn.openchrome.org/svn/trunk openchrome
Si disponemos del modelo K8M890 nos descargaremos un código fuente especifico, distinto del anterior:
svn co http://svn.openchrome.org/svn/branches/experimental_branch openchrome-vt3336
En la misma terminal entramos en la carpeta del controlador con este comando:
cd openchrome*
El siguiente comando configurará el controlador de acuerdo a nuestro sistema así como la ruta de instalación del mismo.
./autogen.sh --prefix=/usr
Compilamos el controlador (driver) OpenChrome
make
Instalamos el controlador
sudo make install
Por último debes modificar el archivo xorg.conf para sustituir "vesa" por "via" en la sección "Device". Para ello escribe en una terminal:
Si usas Ubuntu (GNOME)
sudo gedit /etc/X11/xorg.conf
Si usas Kubuntu (KDE)
sudo kate /etc/X11/xorg.conf
Ve a donde pone:
Section "Device"
Y cambia la palabra "vesa" (comillas incluidas) por "via" (comillas incluidas). Por último guarda el archivo y reinicia el ordenador, si por alguna razón tuvieras un problema durante la carga de las X escribe:
sudo nano /etc/X11/xorg.conf
Y invierte el proceso subtituyendo "vesa" en lugar de "via"
Aceleración 3D en OpenChrome
Teóricamente la aceleración gráfica o aceleración 3D debería funcionar automáticamente desde Ubuntu 6.10 (por lo que la 7.04 también funciona)
Si no es tu caso procederemos a instalar el controlador de forma manual:
- Instalando los paquetes necesarios
git-core y linux-headers-generic
Desde una terminal se pueden instalar con el siguiente comando:
sudo aptitude install git-core linux-headers-generic
- Descargamos el código fuente del controlador
git clone git://anongit.freedesktop.org/git/mesa/drm
- Compilamos e instalamos libdrm y drm
- libdrm
Entramos en el directorio con el siguiente comando:
cd drm
Ejecutamos el comando que configurará el controlador de acuerdo a nuestro sistema así como la ruta de instalación del mismo.
./autogen.sh --prefix=/usr
Compilamos el código fuente
make
Y lo instalamos
sudo make install
- drm
Sin cerrar la terminal al acabar el anterior proceso cambiamos de directorio:
cd linux-core
Compilamos los módulos del kernel
make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
Al parecer en Ubuntu 7.04 puede dar un problema al hacer lo anterior similar a este:
/home/shad/stuff/drm/linux-core/drm_compat.c:190: error: static declaration of ‘vm_insert_pfn’ follows non-static declaration include/linux/mm.h:1126: error: previous declaration of ‘vm_insert_pfn’ was here make[2]: *** [/home/shad/stuff/drm/linux-core/drm_compat.o] Error 1 make[1]: *** [_module_/home/shad/stuff/drm/linux-core] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic' make: *** [modules] Error 2
Si es tu caso (si también te ocurre lo mismo existe una solución temporal que conlleva modificar un archivo llamado drm_compat.c . Para ello en la misma terminal y sin haberla cerrado antes (debe estar en el mismo directorio) escribimos lo siguiente:
Si usas Ubuntu (GNOME):
gedit drm_compat.c
Si usas Kubuntu (KDE)
kate drm_compat.c
Y substituimos lo siguiente:
static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
unsigned long pfn)
{ int ret; if (!drm_pte_is_clear(vma, addr)) return -EBUSY; ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot); return ret; }
Por esto:
/* static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) { int ret; if (!drm_pte_is_clear(vma, addr)) return -EBUSY; ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot); return ret; } */
Guardamos el archivo y volvemos a escribir:
make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
Para los que le interese: Lo que estamos haciendo es comentar las lineas de código que dan problemas de tal forma que el compilador no las tendrá en cuenta durante el proceso. Extraído de este enlace: [1]
Seguimos con el tema :D
Copiamos los módulos del kernel al lugar correcto
sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/
Ejecutamos el depmod
sudo depmod -ae
Y cargamos los módulos
sudo modprobe drm sudo modprobe via
Escribimos en la terminal el comando:
glxinfo | grep render
Y si nos responde YES entonces ya tenemos aceleración gráfica por lo que pondremos los módulos para que se carguen al inicio del sistema.
echo "drm" | sudo tee -a /etc/modules echo "via" | sudo tee -a /etc/modules
Para acabar se recomienda reiniciar Ubuntu o por lo menos el entorno gráfico.
Para los chipsets: CLE266, KN400, KM400, K8M800, PM800, CN400, VN800, se puede utilizar los drivers encontrados en [2]. Este sitio, donde está el proyecto openChrome, creado para el desarrollo de software para los chipsets de video de VIA UniChrome.
Los paquetes precompilados específicamente para Ubuntu podemos encontrarlos dentro del mismo sitio en :
http://www.openchrome.org/snapshots/ubuntu/
Esos paquetes pueden no ser compatibles con Feisty Fawn, en este sitio están las notas correspondientes a Ubuntu |
Enlaces de interes
- Una guia de instalación (en inglés)
Envy
Ahora también hay disponible una nueva forma de conseguir la aceleración gráfica de forma muy cómoda y rápida, ya sea que tengamos una nVIDIA o una ATI. Se consigue sin más que instalar el paquete Envy, desarrollado por Alberto Milone y seleccionar nuestra marca de tarjeta. Podemos conseguir ese paquete en el sitio de su autor.
Enlace de descarga directa de Envy para Ubuntu:
http://albertomilone.com/ubuntu/nvidia/scripts/envy_0.9.7-0ubuntu8_all.deb
Consiste en un script realizado en el lenguaje Python y que utiliza las librerías gráficas GTK, por lo tanto se integra con los escritorios GNOME y Xfce (tambien funciona en KDE). Realizará todo este trabajo por nosotros y que, al terminar, nos dará la opción de reiniciar nuestro equipo. Tras eso, tendremos ya activa la aceleración gráfica.
Comprobar aceleración 3D
Una vez instalada la aceleración 3D con cualquier marca de tarjeta gráfica, para comprobar si ésta se encuentra funcionando podemos utilizar los programas incluidos en el paquete mesa-utils.
Primero, debemos instalar el siguiente paquete:
mesa-utils
Una vez instalado, hay dos comandos que podemos ejecutar.
El primero es glxinfo, que brinda información sobre el estado actual de la aceleración 3D. Para ejecutarlo, escribimos lo siguiente en una terminal:
$ glxinfo | grep direct
El otro comando es glxgears, que muestra en una pequeña ventana unos engranajes girando, en caso de estar activada la aceleración 3D:
$ glxgears
Ver también
Enlaces externos
- Sitio web oficial de nVIDIA (en inglés)
- Sitio web oficial de VIA (en inglés)
- Sitio web oficial de ATI (en inglés)
- sitio de soporte a GNU/Linux de ATI (en inglés)
- Guía de instalación no oficial del controlador propietario de Ubuntu (en inglés)
- Nvidia Intel Integrated (en inglés)