Instalando Placas ATI Radeon no Linux
Versão 0.2.0
Release Data: 05 nov 2008
Mini-HowTo
ATI Driver versão 8.10.0
Por Rafael "Tremere" Diehl
1. Introdução
2. Sistema Utilizado
3. Pré-requisitos
4. Modelos Suportados
5. Preparando o Sistema
6. Baixando o Driver
7. Configurando o X
8. Instalando o Driver
a. Desinstalando o driver antigo
b.1. Instalando o Driver ( modo gráfico )
b.2. Instalando o Driver ( modo texto )
c. Instalando o Driver no Kernel 2.6.27.4
9. Testando o Módulo
10. Ajuste fino do xorg.conf
a. Section "Device"
b. Section "Screen"
c. Section "Module"
d. Section "DRI"
e. Ativando código interno do AGP
f. Ativando FSAA
g. Outros Controles
110. Um exemplo de Arquivo de Configuração
12. Verificando a Aceleração 3D
a. GLXINFO
b. GLXGEARS
13. Obervacões Importantes
a. Notas do Autor
b. Problemas solucionados
c. Bugs conhecidos
d. Novidades
e. Desktops 3D
14. Changelog
15. Considerações Finais
16. Fontes
17. O Autor
1 - Introdução
Este pequeno howto foi feito com o intuito de facilitar a instalação das placas de vídeo ATI Radeon em máquinas com o GNU/Linux instalado. Ele não aborda a instalação de outros componentes do sistema ou outras configurações do mesmo além daquelas que envolvem explicitamente o funcionamento desse tipo de placa no Linux.
Howtos de compilação do kernel, instalação de programas e configuração do seu sistema podem ser necessários.
Nota: Apartir da versão 0.0.3 desse mini howto, somente a instalação da versão mais recente será demonstrada. Versões mais antigas podem apresentar algumas diferenças.
2 - Sistema Utilizado
Para esse howto foi utilizado a distribuicão Slackware, na versão 12.1 rodando kernel 2.6.27.4 compilado localmente e XOrg versão 7.1 ou superior.
Os drives proprietários da ATI foram obtidos em http://www.ati.com .
3 - Pré-requisitos
Para o sucesso da instalação do driver, os seguintes pré-requisitos devem ser cumpridos:
- POSIX Shared Memory ( /dev/shm ) para aplicacões 3D
- glibc 2.2 ou maior
- Linux Kernel ( source e headers ) 2.6 ou maior [3]
- XOrg 6.7, 6.8, 6.9, 7.0, 7.1, 7.2 ou 7.3;
Além de:
XFree86-Mesa-libGL
libstdc++
libgcc
XFree86-libs
fontconfig
freetype
zlib
Essa lista no principio pode não ser amigável, mas a maioria das distribuições atende facilmente esses pré-requisitos.
4 - Modelos Suportados
ATI Workstation Product Support
|
ATI FireGL™ V8650
|
ATI FireGL™ V3300
|
|
ATI FireGL™ V8600
|
ATI FireGL™ V3200
|
|
ATI FireGL™ V7700
|
ATI FireGL™ V3100
|
|
ATI FireGL™ V7600
|
ATI FireGL™ X3-256
|
|
ATI FireGL™ V7350
|
ATI FireGL™ X3
|
|
ATI FireGL™ V7300
|
ATI FireGL™ V5000
|
|
ATI FireGL™ V7200
|
ATI FireGL™ X2-256
|
|
ATI FireGL™ V7100
|
ATI FireGL™ Z1-128
|
|
ATI FireGL™ V5600
|
ATI FireGL™ T2-128
|
|
ATI FireGL™ V5200
|
ATI FireGL™ X1-128
|
|
ATI FireGL™ V5100
|
ATI FireGL™ X1-256p
|
|
ATI FireGL™ V5000
|
ATI FireMV™ 2200 (Single card PCI-e configuration)
|
|
ATI FireGL™ V3600
|
ATI Mobility™ FireGL™ V5000
|
|
ATI FireGL™ V3400
|
ATI Mobility™ FireGL™ T2
|
ATI Mobility™ and Integrated Mobility™ Product Family Support
|
ATI Mobility™ Radeon™ X3870
|
ATI Mobility™ Radeon™ X1100
|
|
ATI Mobility™ Radeon™ X3850
|
ATI Mobility™ Radeon™ X800
|
|
ATI Mobility™ Radeon™ X3830
|
ATI Mobility™ Radeon™ X700
|
|
ATI Mobility™ Radeon™ X3430
|
ATI Mobility™ Radeon™ Xpress 1200 series
|
|
ATI Mobility™ Radeon™ X3400
|
ATI Mobility™ Radeon™ X600
|
|
ATI Mobility™ Radeon™ X2600
|
ATI Mobility™ Radeon™ X300
|
|
ATI Mobility™ Radeon™ X2400
|
ATI Mobility™ Radeon™ X200
|
|
ATI Mobility™ Radeon™ X2300
|
ATI Mobility™ Radeon™ 9800
|
|
ATI Mobility™ Radeon™ X1800
|
ATI Mobility™ Radeon™ 9600
|
|
ATI Mobility™ Radeon™ X1600
|
ATI Mobility™ Radeon™ 9550
|
|
ATI Mobility™ Radeon™ X1400
|
ATI Mobility™ Radeon™ 9500
|
|
ATI Mobility™ Radeon™ X1300
|
ATI Mobility™ Radeon™ Xpress 1100 series
|
|
ATI Mobility™ Radeon™ X1200
|
ATI Mobility™ Radeon™ Xpress 200 series
|
ATI Desktop Product Family Support
|
ATI Radeon™ HD 4800 series
|
ATI Radeon™ X1300 series
|
|
ATI Radeon™ HD 3800 series
|
ATI Radeon™ X850 series
|
|
ATI Radeon™ HD 3600 series
|
ATI Radeon™ X800 series
|
|
ATI Radeon™ HD 3400 series
|
ATI Radeon™ X700 series
|
|
ATI Radeon™ HD 2900 series
|
ATI Radeon™ X600 series
|
|
ATI Radeon™ HD 2600 series
|
ATI Radeon™ X550/X300 series
|
|
ATI Radeon™ HD 2400 series
|
ATI Radeon™ 9800 series
|
|
ATI Radeon™ HD 2400 series
|
ATI Radeon™ 9700 series
|
|
ATI Radeon™ X1900 series
|
ATI Radeon™ 9600 series
|
|
ATI Radeon™ X1800 series
|
ATI Radeon™ 9550 series
|
|
ATI Radeon™ X1600 series
|
ATI Radeon™ 9500 series
|
ATI Integrated Product Family Support
|
ATI Radeon™ HD 3300 series
|
ATI Radeon™ Xpress1200 series
|
|
ATI Radeon™ HD 3200 series
|
ATI Radeon™ Xpress 200 series
|
|
ATI Radeon™ HD 3100 series
|
ATI Radeon™ Xpress 1100 series
|
- ATI Radeon HD3870X2 não é suportada;
- ATI All-In-Wonder baseados nos chipsets acima são suportados. As funcões de captura de vídeo não são suportadas;
- Placas baseadas no chipset 9500 ou anterior são suportados pelo driver que pode ser encontrado em: https://support.ati.com/ics/support/default.asp?deptID=894&task=knowledge&folderID=27
5 - Preparando o Sistema
O driver da ATI necessita do POSIX Shared Memory para funcionar corretamente. Isso é usado para garantir a aceleração 3D da placa.
Abra uma sessão no terminal e digite o comando mount . Na saída do comando você deve procurar uma linha parecida com essa ( grafada em negrito ):
tremere@DeepHell:~$ mount
/dev/hdb2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
none on /proc/bus/usb type usbfs (rw,devmode=0666,devgid=10)
tmpfs on /dev/shm type tmpfs (rw)
/dev/hdb3 on /mnt/hd type ntfs (rw,noexec,nosuid,nodev,umask=0000)
tremere@DeepHell:~$
Caso esta saída exista no seu sistema, nada é necessário fazer nessa parte. Você pode ir direto ao próximo tópico; caso contrário continue nesse.
Como root, modifique o seu fstab ( vi /etc/fstab ) e acrescente a seguinte linha:
tmpfs /dev/shm tmpfs mode=0777 0 0
Salve o arquivo e digite o comando mount -a, para montar todos os sistemas de arquivos presentes no fstab.
Se tudo ocorreu bem, a sua saida do comando mount deve conter a linha referente ao POSIX Shared Memory, caso contrário será necessário partir para a recompilação do kernel e adicionar esse suporte ao seu sistema.
Para ativar esse recurso você deve habilitar as seguintes opções:
File Systems -> Pseudo Filesystems -> Virtual memory file system support
File Systems -> Pseudo Filesystems -> Tmpfs POSIX Access Control Lists
O driver proprietário da ATI funciona, para placas AGP, tanto com o controle do barramento pelo Kernel quanto internamente. Se você quiser usar o controle do kernel a opcão CONFIG_AGP=y , no arquivo de configuracão do kernel, deve estar habilitada antes de compilar. Mas se você quiser usar o controle interno, tenha certeza que essa opcão não esta presente ou se o módulo agpgart não esta ativo no sistema. Não haverá conflito no sistema caso ele esteja ativo, o driver automaticamente ira passar ocontrole do AGP para o kernel[1].
6 - Baixando o Driver
Acesse a página da ATI ( http://www.ati.com ), procure por Drivers & Software no menu superior. Ao clicar nesse link, aparece um menu para que você escolha qual driver baixar.
Logicamente estamos querendo o driver para Linux que existe na sua versão 32 ( x86 ) e 64bits ( x86_64 ). Feito isso escolha o tipo e o modelo da sua placa.
Se ela não constar nessa lista, provavelmente o driver não irá funcionar e você deverá tentar a versão integrada ao xorg ou usar um driver mais antigo, já que algumas placas são consideradas "Legacy" e somente são suportadas por drivers mais antigos.
Você agora esta de posse do arquivo ati-driver-installer-8.10-x86.x86_64.run ( como você pode notar, o driver é identico para plataformas 32 e 64bits ).
7- Configurando o X
É necessário configurar o X, mesmo sem aceleração 3D, para rodar o aplicativo da ATI ( na versão 8.10.0 não é obrigatório esse passo, mas recomendo configurar o X antes de instalar essa versão ).
Para fazer essa configuração faça como quiser, mas geralmente utilizo o xorgconfig para essa finalidade.
Obs. 1: Se você fizer esse passo como usuário comum do sistema, a configuração será aplicada somente a ele. Se estiver como root, será aplicada a todos no sistema.
Obs. 2: O driver proprietário da ATI funciona, nativamente, somente em 24bit color. Use-a como default do seu sistema.
Faça sua configuração básica escolhendo mouse, teclado, monitor e tudo mais que for necessário. Essas configurações nos serão uteis mais tarde, portanto faça bem feito para não ser necessário fazer novamente depois.
8- Instalando o Driver
a. Desinstalando o driver antigo
Essa etapa deve ser realizada como ROOT, por isso tenha cuidado para ter certeza dos comandos digitados.
Caso você possua alguma versão mais antiga instalada, é recomendado que você desinstale-a para evitar possíveis conflitos.
Como root no terminal, digite:
# cd /usr/share/ati
# sh ./fglrx-uninstall.sh
Caso tenha alguma mensagem de erro referente a arquivo sendo utilizado, será necessario sair do ambiente gráfico e operar diretamente no console.
Feito isso, passe para o próximo passo onde instalaremos o driver.
b.1. Instalando o driver ( modo gráfico )[2]
Essa etapa deve ser realizada como ROOT, por isso tenha cuidado para ter certeza dos comandos digitados.
Entre no X ( através do comando startx ) e abra um terminal para podermos utilizar o prompt de comando.
Localize o arquivo que você baixou, vá até o diretório onde ele está e digite o comando:
# sh ./ati-driver-installer-8.10-x86.x86_64.run
Isso fará com que o aplicativo inicie. Selecione a opção Install Driver para começar a instalação no seu sistema.
Só por curiosidade, a outra opção é para você gerar um pacote que contém o driver para a sua distribuição e assim poder repassá-lo a outras pessoas ou sistemas.
Na próxima tela escolha a opção Automatic e clique em Continue. O driver da ATI vai ser compilado e instalado no seu sistema.
Irá aparecer uma caixa de dialogo onde você poderá obter mais informações a respeito desse processo.
Feche a aplicação gráfica e volte para o terminal, de onde iniciou a aplicação.
Você deverá executar o seguinte comando:
# /usr/X11R6/bin/aticonfig --initial
Isso, teoricamente, deveria ser o suficiente para configurar o Xorg para funcionar corretamente com o novo driver da ATI, mas isso geralmente não acontece.
b.2. Instalando o driver ( modo texto )[2]
A instalação básica segue o mesmo principio da instalacão gráfica, mas agora é possivel instalar utilizando o modo texto.
Você pode executar o aplicativo diretamente através do console e você terá acesso a telas de opcões de instalacão que são basicamente iguais a do modo gráfico mas sem botões ou figuras, apenas texto e menus.
Ao final da instalação você deve executar o comando
aticonfig --initial
c. Instalando o Driver no Kernel 2.6.27.4
Como indicado na
nota [3], o driver 8.10.0 é incompativel com o kernel 2.6.27.4 mas é possível fazer a instalação do driver ao se aplicar um patch. Começe baixando o patch em
Proceda com a instalação normal, mas está irá gerar um erro no final e o driver não será instalado. Para resolver isso, iremos aplicar o patch e a sequência de comando é ( considerando que você baixou o patch no seu home ):
tremere@DeepHell:~$ cd /lib/modules/fglrx/build_mod/
tremere@DeepHell:/lib/modules/fglrx/build_mod$ su [ é necessário ter permisão de root nesse momento, use o SU ou SUDO para isso ]
root@DeepHell:/lib/modules/fglrx/build_mod# patch <~/atipatch
Feito isso, você deverá proceder a instalacão manualmente com os comandos:
root@DeepHell:/lib/modules/fglrx/build_mod# ./make.sh
root@DeepHell:/lib/modules/fglrx/build_mod# cd ..
root@DeepHell:/lib/modules/fglrx# ./make_install.sh
Nesse momento o módulo deve estar pronto para ser carregado na memória. Faça isso:
root@DeepHell:/lib/modules/fglrx# modprobe fglrx
Se não tiver nenhuma mensagem de erro, o módulo estará carregado e pronto para ser usado. Ainda é necessário executar o comando
aticonfig --initial ao final do procedimento.
9- Testando o Módulo
Apartir desse memento você deve testar se o driver esta funcionando. Para isso vá ao terminal e, como root, use o comando modprobe fglrx ou lsmod e procurar uma saída parecida com:
tremere@DeepHell:~$ lsmod | grep fgl
fglrx 1800808 23
agpgart 27376 2 fglrx,nvidia_agp
tremere@DeepHell:~$
Se não houver nenhuma mensagem de erro, significa que o seu driver está funcionando e ativo no sistema, mas pode ser que você tenha uma mensagem de erro dizendo que a operação não é permitida.
Isso acontece porque o driver proprietário da ATI é incompativel com o driver opensource desenvolvido pela comunidade e também com o DRM. Você pode descarregar da memória os módulos correspondentes a esses drivers através dos comandos:
# modprobe -r radeon
# modprobe -r drm
Obs.: Caso o seu sistema esteja com esses módulos ativos, será necessario desativá-los a cada boot. Para deixar isso automatico no sistema, você terá que editar os scripts de inicialização para que não carreguem esses módulos ou acrescentar essas linhas de comando no local apropriado para serem executadas a cada boot.
10- Ajuste Fino do xorg.conf
Até agora fizemos apenas o básico, onde apenas passos simples e diretos foram realizados. Apartir desse momento iremos fazer o trabalho que o instalador do driver da ATI deveria ter feito e não fez.
Iremos editar o arquivo /etc/X11/xorg.conf manualmente para adicionar os recursos 3D da placa e também preparar o xorg para aceitar novos recursos presentes no driver da ATI.
10.a - Section "Device"
Essa seção indica qual driver a ser usado pelo xorg e deve ser parecido com:
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
EndSection
10.b - Section "Screen"
Essa seção indica o funcionamento do monitor, suas resoluções e quantidade de cores. A opção DefaultDepth 24 não é obrigatória mas é altamente recomendada pois o driver da ATI só funciona nativamente em 24bit color.
Section "Screen"
Identifier "aticonfig-Screen[0]"
Device "aticonfig-Device[0]"
Monitor "aticonfig-Monitor[0]"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024" "1024x768"
EndSubSection
EndSection
OBS.: Na linha Modes, são as resoluções suportadas pelo seu x-server e vária de acordo com a sua preferencia / capacidade do seu monitor.
10.c - Section "Module"
Section "Module"
Load "i2c"
Load "extmod"
Load "int10"
Load "vbe"
Load "ddc"
Load "dri"
Load "dbe" # Double buffer extension
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
Load "freetype"
Load "glx"
Load "bitmap"
Load "speedo"
Load "type1"
Load "freetype"
Load "record"
EndSection
OBS.: Pode variar de acordo com a distribuição utilizada ou de acordo com sua necessidade.
10.d - Section "DRI"
Para dar acesso a todos os usuário a aceleração 3D, você tem que habilitar no xorg, através da seção DRI, os modos de acesso que deve ficar assim:
Section "DRI"
Mode 0666
EndSection
10.e - Ativando código interno do AGP
O driver da ATI vem com o suporte de controle do barramento AGP, mas ele é desabilitado por default para evitar instabilidades no sistema.
Para ativá-lo você deve editar o xorg.conf e alterar a linha:
Option "UseInternalAGPGART" "no"
da seção Device para "yes". Além disso o código de controle do AGP do chipet não pode estar compilado no kernel do sistema como build-in ou o módulo não deve estar ativo no sistema[1].
No sistema usado como base, ele está compilado como módulo e chama-se nvidia_agp. O nome do módulo varia de acordo com o fabricante do hardware.
10.f - Ativando FSAA
Os recursos de Filtro Anisotropico e Anti-aliasing são agora controlados pelo AMDCCCLE, utilitário gráfico de configuração das funcionalidades do driver. O que cada opção significa foge do espoco desse howto, mas quem sabe no futuro próximo uma nova seção possa tratar dessa configurações.
10.g - Outros Controles
Poderia ficar horas fazendo a descrição de cada opção que pode ser acrescentado ao xorg para ativar ou desativar certos recursos presentes no driver da ATI.
O intuito desse mini-howto não é esse por isso deixo a cargo de cada usuário fazer os testes a respeito desses recursos.
Para saber mais a respeito disso veja a documentação do aticonfig e veja a quantidade de recursos que podem ser usados.
11 - Um Exemplo de Arquivo de Configuração
Esse arquivo de configuração se baseia no xorg 7.1, teclado padrão americano, mouse usb 3 botões com mouse whell ( rodinha ) e monitor LCD 19" ligado através da entrada DVI-D.
################################# INICIO ##################################
# XOrg Config File
#
Section "ServerLayout"
Option "AIGLX" "true"
Identifier "Simple Layout"
Screen 0 "aticonfig-Screen[0]" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Section "Files"
FontPath "/usr/share/fonts/TTF"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/misc/"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Speedo/"
FontPath "/usr/lib/X11/fonts/Type1/"
FontPath "/usr/lib/X11/fonts/TTF/"
FontPath "/usr/lib/X11/fonts/OTF/"
FontPath "/usr/lib/X11/fonts/cyrillic/"
FontPath "/usr/lib/X11/fonts/75dpi/"
FontPath "/usr/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "i2c"
Load "extmod"
Load "int10"
Load "vbe"
Load "ddc"
Load "dri"
Load "dbe" # Double buffer extension
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
Load "freetype"
Load "glx"
Load "bitmap"
Load "speedo"
Load "type1"
Load "freetype"
Load "record"
EndSection
Section "ServerFlags"
Option "NoPM" "true"
Option "AIGLX" "true"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Auto" # Auto detect
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "aticonfig-Monitor[0]"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
EndSection
Section "Screen"
Identifier "aticonfig-Screen[0]"
Device "aticonfig-Device[0]"
Monitor "aticonfig-Monitor[0]"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
Section "Extensions"
Option "Composite" "enable"
EndSection
################################# FIM ##################################
12 - Verificando a Aceleração 3D
Existem meios de se testar toda essa mudança que fizemos e saber se os resultados foram os esperados. Através dos aplicativos glxinfo e glxgears podemos ter certeza se fizemos os passos corretos ou não.
12.a - GLXINFO
A saida do glxinfo deve ser algo como:
tremere@DeepHell:~$ glxinfo
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_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI RADEON 9600 Series
OpenGL version string: 2.1.8087 Release
OpenGL extensions:
GL_AMD_performance_monitor, GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_fragment_program, GL_ARB_fragment_shader, GL_ARB_half_float_pixel,
GL_ARB_half_float_vertex, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects,
GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3, GL_ARB_texture_float,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader,
GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap,
GL_ATI_fragment_shader, GL_ATI_meminfo, GL_ATI_separate_stencil,
GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_EXT_abgr,
GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_compiled_vertex_array, GL_EXT_copy_texture,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object,
GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays,
GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_vertex_array,
GL_KTX_buffer_region, GL_NV_blend_square, GL_NV_texgen_reflection,
GL_SGIS_generate_mipmap, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod,
GL_WIN_swap_hint, WGL_EXT_swap_control
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 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x24 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x27 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x28 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x2b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x2c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x2d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x2e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x2f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x30 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x31 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x32 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x33 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x34 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x35 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x36 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x37 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x38 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x39 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x3a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x3b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x3c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x3d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x3e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x3f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x40 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x41 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x42 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x43 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x44 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x45 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x46 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x47 24 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x48 24 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x49 24 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x4a 24 tc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x4b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x4c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x4d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x4e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x4f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x50 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x51 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x52 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x53 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x54 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x55 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x56 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x57 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x58 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x59 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x5a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x5b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x5c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x5d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x5e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x5f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x60 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x61 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x62 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x63 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x64 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x65 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x66 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x67 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x68 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x69 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x6a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None
0x6b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x6c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 None
0x6d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x6e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 None
0x6f 24 dc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x70 24 dc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x71 24 dc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x72 24 dc 1 0 0 c . . 0 0 0 0 0 0 0 0 0 0 0 0 0 None
0x85 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 Ncon
tremere@DeepHell:~$
O que são todos esses números não interessa, mas sim a parte marcada em negrito. Nessa parte indica se a aceleração está funcionando e qual drive está sendo lido, assim como o modelo da placa reconhecido.
12.b - GLXGEARS
O aplicaticativo glxgearx é usado para testar a acelaracão 3D e retorna a quantida de FPS conseguidos no teste, quanto maior melhor.
Isso varia, e muito, de acordo com o modelo da placa de vídeo utilizada. No meu caso, usando uma Radeon 9600XT, fica em torno de 3900 e 4200 frames em
5 segundos o que da algo em torno de 720 a 840 FPS, enquanto sem o driver habilitado fica, no máximo a 200.
tremere@DeepHell:~$ glxgears
22163 frames in 5.0 seconds = 4432.612 FPS
22167 frames in 5.0 seconds = 4433.445 FPS
22163 frames in 5.0 seconds = 4432.419 FPS
22168 frames in 5.0 seconds = 4433.521 FPS
22147 frames in 5.0 seconds = 4429.399 FPS
tremere@DeepHell:~$
13 - Observações Importantes
a. Notas do Autor
[1] - Apesar da ATI afirmar o contrário, na minha máquina o driver funcionou melhor usando a API do kernel.
[2] - Durante a instalação, o driver da ATI detectou minha glibc como sendo 2.1 quando na verdade ela é 2.5, mas isso não impediu que a instalação continuase sem problemas.
[3] - Não há suporte ao kernel 2.6.27.4. Esse problema foi resolvido aplicando um patch a parte do source do driver, disponibilizado nesse howto.
b. Problemas solucionados
Nessa versão do driver, os seguintes problemas foram resolvidos:
- O servidor X não inicia no Red Hat WS 4u6 com placas da serie HD 4800;
- Corrupição da imagem pode ocorrer quando se usa os atalhos de teclado para mudar a resolução;
- Com o driver instalado, iniciar o servidor X pode fazer máquinas com RHEL4u6/x86 parar de responder;
- Ligar o OpenGL Overlay pode causar falha na inicialização do servidor X;
- Habilitar "dual head" com o comando "aticonfig --initial=dual-head" pode causar "segmentation fault";
- Problemas na imagem podem ocorrer quando ativar o efeito de "Reflection" no compiz;
- Sistema para de responder quando mudar de um console para o X;
- Imagem pode corromper quando toca video no MPlayer;
- "Direct Rendering" não funciona para usuarios não root no Suse 10.2;
- Iniciar o X com saida de video habilitada pode não aparecer a imagem;
- Falha ao gerar pacotes RPM para RHEL;
- Habilitar Ant-Aliasing no CCC precisa reiniciar o X;
- Alguns sistemas mostravam-se instaveis ao finalizar o X;
- Servidor X nao mais travam em sistemas com Radeon X1000;
- Maya 2008 para de responder quando renderizando alguns modelos;
c. Bugs Conhecidos
Apesar de saber da existencia deles, a ATI não fez nada por enquanto...
- Segundo monitor não pode ser ativado usando o CCC;
- SPECViewperf 8.1: rodar o teste básico DPPT pode fazer o sistema parar de responder em sistemas com a série ATI FireGL V7700;
- Maya 2008 "fecha" durante a renderização;
- Após instalação do driver, pode-se ver a mensagem: "Failed to enable interrupts" no arquivo de log /var/log/Xorg.0.log;
- SuSe 10.3 pode travar após a instalação do pacote contendo driver;
- Fechar o XTerm pode gerar em um condição intermitente de kernel panic ou travamento do sistema;
- Não há suporte para Kernel 2.6.27.4
d. Novidades
Nessa versão do driver, não há muitas novidades. Apenas correcão de bugs e tentativa de melhorar um pouco a performance.
e. Desktop 3D
Podem comemorar! O suporte a AIGLX e Composite nas placas ATI garantem o uso das últimas versões do Compiz-Fusion e também do KDE4 com suas "firulas" embutidas...
14 - Changelog
05/11/2008 - Versão 0.2.0
Atualizacão geral do Howto para cobrir a instalacão do driver 8.10
Acrescentado notas e "workaround" para instalacão do driver com o kernel 2.6.27.4
31/10/2007 - Versão 0.1.1
Nova sessão: 8 c. Instalando o Driver no Kernel 2.6.23
Numeração dos tópicos arrumadas
30/10/2007 - Versão 0.1.0
Howto atualizado para versão 8.42.3 do driver da ATI
Praticamente todas as seções foram atualizadas
Nova sessão: Modelos Suportados
14 - Considerações Finais
A ATI nesses últimos meses vêm tentando tirar o atraso em relacão aos drivers da NVidia e do limbo que os usuarios dessas placas ficaram. Com atualizacões relativamente constantes ela vem a cada dia facilitando a instalacão e melhorando o suporte do seu hardware, mas infelizmente ela ainda tem muita a melhorar, como por exemplo a falta de suporte para as ultimas versões do kernel que obrigaram os usuários a fazerem malabarismos para poderem utilizar corretamente o seu sistema...
Vamos esperar o próximo release do driver e torcer por mais inovacões.
15 - Fontes
Kernel Documentation ( www.kernel.org )
Slackware ( www.slackware.com )
ATI ( www.ati.com )
Xorg Project ( www.x.org )
16 - O Autor
Rafael "Tremere" Diehl
diehl@mednet.com.br