Driver ATI (proprietário) no kernel 2.6.29 e posteriores

Devido a carência de fontes para o tópico em português e sequer uma explanação direta (para usuário leigos/intermediários), inclusive em outras línguas, decidi escrever o artigo, baseado em pequisas em diversos fóruns de outros países para tornar mais fácil a resolução desse problema, que é ter aceleração 3D com o driver proprietário nos kernels atuais.

[ Hits: 19.715 ]

Por: Diego Machado em 11/08/2009


Introdução



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!

    Próxima página

Páginas do artigo
   1. Introdução
   2. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Autenticação de cliente 802.1x WPA utilizando EAP-TTLS FreeRADIUS + Samba + LDAP

Eu cavo, tu cavas, ele cava... tutorial de DIG

Colocando seu Fluxbox totalmente transparente

Autenticar estação de trabalho GNU/Linux no Windows Server - Instalação e configuração do Centrify

Arquivos de configuração de rede - Parte I - /etc/hosts

  
Comentários
[1] Comentário enviado por diegomachado em 11/08/2009 - 11:24h

Uma coisa que me lembrei escrevendo um post, em outro tópico sobre o assunto e pode ajudar aos mais "desavisados"...

Obs.: Onde está "numerodecontrole" substitua pelo numero de controle do driver (sem as áspas), note que não é o número do driver!
Por exemplo o numero de controle do driver 9.7 (o mais atual, até agora) é 8.632.
Para saber o numero de controle do driver, preste atenção, quando executar o comando "sh ./ati-<DRIVER>-<VERSÂO>-<ARQUITETURA>.run --extract", pois
ele irá gerar uma saída parecida com essa:


diegomachado@darkstar:~/Downloads/ATI$ sudo sh ./ati-driver-installer-9-7-x86.x86_64.run --extract
Created directory fglrx-install.oZaobP
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.632......................................................................................


Veja na última linha que o número de controle como eu havia dito é 8.632.

[2] Comentário enviado por alevian em 11/08/2009 - 12:23h

Putz!

Sei que a preocupação aqui seria usar ATI em 3D, mas eu só queria fazer o Mandriva 2009 ONE rodar em meu HP a6010br, que vem com a plaquinha ATI Radeon Xpress 1100, mas que o Centro de Controle do Mandriva 2007 (original da máquina) lista com Xpress 200.

Tenho procurarado solução em muitos fóruns.

Agora mesmo, estou, de novo, tentando usar o XFdrake, só que não consigo sequer logar como "root"; timed out after 60 seconds...

Um respeitável colaborador lá do Mandriva Brasil Org sugeriu que eu entre em "modo seguro" - também não sei como fazer isso!

Se alguém tiver solução, por favor!
Outro ponto: Há alguma placa de vídeo BOA e BARATA que eu possa colocar, no lugar desta ATI Radeon, que funcione no Mandriva, no Debian; enfim, nas boas distros?

Obrigado!

[3] Comentário enviado por fabio em 11/08/2009 - 12:54h

Olá Diego,

Só para avisar, transferi suas erratas do seu comentário para o próprio artigo. Quando tiver algo a mudar/corrigir você pode usar o "fale conosco" para tal.

Um abraço.

[4] Comentário enviado por willian.firmino em 11/08/2009 - 13:12h

Cara não tem ideia como isso me ajudou, eu ia vender meu acer aspire 3100 por não conseguir fazer o driver proprietario funcionar agora da para ficar com ele e o Slackware 13, valew mesmo

[5] Comentário enviado por willian.firmino em 11/08/2009 - 13:14h

Só outra duvida, se o kernel do slackware-current mudar novamente antes da versão final (Slackware 13.0) tenho que repetir o processo para instalação do driver ???

[6] Comentário enviado por crank em 11/08/2009 - 14:17h

Bah, vou me aventurar hoje, no meu note um Acer 5535 vem com uma HD3200, estou loco para ver o poder dela no fedora 10.

[7] Comentário enviado por diegomachado em 11/08/2009 - 17:29h

Obrigado fabio, é meu primeiro artigo no VOL, então ainda estou pegando o jeito...hehe

Sim, william, em caso de mudança do kernel para mais recente, até que saia um driver corrigido (sem a necessidade do patch) você vai ter que executar a operação novamente....:/

Boa sorte crank, qualquer dúvida é só postar!

Abraço,

[8] Comentário enviado por acfborges em 12/08/2009 - 11:52h

Muito bom o artigo!
Segui todo o procedimento mas estou tendo um problema no final da instalacao que gera o seguinte erro :

*** glibc detected *** double free or corruption (fasttop)

Depois disso muita coisa eh impressa na tela, parecendo um dump de memoria.

Estou usando o Slack current 64 em uma x1200 integrada.
Se eu tento carregar o modulo com o modprobe ele dah um erro de "cannot alocate memory"

Alguem teve esse mesmo problema?

[9] Comentário enviado por arkanunz em 12/08/2009 - 13:45h

Bom, eu contornei o problema do driver recompilando meu kernel e habilitando três opções

Power management options --->[*] ACPI (Advanced Configuration and Power Interface) Support --->
<*> PCI slot detection driver

Bus options (PCI etc.) ---> [*] Message Signaled Interrupts (MSI and MSI-X)

[*] Enable deprecated pci_find_* API


encontrei essa solução no seguinte link: http://www.linuxquestions.org/questions/slackware-14/another-ati-problem-739103/

[10] Comentário enviado por willian.firmino em 12/08/2009 - 16:56h

acfborges se encontrar a solução posta ai pois estou com o mesmo problema

[11] Comentário enviado por acfborges em 13/08/2009 - 16:22h

Ainda não recompilei meu kernel para ver, mas acredito que o problema não seja esse.

diegomachado, de quando eh sua versão? Estou usando um current que não sei se eh RC.

[12] Comentário enviado por diegomachado em 13/08/2009 - 16:32h

EDIT - Apagado devido a Double Post - Leia a msg abaixo!!!

[13] Comentário enviado por diegomachado em 13/08/2009 - 16:33h

A minha versão do Slackware64-current é de 15 de Julho, ainda não a atualizei, por falta de tempo até o final de semana devo estar fazendo isso.
De quando é a sua?

Estou meio enrolado mas, vou dar uma olhada sobre o lance da glibc, que aparentemente nada tem a ver com o driver em si, pode ser alguma da biblioteca mesmo.
Exatamente em que passo acontece o erro?
Qual o comando que o gera?

Ah, propósito o patch é exatamente para que não haja a necessidade de recompilar o kernel inteiro, então dificilmente teria algo a ver.

[14] Comentário enviado por diegomachado em 13/08/2009 - 23:43h

acfborges, encontrei o que parece ser a solução:

Rode isso num terminal:

export MALLOC_CHECK_=0

É um erro antigo das bibliotecas C++, no Linux e está relacionado com alocação de memória.
E como eu havia imaginado, nada tem a ver com o driver em si, é um problema do compilador GCC, o estranho
é usarmos a mesma distribuição, e eu não ter tido o problema. De quando é a sua imagem mesmo?

A propósito está nos primeiros links do google numa pesquisasobre o seu problema.

http://ubuntuforums.org/showthread.php?t=175050

Caso não resolva, poste que eu volto a verificar alguma outra solução alternativa.

Abraço,

[15] Comentário enviado por acfborges em 14/08/2009 - 10:50h

Entao diegomachado, agradeco muito a atencao com nosso problema.

Eu havia encontrado a solucao do export MALLOC_CHECK_=0, mas com nao havia resolvido por completo o problema, ainda nao havia postado.
Vamos por partes:

Hoje eu atualizei minha versao para a current 64 de 11/08 e refiz todo o procedimento, obtendo os mesmos problemas.

No log da compilacao do driver diz que nao foi carregado o modulo e quando tento carrega-lo manualmente com um "modprobe fglrx" retorna o seguinte erro :
"FATAL: Error inserting fglrx (/copiei este erro da internet/fglrx.ko): Cannot allocate memory"

Ja encontrei alguma coisa sobre isso, inclusive alguns locais dizendo que minha placa nao seria suportada pelo modulo, embora ela apareca na lista da ati(x1200 series)(http://support.amd.com/br/gpudownload/linux/Legacy/Pages/radeon_linux.aspx?type=2.7&product=2.7.4.3.3.3.1〈=English)

Continuo pesquisando sobre o problema, e mais uma vez agradeco!

Edit: em tempo, no lspci a placa eh reconhecida como RS690 x1200 series

[16] Comentário enviado por augustouser em 16/08/2009 - 21:09h

acfborges,

Talvez seja por ser uma placa legacy. Tenho uma Xpress Series também, o problema pode ser pelo driver mais recente dela ser o 9.3 e nem com o patch o esquema funciona. Sei lá, não sou tão "entendido", mas desde o kernel 2.6.27 não consigo rodar o driver proprietário. A princípio eu pensei até que o problema fosse não no kernel mas na versão do xorg-server, que coincidentemente ou não à partir da versão 1.6.x começou a bugar o uso do driver. Lendo esse artigo agora to vendo que talvez eu estivesse pensando de forma errada, não cheguei a testar aqui ainda por falta de oportunidade mas vou fazê-lo e ver se esse patch resolve...

[17] Comentário enviado por diegomachado em 18/08/2009 - 17:55h

É infelizmente confesso que não testei o patch com placas consideradas "legacy" pela AMD/ATI.
Como eu tenho uma X700 em outra máquina, até o final de semana eu faço testes e caso resolva o problema eu posto.

E quanto ao RS690 é o chipset dela.

Assim que tiver um tempo, disponível realizo os testes.

Abraço,

[18] Comentário enviado por diegomachado em 21/08/2009 - 01:43h

CONFIRMADO!!!!!!

O driver catalystic 9.8 acaba de sair, e não há mais a necessidade do Patch!
Finalmente a ATI lançou um driver que vem oficialmente com suporte aos novos kernels, 2.6.29 e 2.6.30. Porém, é infelizmente tem um porém, ao que parece o driver NÃO será compatível com o
mais novo kernel 2.6.31 que ainda será lançado. Ainda não sei o motivo, assim que souber posto a atualização.


acfborges, ainda não tive tempo para realizar os testes com os drivers legacy, assim que o tiver, posto os resultados.


Abraço a todos.

[19] Comentário enviado por augustouser em 29/08/2009 - 18:35h

diegomachado,

Assim como o acfborges, estarei esperando por esses testes.

abs

[20] Comentário enviado por cazon em 31/08/2009 - 10:22h

Excelente Post!!! " Agora meus problemas acabaram" Slack13 RoX!!!

[21] Comentário enviado por acfborges em 31/08/2009 - 11:45h

Amigos,

So pra constar que ainda nao tive tempo de testar e ver se meu problema foi resolvido.
Se alguem fez o teste, por favor, poste o resultado!

Abs!

[22] Comentário enviado por IroN em 03/09/2009 - 10:09h

Utilizo Slackware 13 em casa e no trabalho!

Em casa tenho uma GF série 7000 e o driver da nVidia instala sem necessidade de patch, kernel 2.6.30 (eu compilei).

Na estação de trabalho da empresa tem uma "ATI Technologies Inc RS482 [Radeon Xpress 200]" e o patch realmente não funciona para a versão 9.3 do driver, kernel 2.6.29.6-smp (padrão instalação).

Notícia pior ainda obtive no sítio da ATI (tradução livre, perdoem erros):
http://support.amd.com/us/gpudownload/linux/Legacy/Pages/radeon_linux.aspx?type=2.7&product=2.7.4.3....

"AMD may periodically provide Windows XP and Windows Vista driver updates (for the products listed above) for critical fixes only. No new features will be provided in future driver updates. The Linux ATI Catalyst™ driver will only be supported in Linux distributions prior to February 2009 for the legacy products listed above.

AMD pode lançar drivers atualizados para Windows XP e Windows Vista (para os produtos listados acima) contendo apenas correções críticas. Nenhum recurso novo será lançado. Os drivers Linux ATI Catalyst™ serão suportados apenas em distriubições Linux anteriores a fevereiro de 2009 para os produtos legados listados acima" (ver página da ATI através do atalho acima)

"All future ATI Catalyst™ releases made available past the ATI Catalyst™ 9.3 release will not include support for the legacy products listed above or any of the features associated with those legacy products."

Todas as versões do ATI Catalyst™ após a versão 9.3 não suportarão os produtos legados listados acima ou qualquer dos recursos associados a esses produtos legados.

[23] Comentário enviado por smoldermox em 03/10/2009 - 21:14h

pessoal eu usso slackware 13.0 no notebot com processador core 2 duo e placa de video x2300 tipo nao acho esses driver
o q fasso me da uma liz aewww galera

[24] Comentário enviado por edirlf em 04/10/2009 - 17:02h

Boa tarde.
Creio que o link do patch esteja quebrado.

[25] Comentário enviado por diegomachado em 04/10/2009 - 21:39h

Boa tarde edirlf,

sim o link está quebrado, porém nem fiz questão de atualizar pois, NÃO HÁ MAIS A NECESSIDADE DESSE PATCH, a partir da versão 9.8 (e já estamos na 9.9, do catalystic), ok?
Caso esteja tendo algum problema, ou alguem esteja tendo problemas com a instalação da versão atual, poste para eu saber, e poder ajudar, mas até então a versão 9.8 funciona perfeitamente.

smoldermox, segue o link para o download do driver.

http://support.amd.com/us/gpudownload/Pages/index.aspx

Escolha o seu modelo, baixe e siga apenas o "2 º passo" do artigo, e tudo deverá funcionar bem.
Quanto às placas legacy, realmente o driver não funciona nem com o PATCH, infelizmente a ATI ficou devendo mais essa, não sei se a versão atual funciona.

Qualquer dúvida, é só postar!

Abraço,

[26] Comentário enviado por greghono em 03/04/2010 - 13:00h

Boa Tarde Caro amigo.
Sera que tem que baixar esse link do driver que voce passou mesmo ?
É que minha ATI é a xpress 200 e quando eu faço esses passos não sobe o module e nem consigo usar mais a parte grafica no meu notebook.

[27] Comentário enviado por diegomachado em 06/04/2010 - 16:35h

Boa tarde, greghono...

Bom para te ajudar primeiro eu teria que saber qual é o seu kernel, e a distro...

Mas de qualquer forma o driver que você deverá utilizar é o 9.3, que infelizmente não é coberto no artigo, e não os 9.4 à 9.7 cobertos pelo artigo, talvez por isso o modulo não esteja subindo...

Veja isso no próprio site da AMD: http://support.amd.com/us/gpudownload/linux/Legacy/Pages/radeon_linux.aspx?type=2.7&product=2.7.4.3....

Tente instalá-lo e poste os resultados!

Abraço,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts