lunes, 8 de enero de 2007

Instrucciones e Instalación para drivers ATI (fglrx) bajo SuSE 10.2

Esta es una guía desarrollada por un amigo de la Universidad, que también le esta trabajando al opensource fuertemente. El esta trabajando principalmente en suse y pues yo en ubuntu. Sin mas preámbulos aquí les publico lo que el hizo para todo aquel que le pueda servir:

"Poseo un sistema MSI K8Neo 3 con chipset Nvidia Nforce 3 (duh), con un procesador AMD Sempron 3000, 512 MB DDR pc 3200, 2 HD de 20 y 40 GB ( Que pobre!) y una tarjeta de vídeo ATI X550 SAPHIRE PCI EXPRESS.

el procesador esta funcionando con DOT ( Dinamic Overclocking Technology) y funciona de peluches, sobre todo en aplicaciones 3d.

Software:

Open SuSE 10.2 con Kernel 2.6.18.2-34-default

Kde 3.5.5 release 45

Beryl 0.1.4


El siguiente conjunto de pasos pretende reunir los pasos correctos, de todas las otras guías, para instalar una tarjeta de vídeo ATI en Open SuSE 10,2.

1. Asegurarse se tener estos paquetes instalados, esta version o superior:

Fuentes del Kernel (Kernel Sources y los headers):

linux-kernel-headers-2.6.18.2-3
kernel-source-2.6.18.2-34

el compilador de GNU de C.(gcc)

gcc-4.1.3-29

Make y Auto-Make (Este último los de ATI dicen que no es necesario pero uno nunca sabe).

automake-1.9.6-35
make-3.81-23


Se puede averiguar si estos paquetes están instalados usando yast o simplemente ingresando las siguientes líneas en la consola no es necesario ser root):

rpm -qa| grep [fraccion del nombre del paquete]

en caso de no tenerlos instalados simplemente se usa yast con los CD, o usar yast con los repos, o bajar las fuentes, etc.

2. Si se encuentran los paquetes instalados, lo siguiente es descargar el .run con los drivers de la página de ati amd:

ati-driver-installer-8.32.5-x86.x86_64.run

Nota: En la página solo se indica que tiene soporte hasta el Xorg 7.1, pero en el readme del archivo corrigen y afirman el soporte para el Xorg de Open SuSE 10.2 es decir el 7.2, es decir no hay problema.

3. con el archivo descargado, lo siguiente es generar el paquete para la distribución, dependiendo de la arquitectura. haciendo lo siguiente en la consola:

nos ubicamos en el directorio donde se encuentra el archivo, en mi caso en home:

cd /home/gabriel

cambiamos los permisos del archivo para poder ejecutarlo sin contratiempos:

chmod -x ati ati-driver-installer-8.32.5-x86.x86_64.run

ahora le decimos al programa que genere el RPM para nuestro SuSE 10.2, como mencioné antes, dependiendo de la arquitectura:

Para las arquitecturas de 32 Bit( i.586 o i.686,etc)

./ati-driver-installer-8.32.5-x86.x86_64.run --buildpkg SuSE/SUSE102-IA32

O para las arquitecturas de 64 bit(AMD_64)(mi caso).

./ati-driver-installer-8.32.5-x86.x86_64.run --buildpkg SuSE/SUSE102-AMD64

Esperamos a que genere el archivo RPM que va a quedar de la siguiente forma:

fglrx_7_1_0_SUSE102-8.32.5-1.XXXX.rpm


4. El siguiente paso es instalar el paquete, bastante sencillo, siguiendo las siguientes instrucciones:

Nos logueamos como root usando su o simplemente mediante sudo y:

sudo rpm -ivh fglrx_7_1_0_SUSE102-8.32.5-1.XXXX.rpm

No hay que prestar atención a los mensajes arrojados, a menos que sea un error fatal explícito.


5. Listo el driver está instalado, más no configurado, esta parte es la más delicada de la guía, ya que dependiendo de la tarjeta y del monitor hay que hacer algunas cosillas.

El paso general es el siguiente:

Cerramos nuestra sesión y una vez en el gestor de acceso pulsamos conjuntamente:

Ctrl+Alt+(F1, F2 o F3) para saltar a otra consolas virtuales que no sea la séptima que es la que ocupa X.

nos logueamos como root.

nos pasamos de runtime 5 a runtime 3 para mayor seguridad:

init 3

nota: ni de broma vayan a usar aticonfig, ya que daña el xorg.conf generado por sax y nos quedamos sin video, por eso es mejor copiar el orginal con las siguientes líneas:

cp -b /etc/X11/xorg.conf /home/gabriel

Una vez en runtime 3 se configura X para que arranque la próxima vez no con el driver Radeon que viene con SuSE, sino que en vez de este cargue el perfil del driver recién instalado FGLRX, esto se hace mediante la herramienta SAX2:

sax2 -r -m 0=fglrx

De esta manera debería funcionar teóricamente, al cargar X con el driver y mostrar imagen, detectando el monitor, las frecuencias de refresco H y V, etc.

Si este fué el resultado entonces nos dirigimos dos puntos mas abajo, omitiendo los siguientes.

En caso de que no se presentara imagen y que sax retornara un error y nos regresara a la consola, entonces tenemos un problema ya sea con nuestra tarjeta (no soportada por que no se leyo el readme en supported cards) o con el DDC del monitor (Algunos monitores tienen frecuencias de refresco muy específicas o son muy antiguos o sax2 detecta mal las frecuencias provistas por la información del firmware del monitor), por esta razón hay que jugar con las opciones de sax2, no se me asusten:

sax2 -r -m -l 0=fglrx

En este caso l indica low resolution and basic freq update o baja resolución y frecuencias, esta parte me funcionó perfecto con mi AOC FT7X de 17”, ya que la opción normal me detectaba bien el monitor pero las frecuencias de refresco estaban muy elevadas y el monitor me informaba de inmediato.

una vez dentro nos da resolución de 800X600 a 32 bit a 60Hz, pero ya podemos probar con otras resoluciones y guardar la que mejor nos cuadre.

Esta última opción es para los usuarios de monitores realmente viejos, y que conocen muy bien los datos de su pantalla:

sax2 -r --vesa 0:1280X1024@64 -m 0=fglrx

Donde –vesa es la opción para refresco Vertical y los parámetros son 0 ( monitor 0), resolución: 1280X1024 y @64 refresco a 64 Hz.

También me dio muy buenos resultados puesto que con el anterior me dio imagen y resolución pero la tasa de refresco hacia parpadear una sección de la pantalla, estos datos los podemos sacar de windows, si esta instalado, o simplemente del manual del monitor.

Es engorroso el procedimiento pero con alguno de los pasos anteriores tiene que dar imagen.



6.Ahora a probar!

Antes que nada, algunas personas dicen que no pasa nada si se inicia el X de una vez usando init 5 o startx, pero yo he tenido algunos problemas, por lo cual recomiendo mejor una reiniciada:

reboot

o en su defecto

init 6

Bueno esta es la hora de la verdad, aquí se sabe si si tenemos o no aceleración 3D en SuSE 10,2, lo cual lo podemos verificar de muchas formas:

En consola por medio del siguiente comando:

fglrxinfo

el cual nos debe mostrar algo muy importante que es el nombre del fabriacante y el soporte de Open GL ( Open GL vendor String), en mi caso:

OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON X550 Generic
OpenGL version string: 1.2 (2.0.6234 (8.32.5))

Otra forma es mediante el comando:

glxinfo | grep direct

El cual nos muestra si X está trabajando con Renderizado directo o aceleración por HW, lo cual nos da un yes; o si está trabajando con renderizado indirecto, por software, mediante un no.

También puede ejecutarse solo el glxinfo y ya.

Otra forma es mediante el programa en la consola:

glxgears

que es un salvapantallas y muestra en la consola la cantidad de cuadros por segundo, en mi caso obtuve:

4550 cuadros por segundo, que contra los 3800 que se logran con directx en windows(driver catalyst), es muy bueno.


Finalmente podemos probar instalando los juegos que usan opengl o cualquier otra aplicación que use las extensiones open gl:

Torcs. (Bueno)
Tux Racer.
Cedega, WineX (Commandos 2 y Warcraft 3)
Doom III.
Quake Arena.
VariCAD
Salome.
Etc.


7.para quitarlo:

para los que les sirvió y van a actualizar:

!No se debe quitar con yast2 de inmediato!, se debe seguir el siguiente proceso:

para los que sacamos copia del archivo xorg.conf, simplemente sobreescribimos el actual con el que se habia copiado

cp -f /home/gabriel/xorg.conf /etc/X11/

Si no, simplemente volvemos a la configuración por defecto:

nos salimos al gestor de acceso.
init 3
sax2 -r -m 0=radeon


Reiniciamos con reboot o init 6.
Entramos a cualquier terminal (konsole, gnome, etc) y borramos el paquete:

rpm -e fglrx_7_1_0_SUSE102-8.32.5-1

o simplemente lo quitamos por yast.

Así evitamos dañar el sistema al quitar el driver de manera apropiada.


Finalmente una foto de Beryl en el recién instalado driver fglrx:


Si no obtuvieron los resultados esperados siempre resulta bueno leer las documentaciones del sistema como los troublehooting del driver, los cuales se encuentran en:

/usr/share/doc/packages/fglrx para el driver y para SuSE entrar en la documentación del nucleo tal vez encontremos el problema con un módulo o un issue con algún dispositivo.


Espero les haya servido."

AKA CARTMAN

JUAN GABRIEL CEPEDA MÉNDEZ
INGENIERO DE DISEÑO Y AUTOMATIZACIÓN ELECTRÓNICA
ULS

Solo un principiante mas...

7 comentarios:

  1. Gracias por la ayuda, habia tratado antes de instalar este driver, pero segui instrucciones y lo hice por aticonfig, y tuve que instalar todo de nuevo porque quedo la cagada, ahora si esta instalado y funcionando como corresponde.

    ResponderBorrar
  2. Saludos
    al tratar de hacerlo con los ultimos drivers me sale esto

    OpenGL vendor string: Mesa project: www.mesa3d.org
    OpenGL renderer string: Mesa GLX Indirect
    OpenGL version string: 1.4 (1.5 Mesa 6.5.1)

    cuando hago el fglrxinfo
    ademas
    renderizado directo no

    ResponderBorrar
  3. Saludos
    al tratar de hacerlo con los ultimos drivers me sale esto

    OpenGL vendor string: Mesa project: www.mesa3d.org
    OpenGL renderer string: Mesa GLX Indirect
    OpenGL version string: 1.4 (1.5 Mesa 6.5.1)

    cuando hago el fglrxinfo
    ademas
    renderizado directo no


    que tarjeta tienes, es que algunas todavian no tienen soporte, y segun los de ati toca esperar un par de meses mas

    ResponderBorrar
  4. He probado mil veces y no encuentro la forma.
    T estaria muy agradecido si me pudieras dar alguna pista.
    Tengo una ATI Radeon 1300 PCI Express en un AMD64 con OpenSuse64 actualizado. Las vesiones de gcc, make, automake, kernel--source y kernel-headers son las mismas que las tuyas. Al hacer sudo rpm -ivh fglrx_7_1_0_SUSE102-8.32.5-1.XXXX.rpm
    (asi como al hacer sh fglrx-kernel-build.sh)
    me da el siguiente error:
    rm: no se puede borrar «Modules.symvers»: No existe el fichero o el directorio
    rm: no se puede borrar «fglrx.mod.o»: No existe el fichero o el directorio
    make: se ingresa al directorio `/usr/src/linux-2.6.18.2-34-obj/x86_64/default'
    make -C ../../../linux-2.6.18.2-34 O=../linux-2.6.18.2-34-obj/x86_64/default
    LD /usr/src/kernel-modules/fglrx/built-in.o
    CC [M] /usr/src/kernel-modules/fglrx/firegl_public.o
    /usr/src/kernel-modules/fglrx/firegl_public.c:468: warning: initialization from
    incompatible pointer type
    /usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘firegl_stub_open’:
    /usr/src/kernel-modules/fglrx/firegl_public.c:591: warning: assignment discards
    qualifiers from pointer target type
    /usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘firegl_put_user_ptr’
    :
    /usr/src/kernel-modules/fglrx/firegl_public.c:1360: warning: cast from pointer t
    o integer of different size
    /usr/src/kernel-modules/fglrx/firegl_public.c:1360: warning: cast from pointer t
    o integer of different size
    /usr/src/kernel-modules/fglrx/firegl_public.c:1360: warning: cast from pointer t
    o integer of different size
    /usr/src/kernel-modules/fglrx/firegl_public.c:1360: warning: cast from pointer t
    o integer of different size
    /usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘__ke_unregister_ioct
    l32_conversion’:
    /usr/src/kernel-modules/fglrx/firegl_public.c:2603: warning: ‘return’ with a val
    ue, in function returning void
    /usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KAS_ExecuteAtLevel’:
    /usr/src/kernel-modules/fglrx/firegl_public.c:4449: warning: ‘flags’ may be used uninitialized in this function
    LD [M] /usr/src/kernel-modules/fglrx/fglrx.o
    Building modules, stage 2.
    MODPOST
    WARNING: could not find /usr/src/kernel-modules/fglrx/.libfglrx_ip.a.GCC4.cmd fo r /usr/src/kernel-modules/fglrx/libfglrx_ip.a.GCC4
    CC /usr/src/kernel-modules/fglrx/fglrx.mod.o
    LD [M] /usr/src/kernel-modules/fglrx/fglrx.ko
    make: se sale del directorio `/usr/src/linux-2.6.18.2-34-obj/x86_64/default'
    make: se ingresa al directorio `/usr/src/linux-2.6.18.2-34-obj/x86_64/default'
    make -C ../../../linux-2.6.18.2-34 O=../linux-2.6.18.2-34-obj/x86_64/default mod ules_install
    INSTALL /usr/src/kernel-modules/fglrx/fglrx.ko
    DEPMOD 2.6.18.2-34-default
    make: se sale del directorio `/usr/src/linux-2.6.18.2-34-obj/x86_64/default'
    /usr/X11R6/bin

    He probado a hacerlo desde una instalacion "limpia", preparando previamente copn make mrproper/make clonecofig/make modules_prepare/make clean/SuSEconfig... y nada.
    he probado desde el instaldor grafico, en modo custom y automatico; en fin, de todas las formas...
    NO logro etender cual es el problema.

    Saludos

    Pinguinito.

    ResponderBorrar
  5. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  6. por lo que veo ya has instalado y desinstalado el driver de ati un par de veces, sin obtener resultado.

    estuve mirando el driver, y parece que si la soporta, lo unico seria probar con alguno de los drivers anteriores de ati para ver si funciona.

    lo otro que se podria mirar seria la compatibilidad de la tarjeta ati con la mother board, ya que las ati a veces son muy problematicas con la arquitectura....

    ResponderBorrar
  7. Hola, tengo una duda, creo haber instalado los drivers correctamente, al hacer fglrxinfo sale esto:
    display: :0.0 screen: 0
    OpenGL vendor string: ATI Technologies Inc.
    OpenGL renderer string: RADEON 9550 Generic
    OpenGL version string: 2.0.6286 (8.33.6)
    y al hacer glxinfo | grep direct sale:
    direct rendering: Yes

    Probe algunos juegos 3d como el neverball y anda perfecto.

    El problema es que al hacer fgl_glxgears sale esto:
    Using GLX_SGIX_pbuffer
    3229 frames in 5.0 seconds = 645.800 FPS
    3806 frames in 5.0 seconds = 761.200 FPS
    3864 frames in 5.0 seconds = 772.800 FPS
    3839 frames in 5.0 seconds = 767.800 FPS

    y buscando en google encontre que estos valores de fps son muy bajos para mi tarjeta (ATI 9550)

    Me podrías indicar si estan bien esos valores o si hay algo que no esta funcionando bien?, muchas gracias, saludos.

    ResponderBorrar