Friday, 4. November 2005, 18:20:27
Nota: a dica aqui é referente à compilação e instalação do módulo fglrx no devido destino dentro da árvore do kernel linux. Agora, quanto aos demais passos necessários para habilitar a aceleração gráfica 3D, é melhor checar os passos destinados a cada distribuição (um bom começo é aqui). No Slackware é muito simples.
Esta versão do
driver proprietário da
ATI para placas com chipset radeon, já começa a apresentar resultados promissores. Até a versão anterior em relação à 8.18.6, ainda não rolava a contento, por exemplo, o jogo UT2004. O antialiasing um tanto pobre, efeitos visuais ainda não sendo apresentados corretamente, e por aí vai.
Apesar da evolução, os resultados obtidos com Doom3 ainda não me agradaram. Em verdade, há certos efeitos no jogo que, no meu caso, provocaram travamento geral. Mas isto com certeza não é problema do Linux, mas do driver da ATI. Esperarei a nova versão para novos testes.
Bom, na verdade não cheguei a usar a versão 8.18.6, porém como o changelog relativo ao 8.18.8 não porta mudanças significativas, então eu classifico a versão 8.18.6 como a versão de "mudança". Em verdade, o nível de suporte do driver da ATI em relação ao da Nvidia (para Linux ambos), ainda está, em minha opinião, um tanto longe do ideal. Porém a ATI vem trabalhando forte no desenvolvimento de seu driver para Linux, e os resultados vão surgindo aos poucos.
Ocorre aqui, é que a cada nova geração do kernel Linux, vez ou outra não se consegue compilar o driver fglrx (nome do driver proprietário da ATI). Em alguns casos, os problemas são em detalhes, os quais, dependendo do nível de dificuldade, podem ser contornados, sem a necessidade de se esperar uma nova versão do driver, e assim poder usar a aceleração gráfica 3D (sem isso esqueça os games mais loucos..heeh) com o novo kernel Linux.
Bom, no caso aqui eu uso Slackware. Então eu faço download do driver sem o instalador (aquele pacote enorme que a ATI fornece, com cerca de 51MB), pego epenas o pacote RPM para X.Org 6.8. Uso o utilitário rpm2tgz para converter o pacote para o padrão do Slackware, instalo o arquivo tgz gerado usando installpkg.
A partir deste ponto acesso o diretório /lib/modules/fglrx/build_mod. Eu edito o arquivo firegl_public.c usando um editor de textos simples (nano, pico, vi, gedit, jedit, e por aí vai). O procedimento para edição do arquivo é o seguinte:1. Localize a linha abaixo no arquivo firegl_public.c:
int ATI_API_CALL __ke_verify_area(int type, const void * addr, unsigned long size)
2. Sob a linha acima descrita, você terá o seguinte:
return verify_area(type, addr, size);
3. O segredo aqui é inserir tags envolvendo a linha anterior para que ela não tenha efeito quando o script de compilação do driver for executado, então o negócio é deixá-la como um comentário para que não gere problemas. Então basta deixar a linha como segue:
/* return verify_area(type, addr, size); */
4. Agora imediatamente sob esta linha anterior devidamente comentada, inserimos uma nova linha:
return access_ok(type, addr, size) ? 0 : -EFAULT;
5. Prontinho. Basta salvar o arquivo firegl_public.c. Abaixo o "jeitão" assumido pelo trecho citado nos passos acima, após a edição:
int ATI_API_CALL __ke_verify_area(int type, const void * addr, unsigned long size)
{
/* return verify_area(type, addr, size); */
return access_ok(type, addr, size) ? 0 : -EFAULT;
}
6. Agora, basta acionar o script para compilação do driver (precisa ser como root) e depois no diretório /etc/lib/fglrx rodar o script de instalação do driver.
Esta dica eu encontrei no fórum
Rage3D.