Radeon no XFree86 com suporte a aceleração

Publicado por Guilherme Mesquita em 24/12/2004

[ Hits: 9.613 ]

 


Radeon no XFree86 com suporte a aceleração



Bom, para mim foi bastante difícil encontrar documentação sobre isso na internet, pois a maior parte era muito genérica e não abordava os problemas que eu poderia encontrar ao configurar esta placa de vídeo em meu notebook. Aqui está o hardware que utilizei para tal feito:
  • Notebook HP/Compaq Presario 2598US
  • Pentium 4M 2.66GHz
  • 512 MB Ram com 64 para vídeo
  • Placa de Vídeo Radeon IGP 340M
  • Kernel 2.6.9 (também funciona com os >= 2.4.23, desde que detecte o chipset AGP de sua placa). Algumas versões do IGP não são detectados por kerneis mais antigos, portanto já aviso: PREFIRA OS KERNEIS MAIS ATUAIS!!

OBS: Espero não precisar enfatizar que TUDO AQUI tem que ser feito como root, OK?

A primeira coisa que vocês tem que se certificar é que o suporte a AGP está ativado. Caso não esteja, recompile o kernel com suporte ao seu chipset AGP. Se não for ativado, o módulo da Radeon não detectará a sua placa.

(Device Drivers -> Character Devices -> /dev/agpart support e ATI chipset support)

Depois de compilado, reboote e faça o seguinte:

# rmmod agpgart
# modprobe agpgart
# dmesg | grep agp


Isso certificará que o AGP foi instalado corretamente... Deve aparecer algo assim:

Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected Ati IGP345M chipset <- observe isso!!!!
agpgart: Maximum main memory to use for agp memory: 409M
agpgart: AGP aperture is 64M @ 0xd8000000

O segundo passo é instalar o libtxc (s3tc decompression library).

Para que serve exatamente? Não faço idéia. Só sei que sem essa lib o mesa não vai compilar. O arquivo que utilizei foi o seguinte:

http://homepage.hispeed.ch/.../libtxc_dxtn040623.tar.gz

Depois de dar o ./configure, make, make install, vamos ao segundo passo, instalar o server do xfree com suporte a DRI!

O terceiro passo é compilar o DRI e o Mesa...

# cvs -z3 -d:pserver:anonymous@dri.freedesktop.org:/cvs/dri login
# cvs -z3 -d:pserver:anonymous@dri.freedesktop.org:/cvs/dri co xc
# cvs -z3 -d:pserver:anonymous@dri.freedesktop.org:/cvs/mesa login
# cvs -z3 -d:pserver:anonymous@dri.freedesktop.org:/cvs/mesa co Mesa



Então você terá pego os sources CVS do Mesa e do DRI.

Vá ao diretório DRI-CVS/xc/xc/config/cf e edite o arquivo HOST.def.

Defina o diretório onde estão os sources do Mesa (por exemplo, /usr/src/DRI-CVS/Mesa).

#define MesaSrcDir /usr/src/DRI-CVS/Mesa

Também defina que você só quer os drivers da Radeon, um pouco mais abaixo:

#if defined(PpcArchitecture)

#define XF86CardDrivers ati
#define DriDrivers radeon r200

#elif defined(i386Architecture)

#define XF86CardDrivers ati
#define DriDrivers r200 radeon

#else

#define XF86CardDrivers ati
#define DriDrivers r200 radeon

Entre no diretório xc/xc e dê um "make World". Se tudo der certo, compilará sem erros. Então dê um make install. Isso instalará o Mesa e os x-servers acelerados. :)

Edite o seu /etc/X11/Xorg.conf ou /etc/X11/XF86Config-4.

Na seção "Device" da sua placa de vídeo, coloque como "Driver" o valor "radeon".

Na seção "Module" adicione os valores:

        Load    "GLcore"
        Load    "dri"
        Load    "glx"

Adicione por último estas linhas:

Section "DRI"
        Mode    0666
EndSection

Agora o último passo é iniciar o X e ver se o módulo está interagindo com o X server e se o GLX está acelerado.

Inicie o X e digite no terminal:

$ glxinfo

Aparecerá lá um valor:

"Direct Rendering: YES"

que indica que tudo está OK.

Com um glxgears você pode testar a aceleração. Deve dar mais de 500fps ou em torno disso (ou muito mais, depende do tamanho que você redimensionar). Caso estiver lento é porque não está funcionando bem. Portanto, reveja algum dos passos acima. Pode ser também que sua placa apresente peculiaridades. Sei que quando estava usando o Gentoo tive alguns problemas com o KDE de não aceitar a aceleração. Ele estava linkando com outras libraries do mesa! Aí sei que atualizei para a última versão e ficou tudo OK. Isso é outra coisa que tem que se cuidar. Se você instalou um mesa que não o com os patches pra DRM, com certeza dará problema!

Espero que este tutorial tenha sido útil para as pessoas que tentam fazer a aceleração 3D funcionar. Quebrei minha cabeça muito tempo até achar um tutorial que funcionasse! Existem outros modos, mas não consegui fazer funcionar por eles.

Tutorial criado por: Guilherme Gomes de Mesquita
Contact: guilhermemesquita at spymac.com
ICQ: # 5864338
MSN: guidinoia at hotmail.com

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Sincronizando senhas do Samba no OpenSuSE 10.1

Adicionar caminho ao PATH do Linux

Instale o elementary Tweaks

Instalando codecs para vários formatos no Ubuntu Linux

Apache 2.2 - Modules

  

Comentários
[1] Comentário enviado por tiagomadeira em 04/01/2005 - 13:15h

Tenho uma Radeon IGP 320m e estou usando Kernel 2.6.9. O problema é que é no Slackware que usa xorg. Fui seguindo os passos mas quando dei um make world:

make[4]: *** No rule to make target `/X11R6/SourceForge/DRI-freedesktop/drm/shared/drm.h', needed by `drm.h'. Stop.
make[4]: Leaving directory `/usr/src/DRI_CVS/xc/xc/lib/GL/dri/drm'
make[3]: *** [includes] Error 2
make[3]: Leaving directory `/usr/src/DRI_CVS/xc/xc/lib/GL'
make[2]: *** [includes] Error 2
make[2]: Leaving directory `/usr/src/DRI_CVS/xc/xc/lib'
make[1]: *** [includes] Error 2
make[1]: Leaving directory `/usr/src/DRI_CVS/xc/xc'
make: *** [World] Error 2

Eu acredito que o problema aconteça porque logo abaixo do #define MesaSrcDir tem o #define DRMSrcDir que aponta para um diretório que para mim não existe. Como eu faria pra instalar? Preciso pegar mais algum pacote ou apontar para algum outro lugar?

Valeu...

[2] Comentário enviado por tiagomadeira em 04/01/2005 - 14:09h

Caso ajude...

tiago@laptop:~$ fglrxinfo
Xlib: extension "XFree86-DRI" missing on display ":0.0".
display: :0.0 screen: 0
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.4 Mesa 5.0.2)

tiago@laptop:~$ glxinfo
name of display: :0.0
Xlib: extension "XFree86-DRI" missing on display ":0.0".
display: :0 screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_SGI_make_current_read, GLX_SGIS_multisample
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
GLX extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.4 Mesa 5.0.2)
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_texture_border_clamp,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3,
GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_blend_color,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_lod_bias
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x23 24 tc 0 24 0 r y . 8 8 8 0 0 16 0 0 0 0 0 1 0 None
0x24 24 tc 0 24 0 r y . 8 8 8 0 0 16 8 16 16 16 0 1 0 None
0x25 24 tc 0 32 0 r y . 8 8 8 8 0 16 8 16 16 16 16 1 0 None
0x26 24 tc 0 32 0 r . . 8 8 8 8 0 16 8 16 16 16 16 1 0 None
0x27 24 dc 0 24 0 r y . 8 8 8 0 0 16 0 0 0 0 0 1 0 None
0x28 24 dc 0 24 0 r y . 8 8 8 0 0 16 8 16 16 16 0 1 0 None
0x29 24 dc 0 32 0 r y . 8 8 8 8 0 16 8 16 16 16 16 1 0 None
0x2a 24 dc 0 32 0 r . . 8 8 8 8 0 16 8 16 16 16 16 1 0 None

---

Estou usando um laptop HP Pavillion ze4610us.

[3] Comentário enviado por mips em 04/01/2005 - 14:48h

Tiago, a sua placa e' uma Fire GL? Esse driver que vc esta' usando ae pelo jeito e' pra FireGL, que nao e' compativel com a Radeon (por mais que deus, o diabo ou o fabricante fale que funcione). Tenta seguir os passos acima.

Quanto ao diretorio que nao existe, de uma checada nas configuracoes... Acontece que o CVS nao e' estavel, vc me entende? Ele e' extremamente dinamico e mtas coisas passam batidas pelos developers, tais como esses errors de makefiles.. Isso sao coisas banais que usuarios do CVS tem que ter capacidade de resolver por si proprios.. De inicio e' complicadinho, mas depois fica facil. De um find no diretorio do cvs e ache onde fica o include... Defina como a variavel onde ele se encontra, que e' onde o makefile ta procurando o arquivo.. Deve funcionar... Tente tambem da um make World -Idiretorio/onde/ta/o/include, *as vezes* ajuda se nao funcionar a primeira tentativa...

Espero ter ajudado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts