Gráficas ATI
Índice
1. Un poco de historia
2. ¿Cuáles son las opciones para usar una tarjeta ATI en GNU/Linux?
3. ¿Qué driver utilizar?
4. Instalar
4.1. El driver libre "ati"
4.2. El driver libre "radeonhd"
4.3. El driver propietario "fglrx"
4.3.1. Requisitos previos
4.3.2. Creación e instalación de los paquetes
4.3.3. Creación del módulo
5. Desinstalar
6. Configurar el xorg
6.1. De forma automática
6.2. De forma manual
6.2.1 En Debian 4.0 "etch"
6.2.2 En Debian "lenny"
6.2.3 Otras opciones
6.3. Comprobar el éxito
6.4. Afinar el driver
7. Problemas comunes
7.1 Con el driver libre
1. Un poco de historia:
ATI es uno de los grandes fabricantes de hardware gráfico, ha estado peleando por el liderazgo con NVIDIA durante años hasta que después de una bajada en las ventas fue comprada por AMD.
Su relación con el software libre siempre ha sido un poco ambigua, no tan amigable como Intel o Matrox pero más que NVIDIA, su primer movimiento importante fue la liberación bajo una NDA de las especificaciones hasta las Radeon 9200. Después de este movimiento, ATI se olvidó del software libre y el desarrollo de su driver propietario dejó mucho que desear; los drivers "fglrx" eran sensiblemente peores que los propietarios de NVIDIA y no tenían visos de mejorar. Pero todo cambió con la compra de la compañía por AMD; primero anunciaron una mejora sensible de su driver propietario, que fue mejorando poco a poco hasta que en septiembre de 2007 AMD liberó las especificaciones para los chipsets R500 o superior.
En este momento, ATI ha anunciado una equiparación de los drivers para todos los sistemas en cuanto al lanzamiento de drivers para sus nuevos dispositivos, mientras tanto, Novell se está encargando de desarrollar juntamente con la comunidad el driver libre "radeonhd", este desarrollo avanza a buen ritmo y se espera que en un relativo corto tiempo sea completamente usable.
2. ¿Cuáles son las opciones para usar una tarjeta ATI en GNU/Linux?
Ahora mismo en GNU/Linux existen tanto drivers libres como propietarios, pero algunas tarjetas (sobre todo las más modernas) no disfrutan de aceleración 3D con el driver libre actual "ati", aunque después de la liberación de especificaciones con el nuevo driver libre "radeonhd" esto quedará solucionado.
3. ¿Qué driver utilizar?
Si no vas a tener que utilizar las capacidades 3D de tu tarjeta es recomendable usar el driver libre "ati" para todos los chipsets; tendrás 2D en todos y en los más antiguos también 3D.
Si posees un tarjeta reciente con los chipsets R400 o superior y necesitas aceleración 3D, no tendrás otro remedio que usar el driver propietario "fglrx".
El nuevo driver "radeonhd" todavía no está suficientemente maduro (año 2008), pero cuando lo esté ya no será necesario usar el driver propietario en casi ninguna ocasión (excepto en algunos chipsets R400).
Nota:
- Para saber qué chipset corresponde a tu modelo de tarjeta gráfica, puedes consultar la siguiente tabla:
http://en.wikipedia.org/wiki/Radeon#ATI_Radeon_Processor_Generations
- Si no estas seguro todavía de qué tarjeta es la tuya, puedes ejecutar el comando lspci que te dará una salida indicando el modelo de tu tarjeta:
$ lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc RV630 [Radeon HD 2600 Series]* La tarjeta del ejemplo sería una ATI Radeon HD 2600 con el chipset RV630
4. Instalar:
4.1. El driver libre "ati"
El driver libre "ati" viene incluido en todas las ramas de Debian y soporta muchos modelos antiguos: todas las tarjetas ATI basadas en los chipsets Mach64, Rage 128, R100, R200, R300 y algunas R400 con soporte total incluido aceleración 3D por hardware.
Este driver consta de cuatro paquetes principales:
- xserver-xorg-video-radeon (radeon).
- Soporte 2D/3D para los chipsets R100, R200, R300 y algunos R400.
- Soporte 2D para los R400, R500 y R600. - xserver-xorg-video-mach64 (mach64).
- Soporte para las tarjetas basadas en el chipset Mach64. - xserver-xorg-video-r128 (r128).
- Soporte para las tarjetas basadas en el chipset Rage 128. - xserver-xorg-video-ati (ati).
- Este es un paquete especial que se encarga de descubrir que hardware poseemos y cargar el driver correcto.
La instalación de este driver es realmente sencilla, sólo debemos instalar el paquete necesario con nuestro gestor de paquetes preferido. Típicamente se instala el "xserver-xorg-video-ati" que tiene como dependencias los otros tres, pero si conocemos cuál es el paquete que da soporte a nuestra tarjeta y no queremos instalarlos todos, sólo es necesario instalar este.
Para mayor seguridad, si queremos utilizar la aceleración 3D es conveniente instalar, además del paquete del driver, también estos otros paquetes que proveen de los módulos necesarios para esta función:
- libgl1-mesa-dri
- libgl1-mesa-glx
Antes de instalar un nuevo driver, es aconsejable limpiar nuestro sistema de cualquier rastro existente de drivers anteriormente instalados. Para desinstalarlos podemos acudir a la sección correspondiente de esta página, aquí.
Ahora procedemos a instalar los paquetes necesarios con nuestro gestor de paquetes preferido, por ejemplo con aptitude:
# aptitude install libgl1-mesa-dri libgl1-mesa-glx xserver-xorg-video-ati
4.2. El driver libre "radeonhd"
El driver libre "radeonhd" está incluido actualmente (año 2008) en los repositorios oficiales de la rama testing ("lenny") y es el que Novell y la comunidad están realizando con las especificaciones liberadas por ATI de los chipsets R500 y R600. Por ahora sólo provee 2D pero está bajo un intenso desarrollo y promete un gran rendimiento.
Este driver consta de un solo paquete:
- xserver-xorg-video-radeonhd (radeonhd).
- Da soporte 2D para las tarjetas basadas en chipset R500 y R600.
Para instalar este driver simplemente instalaremos el paquete con nuestro gestor preferido:
# aptitude install xserver-xorg-video-radeonhd
4.3. El driver propietario "fglrx"
El driver propietario es el desarrollado directamente por ATI. Es un driver de código cerrado que ofrece soporte 2D/3D para todos los chipsets ATI Radeon, pero a partir de la versión 8.28 sólo soportan a partir de la serie R300 ya que el soporte del driver libre es correcto para los chipsets más antiguos.
Nota:
En Debian "etch", la versión de los repositorios es la 8.28.8, por lo tanto no posee la característica AIGLX y no soporta los modelos más modernos de las tarjetas ATI (sólo hasta el modelo X1900).
4.3.1. Requisitos previos
Antes de empezar a instalar estos driver hemos de tener en cuenta una serie de requisitos previos:
- Si en nuestro sistema hacemos uso de un kernel precompilado Debian debemos instalar los headers pertenecientes a la versión del kernel. Por lo tanto desde consola ejecutamos:
# uname -r
Este comando nos devuelve la versión del kernel.
Ahora estamos prontos para instalar los headers:
# aptitude install linux-headers-resultado del comando anterior
Nota: los comandos anteriores pueden ser invocados en uno solo:
# aptitude install linux-headers-`uname -r`
Atención: Antes de comenzar es aconsejable limpiar nuestro sistema de cualquier rastro existente de drivers anteriormente instalados, para desinstalarlos podemos acudir a la sección correspondiente de esta página, aquí.
4.3.2. Creación e instalación de los paquetes
Ahora procederemos a instalar el driver propiamente dicho, tenemos dos opciones principales:
Utilizar los repositorios oficiales Debian:
Este es el método recomendado para Debian, el que menos problemas puede ocasionar y también el más rápido y cómodo para el usuario.
- Los paquetes necesarios para las ramas "lenny" y "sid" son:
- fglrx-driver.
- El driver propiamente dicho. - fglrx-glx.
- El "libgl" propietario para el driver "fglrx". - fglrx-source.
- Fuentes (sources) para poder crear el paquete con el módulo a cargar.
*Otros paquetes recomendados:
- fglrx-control.
- Proporciona un centro de control gráfico para el driver. - fglrx-atieventsd
- Proporciona un demonio que controla ciertos eventos externos: acpi, etc...
- Si estamos en Debian "etch", los paquetes son estos otros:
- fglrx-driver.
- El driver propiamente dicho. - fglrx-control.
- Proporciona un centro de control gráfico para el driver - fglrx-kernel-src.
Sources para poder crear el paquete con el modulo a cargar.
Por lo tanto, sólo necesitaremos instalar los paquetes con nuestro gestor de paquetes preferido, p.e para Debian "lenny" sería:
# aptitude install fglrx-driver fglrx-source fglrx-glx fglrx-control fglrx-atieventsd
Utilizar el instalador oficial descargado desde la página de ATI.
Utilizando el instalador oficial tenemos dos opciones, instalarlo directamente o crear los paquetes para instalarlos de forma manual y que sean más fáciles de gestionar.
Primero hemos de bajar el instalador desde la página de oficial de ATI:
http://ati.amd.com/support/drivers/linux/linux-radeon.html
Una vez tenemos el archivo descargado, tenemos que darle permisos de ejecución:
$ chmod +x ati-driver-installer-....run
Ahora vamos a listar las diferentes opciones que posee este instalador:
Opciones de información y ayuda.
-h | --help Muestra la ayuda.
-i | --info Muestra la información del paquete descargado.
-l | --list Muestra una lista de los archivos contenidos dentro del instalador.
-c | --check Comprueba que la descarga no esté dañada.
--extract NewDirectory Descomprime el .run en el directorio seleccionado.
Opciones de ejecución.
--keep No borra el directorio creado por el instalador para hacer su trabajo.
--install Instala directamente el driver en el sistema (es lo mismo que ejecutarlo sin argumentos).
--listpkg Muestra una lista de todas las distros para las cuales puede crear los paquetes el instalador.
--buildpkg distro Crea el paquete para la distro seleccionada.
--buildandinstallpkg distro Como la opción anterior pero además instala el paquete.
Hasta aquí las opciones que nos da el instalador propietario de ATI, ahora pasamos a instalar el driver propiamente dicho.
Si no queremos crear los paquetes deb para poder gestionarlos con el gestor de paquetes y decidimos instalarlo directamente, sólo hemos de ejecutarlo como root:
# ./ati-driver-installer...
Después de unos minutos ya tendremos el driver instalado. (Usando este método ya hemos terminado, pasa a la sección de configuración)
Si elegimos crear los paquetes deb para instalarlos por nosotros mismos, primero necesitamos conocer qué paquetes podemos crear.
# ./ati-driver-installer...run --listpkg | grep Debian Añadiendo el túnel a grep nos ahorramos toda la salida
Created directory fglrx-install.UUUWul
Debian Packages:
Debian/sarge
Debian/oldstable
Debian/sid
Debian/unstable
Debian/etch
Debian/stable
Debian/lenny
Debian/testing
Debian/experimental
For example, to build a Debian Etch package, run the following:
% ./ati-driver-installer-<version>-<architecture>.run --buildpkg Debian/etchCon estos datos ya podemos crear los paquetes:
# ./ati-driver-installer...run --buildpkg Debian/rama
Después de un par de minutos obtendremos la siguiente salida indicando que nuestros paquetes ya están creados:
Created directory fglrx-install.l13606
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.501..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Generating package: Debian/lenny
Package /home/fauvell/fglrx-driver_8.501-1_i386.deb has been successfully generated
Package /home/fauvell/fglrx-driver-dev_8.501-1_i386.deb has been successfully generated
Package /home/fauvell/fglrx-kernel-src_8.501-1_i386.deb has been successfully generated
Package /home/fauvell/fglrx-amdcccle_8.501-1_i386.deb has been successfully generated
Removing temporary directory: fglrx-install.l13606Ahora tenemos los paquetes y sólo falta instalarlos usando dpkg, realmente sólo son necesarios estos dos:
- fglrx-driver...deb
- El driver propiamente dicho. - fglrx-kernel-src...deb
- Sources para poder crear el módulo.
De los otros dos paquetes es recomendable instalar también el panel de control; el de desarrollo es raro que nos haga falta:
- fglrx-driver-dev...deb
- Archivos de desarrollo del driver. - fglrx-amdcccle...deb
- Paquete que provee el panel de control para el driver.
Para instalar los paquetes usaremos dpkg:
# dpkg -i fglrx-driver...deb fglrx-kernel-src...deb fglrx-amdcccle...deb
4.3.3. Creación del modulo
Una vez tengamos instalados los paquetes por nuestro medio preferido (si has ejecutado el instalador de ATI no es necesario este punto) ya sólo falta crear el módulo con el module-assistant e instalar el paquete resultante:
# m-a prepare
# m-a update
# m-a build fglrx
# m-a install fglrx
o sustituimos los dos anteriores por este:
# m-a a-i fglrx
# depmod -a
5. Desinstalar.
Si hemos instalado cualquiera de los drivers desde un paquete o de los repositorios, sólo tenemos que purgar dichos paquetes desde nuestro gestor preferido. A continuación, un ejemplo para desinstalar el driver privativo "fglrx" (los nombres de los paquetes pueden diferir para otro driver):
# aptitude purge fglrx-driver fglrx-kernel-src fglrx-control fglrx-kernel-versión-actual
Para comprobar si ha habido una instalación automática del instalador propietario de ATI hemos de verificar la existencia del directorio /usr/share/fglrx/ (o /usr/share/ati/ para versiones modernas del instalador). Si lo está, quiere decir que existe una anterior instalación del driver propietario "fglrx".
Para eliminar esta instalación automática anterior sólo hay que ejecutar el script guardado en esa carpeta con este nombre:
# fglrx-uninstall.sh
6. Configurar el xorg
Una vez instalado el driver que vayamos a utilizar debemos modificar nuestro xorg para que nuestro sistema pueda utilizarlo. Para hacer esta tarea tenemos varias opciones:
Atención. Sea cual sea el método utilizado para configurar el xorg.conf no olvides hacer un respaldo de este por si algo sale mal.
6.1. De forma automática.
Sólo tenemos que reconfigurar el servidor gráfico y elegir el driver adecuado o preferido por nosotros:
# dpkg-reconfigure xserver-xorg
Nota: En estos momentos, este método automático sólo funciona correctamente en Debian "etch", que muestra todas las opciones de configuración y te permite elegir el driver. En Debian "lenny" no te pregunta nada del driver porque su xorg se autoconfigura en el inicio; esto funciona correctamente pero sólo con el driver libre, si quieres usar el driver propietario tendrás que editar igualmente el xorg.conf a mano.
En el caso especial que hayamos instalado el driver propietario de ATI tenemos una herramienta proporcionada por el fabricante:
# aticonfig --initial Inicializa el xorg.conf y lo configura correctamente
# aticonfig --overlay-type=Xv
Nota: Este método no es muy recomendable, ya que crea un xorg.conf confuso y difícil de editar para afinarlo más tarde.
6.2. De forma manual.
En este punto, debido a los cambios producidos en las ultimas versiones del xorg para Debian "lenny", vamos a separar la configuración para "etch" y "lenny". En cualquiera de estos dos sistemas hay algunas cosas comunes:
Para configurar el xorg.conf debemos editarlo con nuestro editor preferido y como root:
# nano /etc/X11/xorg.conf
Para las dos ramas los drivers disponibles son los mismos excepto el driver libre "radeonhd" que sólo se encuentra en "lenny":
- Driver "ati" Con esto utilizaremos el wrapper del driver libre para que este seleccione el más adecuado de los tres.
- Driver "radeon" Con esto utilizaremos el driver libre "radeon" directamente.
- Driver "r128" Con esto utilizaremos el driver libre "r128".
- Driver "mach64" Con esto utilizaremos el driver libre "mach64".
- Driver "radeonhd" Con esto utilizaremos el driver libre "radeonhd".
- Driver "fglrx" Con esto utilizaremos el driver propietario "fglrx".
6.2.1 En Debian "etch"
Dentro del xorg.conf debemos primero buscar en sección device una linea llamada "Driver" que tendrá un aspecto parecido a este:
Section "Device"
...
Driver "Driver actual"
...
EndSectionEditamos esta sección y colocamos el driver que queramos utilizar, dejándolo de forma parecida a esta (esto es un ejemplo para el wrapper del driver libre):
Section "Device"
...
Driver "ati"
...
EndSectionAhora pasamos a configurar el resto del xorg:
La sección "Module" deberemos dejarla de forma parecida a esto (aunque normalmente ya estará así):
Section "Module"
Load "dbe"
Load "ddc"
Load "dri" <<< importante para la aceleración
Load "extmod"
Load "freetype"
Load "glx"
Load "bitmap"
Load "int10"
Load "vbe"
EndSectionSi deseamos usar la aceleración 3D debemos asegurarnos de poseer esta sección en nuestro xorg.conf:
Section "DRI"
Mode 0666
EndSectionSi deseamos activar el soporte AIGLX para los nuevos escritorios 3D debemos activar el composite y la opción AIGLX:
Nota: Si hemos instalado el driver desde los repositorios, no tenemos disponible la opción AIGLX, para poseer esta característica debemos instalarlos desde el instalador oficial.
Primero debemos añadir a la "Section ServerLayout" esta opción, quedando así:
Section "ServerLayout"
...
Option "AIGLX" "true"
...
EndSectionTambién debemos activar el soporte para el composite:
Section "Extensions"
Option "Composite" "Enable"
EndSection6.2.2 En Debian "lenny"
Los cambios realizados por el equipo de xorg en aras de conseguir una más fácil configuración del hardware en estas primeras etapas han añadido alguna pequeña dificultad adicional para la configuración del hardware gráfico y Debian "lenny" se ha visto afectado de pleno por estos cambios; esta es una pequeña ayuda para activar los diferentes drivers en estos nuevos xorg tras la configuración de "lenny".
Si tenemos disponible un respaldo del xorg de "etch" o de "lenny", es recomendable restaurarlo y pasar a la configuración tipo "etch". Si no es así vamos a continuar.
El nuevo xorg auto-detecta nuestros dispositivos y activa todas las opciones disponibles para nuestro hardware utilizando el driver libre. Si nuestra tarjeta está plenamente soportada por el driver libre, o nos conformamos con las características que nos brinda este driver para nuestra tarjeta, no tenemos que hacer nada porque aunque este así de vacío el xorg.conf, el xorg activará por si mismo todas las opciones disponibles así como detectará la resolución óptima para nuestro monitor.
Para seleccionar un driver diferente al driver libre "ati", o asegurarnos que estamos utilizando este, debemos modificar la sección "Device" del xorg.conf que presentará un aspecto parecido a este antes de hacer nada:
Section "Device"
Identifier "Configured Video Device"
EndSectionAhora, elegimos el driver que prefiramos y añadimos una linea nueva al xorg con un aspecto parecida a esta:
Driver "Driver que prefiramos"Quedando la sección "Device" del xorg.conf de la siguiente manera (este es un ejemplo usando el driver propietario):
Section "Device"
Identifier "Configured Video Device"
Driver "fglrx"
EndSectionSi hemos elegido el driver propietario "fglrx" es conveniente configurar la resolución y la profundidad de color en la sección "Screen" (también si el xorg ha tenido dificultades para detectar la resolución o dicha profundidad de color).
Un ejemplo podría ser este, (debemos adaptarlo a nuestras circunstancias):
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
DefaultDepth 24
SubSection "Display"
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSectionSi la tasa de refresco también esta equivocada, debemos configurarla en la sección "Monitor", esto no es necesario normalmente pero si ocurre debemos dejar esta sección de una forma parecida a esta (otra vez, tenemos que adaptar la tasa de refresco a nuestro monitor):
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 28-64
VertRefresh 43-60
EndSectionNo es necesario tocar ninguna otra sección para un funcionamiento correcto del driver, aunque las veamos vacías no pasa nada, el xorg se encargara de adoptar las opciones necesarias y cargar los módulos correspondientes.
6.2.3 Otras opciones.
Para un mejor desempeño del driver podemos añadir las opciones que deseemos a la sección "Device", estas opciones podemos consultarlas en los man del xorg y del respectivo driver, por ejemplo radeon. Un ejemplo de una sección "Device" para el driver libre "radeon" es el siguiente:
Section "Device"
...
Option "AccelMethod" "XAA"
Option "AGPMode" "8"
Option "GARTSize" "64"
Option "EnablePageFlip" "1"
Option "ColorTiling" "1"
Option "XAANoOffscreenPixmaps" "true"
...
EndSectionSi hemos activado la opción para activar framebufer del kernel agregar el módulo/driver radeonfb en el archivo /etc/modules.
6.3. Comprobar el éxito.
Una vez instalado y configurado el driver podemos comprobar si hemos tenido éxito en nuestro intento de configuración, para ello tenemos varias herramientas y trucos:
Reiniciamos las X (o simplemente reiniciamos la computadora) y empezamos nuestras pruebas:
La primera y la más evidente es si las X levantan, si es así podemos continuar comprobando si las diferentes opciones que hemos configurado lo han hecho correctamente.
Vamos a comprobar si tenemos aceleración 3D (si la hemos configurado esta opción en nuestro xorg.conf y nuestro driver los permite).
Nota: Para hacer algunas de estas pruebas necesitamos tener instalado el paquete mesa-utils
$ glxinfo | grep direct
Si la salida es esta:
direct rendering: YesSi aparece "yes" tenemos la aceleración activada, si aparece un "no" debemos repasar que hemos hecho mal o si hemos equivocado el driver.
Ahora comprobamos que también este activado el módulo AIGLX.
cat /var/log/Xorg.0.log | grep -i aiglx
Nos sacara una salida como esta:
(**) Option "AIGLX" "true"
(**) AIGLX enabledPara comprobar la aceleración 3D tenemos también unos bonitos engranajes que podemos invocar con un par de ordenes:
glxgears
fgl_glxgears Esta orden sólo se utiliza en caso del driver propietario "fglrx"
Para comprobar la existencia de aceleración con el driver propietario también tenemos una herramienta especial:
fglrxinfo
Obtendremos una salida similar a esta:
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON X600
OpenGL version string: 2.0.5879 (8.35.18)Si en lugar de ATI aparece Mesa, quiere decir que algo no anduvo correctamente.
6.4. Afinar el driver.
Para afinar la aceleración 3D de nuestro driver tenemos varias opciones según el driver usado:
Si hemos instalado el driver libre "ati" podemos instalar driconf, una pequeña herramienta que nos permite de configurar el driver con opciones óptimas para el uso que le daremos.
# aptitude install driconf
Si estamos usando el driver propietario "fglrx" podemos usar el panel de control gráfico que nos provee el fabricante.
7 Problemas comunes.
En esta sección se encuentran los problemas comunes con estos drivers.
7.1. Con el driver libre.
- Está todo instalado, el xorg configurado, mi tarjeta soporta aceleración 3D, pero no tengo aceleración 3D.
Si en el log del xorg aparece un error como este:
(WW) RADEON(0): [agp] AGP not available
(EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI.
(II) RADEON(0): [agp] You may want to make sure the agpgart kernel module
is loaded before the radeon kernel module.Primero debemos probar a cambiar el orden de carga de los módulos. Editamos el /etc/modules y añadimos esto:
agp_intel (el driver de tu placa, cambia por el que necesites)
agpgart
radeon
radeonfbReinicias, si todavía no tienes aceleración te queda probar otra cosa:
Editas tu /etc/X11/xorg.conf y en la sección device fuerzas la tarjeta en modo pci añadiendo esto:
Option "BusType" "PCI"Reinicias el servidor gráfico y prueba.
- 1897 lecturas
- Comentarios page (3 comments)