Compilar Kernel con aceleración gráfica para ATI

Aquí explico cómo se compila un kernel en Debian y como he conseguido la aceleración gráfica para mi tarjeta ATI 9600XT (es extensible a muchas tarjetas gráficas con chip ATI)

Compilación de un kernel para Linux

Vamos a explicar cómo compilar un kernel para Debian:

  1. Lo primero que debemos hacer es instalar los paquetes necesarios para poder llevar a cabo nuestra
    tarea. Si tenemos Debian instalado, esto es muy fácil, dado que Debian cuenta con una herramienta llamada apt-get, que permite bajar e instalar automáticamente cualquier paquete. Suponiendo que tenemos el fichero sources.list (que se encuentra en /etc/apt) correctamente configurado, hemos de actualizar la lista de paquetes disponibles (si no lo hemos hecho antes):

    apt-get update

    Ahora hemos de descargar los paquetes necesarios para realizar la compilación de nuestro kernel, para ello, haremos:

    apt-get install kernel-package
    apt-get install libqt3-mt-dev

  2. Una vez instalados los paquetes necesarios, hemos de bajar las fuentes del kernel que deseemos (es bastante recomendable bajarse el último kernel disponible, sobre todo si tenemos un hardware relativamente nuevo. Si tenemos una tarjeta gráfica ATI, y deseamos instalar los drivers de ATI, recomiendo descargar dichas fuentes con la herramienta apt-get, de la siguiente forma:

    apt-get install kernel-source-2.6.10

    (en vez de 2.6.10 podemos poner otra cualquiera, actualmente el 2.6.10 es la más moderna disponible)
    esto nos dejará en el directorio /usr/src un archivo comprimido que descomprimiremos con la siguiente orden:

    cd /usr/src
    tar -jxvf kernel-source-2.6.10.tar.bz2

    una vez descomprimido, tendremos un directorio llamado kernel-source-2.6.10 en /usr/src, y ahora
    es aconsejable realizar un enlace simbólico a este directorio (si anteriormente ya tenemos otro
    enlace simbólico hemos de borrarlo con la orden rm linux)

    ln -sf /usr/src/kernel-source-2.6.10 linux

    Llegados a este punto, conviene comentar que también podemos bajarnos las fuentes del kernel de www.kernel.org (en este momento el último estable es el 2.6.11.2), para ello bajaremos el fichero linux-2.6.11.2.tar.bz y lo descomprimiremos exactamente igual que
    antes:

    tar -jvxf linux-2.6.11.2.tar.bz2 -C /usr/src

    y ahora haremos el enlace simbólico igual que hicimos antes:

    cd /usr/src
    ln -sf /usr/src/linux-2.6.11.2 linux

    NOTA IMPORTANTE: Para instalar los drivers de ATI es muy recomendable bajarse las fuentes del kernel con el gestor de paquetes apt-get y no directamente desde www.kernel.org

  3. Ahora viene la parte más pesada, configurar el kernel para nuestro hardware, lo que nos permitirá optimizar el kernel para dicho hardware. Para ello, suponiendo que ya estamos en el directorio /usr/src, haremos:

    cd linux

    entrando en el enlace simbólico linux anteriormente creado. Ahora hemos de copiar la configuración de nuestro actual kernel, que se suele encontrar en el directorio /boot, para ello haremos:

    cp /boot/config* .config

    (dónde pone un *, deberemos pulsar el tabulador para que se complete automáticamente el nombre)
    Y ahora debemos adaptar la configuración de nuestro kernel actual a la del nuevo kernel, para ello ejecutaremos la orden:

    make oldconfig

    que nos irá preguntando acerca de las nuevas características del nuevo kernel que el anterior no tenía, aquí si desconocemos lo que nos pregunta, podemos darle a enter y él mismo se encargará de poner la opción por defecto (yo le doy a enter en todas las opciones y lo configuro luego en el menú gráfico).
    Una vez realizado esto, se pasará a la configuración del kernel, para ello tendremos que ejecutar la siguiente orden para que nos abra un menú gráfico:

    make xconfig &

    Aquí podremos seleccionar un montón de cosas, desde nuestro tipo de procesador, hasta los sistemas de ficheros que vamos a utilizar en nuestro sistema linux. Suele haber tres opciones para cada casilla: activado dentro del kernel (marca V), activado cómo módulo (marcado con un punto) o desmarcado. Las casillas correspondientes al chipset y sistema de ficheros es aconsejable no variarlas (si estan dentro del kernel no cambiarlas a módulos), ya que esto puede hacer que nuestro nuevo kernel no arranque. En caso de querer instalar posteriormente los drivers de la tarjeta gráfica ATI, deberemos configurar ciertas cosas tal y como se indica en el apéndice 1

    Cuando finalicemos de configurar nuestro nuevo kernel (lleva su tiempo hacerlo bien), guardaremos la configuración y pasaremos a compilarlo. Para compilarlo existen varias opciones, pero nosotros vamos a crear un paquete .deb que nos permitirá volver a instalarlo posteriormente en otro sistema Debian (ojo: el hardware ha de ser prácticamente igual) o volver a instalarlo en nuestro sistema cuando formateemos nuestro disco duro (lógicamente para ello hemos de salvarlo). Para compilarlo, ejecutaremos la siguiente orden:

    make-kpkg append-to-version -XXXX –initrd kernel_image

    (en donde pone XXXX podemos poner cualquier cosa que se nos ocurra, esto identificará posteriormente a nuestro kernel)
    Una vez hecho esto el sistema nos informará que es posible que nuestro nuevo kernel no arranque (si has sido cuidadoso esto no pasará), y nos preguntará si deseamos abortar el proceso, lógicamente responderemos N y el proceso continuará. El proceso de compilación lleva
    bastante tiempo (10-15 minutos en un AMD64 3200+ y hasta 4 horas en un Intel Pentium II de 333 Mhz)

  4. Una vez finalizado el proceso, el comando make-kpkg nos ha dejado un paquete .deb en el directorio /usr/src, ahora sólo quedará instalarlo, para ello:

    cd /usr/src
    dpkg -i kernel-image*

    Si tenemos instalado grub como selector de arranque, el proceso ya estará finalizado, en caso de tener instalado lilo, tendremos que actualizar el fichero /etc/lilo.conf, añadiendo un nuevo párrafo para el nuevo kernel que acabamos de instalar. Hemos de añadir una entrada para el vmlinuz y para el initrd.img que acabamos de crear (se encuentran en el directorio /boot y los distinguiremos por lo que pusimos a continuación del append-to-version). Una vez hecho esto, deberemos actualizar la configuración de LILO, ejecutando la siguiente orden:

    /sbin/lilo

APÉNDICE 1: CONFIGURACIÓN ATI

En este apéndice indico cómo debemos configurar nuestro kernel si deseamos instalar posteriormente drivers para una tarjeta gráfica ATI:

CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y

CONFIG_MTRR=y

CONFIG_AGP=m
CONFIG_AGP_chipset=m

CONFIG_DRM=y
CONFIG_DRM_RADEON=m

CONFIG_FB is not set

CONFIG_TMPFS=y

y= V (incluido directamente en el kernel)
m = module (para ello ha de quedar marcada con un punto)

COMPILACIÓN E INSTALACIÓN DE DRIVERS ATI

A continuación explico como compilar e instalar los drivers de las tarjetas gráficas ATI. Esto es sólo para distribuciones basadas en Debian (para el resto de distribuciones que utilizan paquetes RPM, ATI dispone del paquete rpm ya listo para instalar.

  1. Instalación de los paquetes necesarios: Realizaremos la instalación de los siguientes paquetes, utilizando el maravilloso gestor de paquetes de Debian:

    apt-get install debhelper
    apt-get install xlibs-dev
    apt-get install libxtst-dev
    apt-get install rpm
    apt-get install wget
    apt-get install fakeroot

  2. Descargaremos fglrx-installer_8.10.19-1.dsc
    y fglrx-installer_8.10.19-1.tar.gz

    Ahora procederemos a instalar estos paquetes:

    dpkg-source -x fglrx-installer_8.10.19-1.dsc
    cd fglrx-installer-8.10.19
    fakeroot debian/rules binary

    Esto descargará los drivers de ATI y nos creará en nuestro directorio los siguientes paquetes:

    fglrx-driver_8.10.19-1_i386.deb
    fglrx-driver-dev_8.10.19-1_i386.deb
    fglrx-kernel-src_8.10.19-1_i386.deb
    fglrx-control-qt3_8.10.19-1_i386.deb
    fglrx-sources_8.10.19-1_i386.deb

  3. De todos estos paquetes sólo nos interesan el primero y el tercero, que instalaremos con las siguientes órdenes:

    cd
    dpkg -i fglrx-driver_8.10.19-1_i386.deb
    dpkg -i fglrx-kernel-src_8.10.19-1_i386.deb

  4. Ahora nos toca compilar los drivers para el kernel que previamente hemos creado, para ello, primero hemos de descomprimir el paquete fglrx-kernel-src de la siguiente forma:

    cd /usr/src
    tar xzvf fglrx-kernel-src.tar.gz

    y ahora compilarlos con la siguiente orden:

    cd linux
    make-kpkg –append-to-version «-XXXX» –added-modules fglrx-kernel-src modules_image

    (OJO: donde pone XXXX, hemos de poner lo que anteriormente hemos utilizado para compilar nuestro kernel)

    Esto nos creará un paquete en el directorio /usr/src que instalaremos de la siguiente forma:

    cd /usr/src
    dpkg -i /usr/src/fglrx-kernel*.deb</p<

    Si no ha habido ningún fallo hasta ahora, ya podremos cargar el driver de ATI con la siguiente órden:

    modprobe fglrx

  5. Ahora sólo nos queda editar el fichero /etc/X11/XF86Config-4, y modificarlo de la siguiente forma:

    Section «Module»

    Load «GLcore»
    Load «glx»
    Load «dri»

    # Load «extmod» but omit DGA extension
    SubSection «extmod»
    Option «omit xfree86-dga»
    EndSubSection

    EndSection

    Section «Device»
    Identifier «ATI»
    Driver «fglrx» # this is the important bit

    # If X refuses to use the screen resolution you asked for,
    # uncomment this
    #Option «NoDDC»

    # === Video Overlay for the Xv extension ===
    Option «VideoOverlay» «on»
    # === OpenGL Overlay ===
    # Note: When OpenGL Overlay is enabled, Video Overlay
    # will be disabled automatically
    Option «OpenGLOverlay» «off»
    # === Use internal AGP GART support ===
    # If OpenGL acceleration doesn»t work, try using «yes» here
    # and disable the kernel agpgart driver.
    Option «UseInternalAGPGART» «no»
    EndSection

    Section «Screen»
    Identifier «your screen»
    Device «ATI»
    Monitor «your monitor»
    DefaultDepth 24
    SubSection «Display»
    Depth 24
    Modes «1280×960» # this is only an example,
    # use your preferred resolution here
    EndSubSection
    EndSection

    Section «DRI»
    Mode 0666
    EndSection

    NOTA IMPORTANTE: Antes de realizar modificaciones en el fichero, es recomendable que guardeis el actual, por si hacéis alguna modificación que impida que arranque el servidor X, para ello podéis ejecutar lo siguiente:

    cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.antiguo

  6. Ahora sólo nos queda reiniciar el ordenador y comprobar que el driver está funcionando correctamente, para ello abriremos un terminal y escribiremos:

    glxgears

    y comprobaremos que el número de frames esta entre 1000-2000.
    En caso de que no se inicie el servidor X, podemos recuperarlo (si lo hemos salvado previamente) de la siguiente forma:

    cp /etc/X11/XF86Config-4.antiguo /etc/X11/XF86Config-4

    y ahora iniciar el servidor X con la orden:

    startx

    Así es como he conseguido que funcionase la aceleración gráfica en mi tarjeta ATI- 9600XT, y este artículo lo hice basándome en otro que podéis ver en el siguiente enlace:
    ATI Linux driver packages for Debian

Licencia del documento
Derechos de Autor © 2005 por miguel1111.
Este documento esta liberado bajo la licencia creative commons.

Autor: miguel1111
Colaboración para espaciolinux.com

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.