Bom, resolvi escrever o artigo depois de uma surra colossal do driver proprietário da
ATI e de checar o desempenho ainda sofrível do driver aberto "radeonhd" para aceleração 3D. Este último realmente não está pronto e como veremos, nem o da ATI parece estar disposto a trabalhar com os novos kernels.
A distribuição utilizada foi o
Slackware 64-current (13.0 RC2), porém o artigo se aplica a muitas outras distribuições, fazendo pouquíssimas ou nenhuma alteração. O driver utilizado foi o 9.7, porém os 9.4, 9.5 e 9.6 foram testados e todos apresentaram o mesmo defeito, e a solução funciona igualmente, porém estamos aguardando que o 9.8 resolva o problema, e que meu artigo se torne inútil (realmente torço por isso... hehe).
Dando uma "googlada" descobri que o problema se origina na instalação do driver, quando o mesmo não consegue compilar o módulo
fglrx nos kernels 2.6.29 e posteriores (li relatos sobre o 2.6.28.x, mas não confirmei), devido ao fato de que a maior parte do código ACPI desses kernels foi feito especificamente para essas versões, logo, provavelmente todo o código ACPI-fglrx deverá ser reformulado. E como esse (fglrx) é o módulo responsável pela aceleração 3D que precisamos, lá se vai a instalação NNF (next, next, finish) do script da ATI...
Preparação do sistema e obtenção dos arquivos necessários
Enfim, vamos ao trabalho.
Primeiramente faça um diretório de trabalho (organização é tudo, lembre-se!), depois vá ao site da ATI e baixe o driver mais atual, no nosso caso o 9.7 (ou 8.632).
Note duas coisas:
1° - Apesar do driver ser 9.7, o número de controle dele é o 8.632, isso será importante mais tarde!
2° - Há apenas um pacote, tanto para 32 quando para 64 bits, não se preocupe, é o driver quem reconhece a arquitetura utilizada e se adéqua.
Em modo texto seria:
mkdir ~/driver_tmp
$ cd ~/driver_tmp
$ wget https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-9-7-x86.x86_64.run
Depois instale o driver normalmente:
Como root, dê permissão de escrita ao binário de instalação (esse passo pode ser pulado em algumas distribuições).
Logando como root:
su -
Digite a senha de root (é um traço mesmo depois do su, foge ao escopo do artigo explicar por que, ficou curioso?
Google! :P)
# cd /home/SEU_USUÁRIO/driver_tmp
# chmod +x ati-driver-installer-9-7-x86.x86_64.run
Ainda como root, rode o binário:
# sh ./ati-driver-installer-9-7-x86.x86_64.run
Siga as instruções para a instalação do driver (existem milhares de artigos, aqui mesmo no
VOL sobre isso). Agora é que começa o problema, caso não tenha ocorrido nenhum erro, meus parabéns ou você não está usando um dos kernels listados anteriormente ou está utilizando um driver corrigido pela ATI, que já está mais do que na hora de sair, caso dê erro, que é o que deve acontecer, siga os passos...
1° - Remova a instalação do driver anterior.
# cd /usr/share/ati
# sh ./fglrx-uninstall.sh
2° - Rode novamente o driver, porém com a opção "--extract" para extrair os arquivos de dentro do pacote binário ".run".
# cd /home/SEU_USUÁRIO/driver_tmp
# sh ./ati-driver-installer-9-7-x86.x86_64.run --extract
3° - Entre no diretório que foi extraído:
# cd fglrx-install.NKeljO
(esse foi o diretório que foi extraído com o comando anterior, pode variar de acordo com o driver)
Agora vem o "pulo do gato", baixe esse patch para dentro do diretório que foi extraído:
# wget http://liquorix.net/patches/FGLRX-2.6.29-9.2-5.diff
4° - Instale o patch:
# patch -p1 < FGLRX-2.6.29-9.2-5.diff
5° - Rode o script de instalação do driver:
# sh ./ati-installer.sh 8632 --install
Siga as instruções, como eu havia mencionado antes, e pronto!