¡darandandunguen!

Configurar una ATI Radeon en Debian GNU/Linux

Últimamente he estado tratando de hacer funcionar la aceleración 3D de mi nueva tarjeta gráfica, una ATI Radeon 9550. Teóricamente debería haber sido fácil, desde la página de ATI te bajas el instalador y entre las opciones que tiene, una de ellas es generar paquetes específicos para Debian. El problema es que no importa que el instalador tenga éxito o no, siempre te dirá que el proceso ha sido un éxito. El segundo problema es que la información en cristiano es más bien cero y en inglés poco más. Por ello este mini-tutorial.

Qué debemos hacer y qué necesitamos:

  1. Desinstalar todo lo relacionado con nvidia
    Si, como era mi caso, tu anterior tarjeta era una nvidia, desinstálala ahora mismo, te ahorrará muchos quebraderos de cabeza más adelante. Para ello, ejecuta:

    /usr/bin/nvidia-installer --uninstall
  2. Fuentes del kernel
    Necesitarás las fuentes del kernel para poder compilar el módulo que necesitamos. Si has compilado tu propio kernel esto no es ningún problema, si no, si estas usando un kernel de Debian, puedes obtener los paquetes ya creados de la página de Flavio Stanchina (está en inglés)
  3. Opciones del kernel
    Tu kernel debe estar compilado con las siguientes opciones, de lo contrario tendrás problemas bien al compilar, bien al intentar cargar el módulo:

    • CONFIG_MODULES=y
    • CONFIG_MODULE_UNLOAD=y
    • CONFIG_KMOD=y
    • # CONFIG_MODVERSIONS is not set
    • CONFIG_MTRR=y
    • CONFIG_AGP=m
    • CONFIG_AGP_chipset=m
    • CONFIG_DRM=m
    • CONFIG_DRM_RADEON=m
    • # CONFIG_FB is not set
    • # CONFIG_FB_RADEON is not set
    • CONFIG_TMPFS=y
  4. Obtener el instalador y generar los paquetes
    Para ello primero debes descargar el instalador de la página de ATI. Teniendo en cuenta si tienes instalado el servidor de X de XFree para i386, de XFree para ia64 o de XOrg, deberás bajarte un instalador u otro. Bájate el archivo .run que es el que te permitirá crear los páquetes para debian.
    Una vez descargado, ejecútalo

    chmod u+x ati-driver-installer-8.16.20-i386.run
    ./ati-driver-installer-8.16.20-i386.run

    Por supuesto, es probable que en tu caso, la versión del archivo cambie, usa el sentido común ;)
    Selecciona la opción generar paquetes para una distribución específica y elige tu versión de Debian, en mi caso Debian/unstable, en el tuyo la que tengas instalada.
    Los paquetes que crea estarán en el directorio /tmp.

  5. Instalar los paquetes
    De los cinco paquetes que aparecen en el directorio /tmp, sólo dos son fundamentales y son los que instalaremos

    dpkg -i /tmp/fglrx-driver_8.16.20-1_i386.deb
    dpkg -i /tmp/fglrx-kernel-src_8.16.20-1_i386.deb
  6. Compilar el módulo del kernel e instalarlo
    Primero eliminamos cualquier fuente del driver que pudiesemos tener de pruebas anteriores, ejecutando

    rm -rf /usr/src/modules/fglrx*

    Después descomprimimos las fuentes del módulo (sabemos que están ahí porque se han creado al instalar el paquete fglrx-kernel-src_8.16.20-1_i386.deb en el paso anterior).

    cd /usr/src
    tar xjf fglrx.tar.bz2

    Para compilar el módulo hay tantos métodos como formas de compilaar el kernel, yo siempre recomiendo hacerlo The Debian Way, es decir usando el comando make-kpkg. Para ello iremos al directorio con las fuentes del núcleo y crearemos un paquete con el módulo

    cd linux
    make-kpkg --added-modules fglrx modules_image

    Es probable, que, según con que opciones compilases tu kernel, necesites añadir bien –append-to-version “[nombre]“, bien –revision “[revision]” o incluso ambas opciones.
    El paquete generado estará en el directorio /usr/src, lo instalamos como siempre con

    dpkg -i fglrx-[version].deb

    Por último, hemos de cargarlo con

    modprobe fglrx

    Si tienes algún problema ejecuta dmesg y actua en consecuencia, lo más usual es que tengas cargado algún otro módulo de drm. Puedes ver los módulos que tienes cargados con lsmod.

  7. Configura las X
    Edita el fichero de configuración /etc/X11/XF86Config-4 (o el fichero de configuración de XOrg [/etc/X11/xorg.conf] si es lo que usas tú) y asegurate que en la seccion Device tienes en la línea Driver la cadena “fglrx”. Por ejemplo

    Section "Device"
    Identifier "ATI_Radeon"
    Driver     "fglrx"

    Reinicia las X y ejecuta

    glxinfo

    Debes obtener algo parecido a

    name of display: :0.0
    display: :0  screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.2
    server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
    client glx vendor string: ATI
    client glx version string: 1.3
    client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context,
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_ATI_pixel_format_float,
    GLX_ATI_render_texture

Referencias. La mayoría de la información necesaria para crear este tutorial viene de diversos foros, y de la página de Flavio Stanchina y de Gentoo ATI Radeon FAQ. Ambas páginas en inglés-]]>

Be Sociable, Share!

Categorised as: Tutoriales


Comments are closed.