|
|
Guia: Vídeo no Linux: nVidia, ATI e placas de TVCarlos E. Morimoto 07/02/2006 Driver 3D da ATI
Estes drivers oferecem um desempenho 3D razoável, em parte graças à própria ATI, que contribuiu no desenvolvimento e abriu parte das especificações das placas, de forma a facilitar o trabalho da equipe de desenvolvimento. Porém, em 2003, a ATI resolveu seguir o mesmo caminho da nVidia, passando a desenvolver um driver 3D proprietário e parou de contribuir com o desenvolvimento do driver open-source. Apesar disso, o driver aberto continuou evoluindo, incluindo suporte a novas placas e melhorias no desempenho, embora o driver proprietário seja mais rápido, já que é desenvolvido pela equipe da ATI que tem acesso a todas as especificações das placas. Se você usa apenas aplicativos em 2D, filmes, música, e games 3D leves, não vai perceber muita diferença, pois os drivers abertos oferecem um desempenho mais que satisfatório para tarefas gerais. Mas, se você roda games 3D pesados, ou usa aplicativos de modelagem em 3D, como o Blender ou o PovRay, vai ver que a diferença é significativa. O desempenho dos drivers proprietários da ATI chega a ser de 2 a 3 vezes maior que o do driver open-source, mas eles possuem sua dose de problemas. O driver da nVidia apresenta problemas em conjunto com algumas combinações de placas de vídeo e placas-mãe baratas, principalmente em placas com chipset SiS. Em algumas você só consegue usar o 3D configurando o vídeo com a opção Option "NvAgp" "0", que desativa o uso do barramento AGP, diminuindo brutalmente o desempenho da placa e em outras o 3D simplesmente não funciona (muitas vezes nem no Windows) por limitações elétricas da placa-mãe. No caso dos drivers da ATI, além dos mesmos problemas de compatibilidade de hardware com algumas placas-mãe, temos sempre um conjunto de deficiências relacionadas com o próprio driver, incluindo problemas de estabilidade em conjunto com algumas versões do X e alguns games. O driver for Linux também não oferece suporte completo a todas as instruções do OpenGL, o que causa diversos pequenos problemas visuais em diversos games, principalmente alguns títulos do Windows executados através do Cedega (WineX). O próprio desempenho do driver fica abaixo do obtido no Windows. Honestamente falando, se o driver do X está funcionando corretamente, não existe muita vantagem em mudar para o driver binário da ATI, dada a baixa qualidade do driver e os diversos problemas. Ele oferece um desempenho 3D superior em conjunto com muitas placas, mas ainda muito inferior ao desempenho do driver Windows. Em resumo, se você quer estabilidade, fique com o driver padrão do X e, se está preocupado com o desempenho ou qualidade gráfica, compre uma placa da nVidia, que oferece drivers melhores. Você pode encontrar um comparativo entre a diferença de desempenho entre os drivers Linux e Windows da ATI e da nVidia (no mesmo hardware) nestes dois links:
http://www.phoronix.com/scan.php?page=article&item=357 Outros dois links (bem mais antigos), com benchmarks comparativos:
http://www.anandtech.com/printarticle.aspx?i=2229 Depois dessa "seção choradeira", vamos ao que interessa, que é a instalação do driver propriamente dito. É importante lembrar que ele só tem o funcionamento garantido nas placas off-board Radeon 8500 em diante. Ele não funciona em muitos notebooks com placas ATI onboard (muitos fabricantes alteram a programação ou o barramento dos chipsets, tornando-os incompatíveis com o driver), nem em conjunto com as placas antigas. Se você possui uma, utilize o driver "ati" do X.org, que oferece suporte 3D às placas onboard e a quase todos os modelos antigos. Se você chegar a instalar o driver num equipamento incompatível o sistema passar a travar durante a abertura do X, dê boot com um CD do Kurumin e desfaça as alterações feitas no "/etc/X11/xorg.conf", voltando a usar o driver "ati".
Instalando
Antes de começar, tenha em mente que o driver da ATI não é simples de instalar. Ele possui um Instalador gráfico "bonitinho mas ordinário", que faz apenas parte do trabalho. Para que o driver funcione, é necessário que o módulo do Kernel esteja carregado, o "/dev/shm" esteja montado e toda a configuração dentro do "/etc/X11/xorg.conf" ou "XF86Config-4". Se você esquecer de uma única opção, vai acabar com uma tela preta ou com caracteres coloridos embaralhados. Por isso, siga com atenção todos os passos. Se tiver duas máquinas, deixe o servidor SSH ativado, assim você poderá usar a outra para se conectar na primeira e revisar a configuração caso o X deixe de abrir. Caso tenha apenas uma, use um CD do Kurumin para dar boot, montar a partição e assim alterar a configuração em casos de problemas. Para finalmente instalar, baixe o "ATI driver installer" no http://www.ati.com, na seção "Drivers & Software > Linux Display Drivers". A partir da versão 8.21.7, o tamanho do pacote foi reduzido brutalmente, de quase 70 MB para 35 MB. Como de praxe, o primeiro passo é marcar a permissão e executar o arquivo:
# chmod +x
ati-driver-installer-8.21.7-i386.run Ao contrário do driver da nVidia, você não precisa fechar o X, pois o instalador da ATI roda tanto em modo gráfico quanto texto. Não se anime, pois como ele precisa compilar o módulo para o Kernel, está sujeito aos mesmos problemas relacionados aos compiladores e headers do Kernel que os outros drivers que vimos até aqui. Para ele funcione corretamente, é preciso que esteja tudo em ordem. É preciso prestar atenção também nas versões do X suportadas pelo driver e eventuais problemas com versões recentes do Kernel. A ATI não é particularmente rápida em lançar atualizações. Enquanto escrevo este tópico (Fevereiro de 2006), por exemplo, ainda não existe suporte ao X.org 6.9, que foi lançado no início de Dezembro e (dependendo dos patches adicionados pela distribuição) nem mesmo ao 6.8.2, lançado bem antes. O pior é que o driver não detecta se a versão do X é suportada ou não, fazendo com que você só perceba depois de fazer todas as alterações. Você pode checar qual versão do X está instalada usando o comando "X -version".
Assim como no caso do driver da nVidia, é possível gerar um pacote pré-compilado para a distribuição em uso, o que facilita as coisas em casos onde você precisa instalar o driver em várias máquinas. Para isso, use a opção "Generate Distribution Specific Driver Package". Os pacotes gerados por essa opção podem ser instalados em qualquer máquina que esteja rodando a mesma distribuição e versão.
Configurando e solucionando problemas
Para usar a configuração automática, execute-o usando a opção "--initial": # aticonfig --initial Você pode também forçar o uso de uma determinada resolução, como em: # aticonfig --initial --resolution=1024x768 O comando suporta diversas outras opções. Você pode ver uma lista resumida chamando o comando "aticonfig" sem parâmetros. Para que ele gere uma configuração para dois monitores (numa placa com duas saídas), onde o segundo está à direita do primeiro, por exemplo, use: # aticonfig --initial=dual-head --screen-layout=right Caso ele reclame que o arquivo de configuração atual tem opções inválidas, você pode usar a opção "-f", que força a alteração do arquivo. Note que neste caso pode ser que você precise fazer algumas alterações manualmente depois, por isso é importante salvar um backup do arquivo original. # aticonfig --initial --resolution=1024x768 -f Você pode alterar as configurações da saída de TV e do segundo monitor usando o "fireglcontrolpanel", um utilitário gráfico instalado juntamente com o driver:
Tenha em mente que, ao fazer qualquer alteração, é necessário reiniciar o X para que as modificações entrem em vigor. Para que a aceleração 3D funcione, é necessário que o módulo "fglrx" esteja carregado. Ele conflita com os módulos "radeon" e "drm", que fazem parte do módulo open-source. Se ao tentar carregá-lo você receber uma mensagem como: # modprobe fglrx FATAL: Error inserting fglrx (/lib/modules/2.6.12/kernel/drivers/char/drm/fglrx.ko): Operation not permitted Significa que os dois módulos estão carregados. Neste caso, desative-os e tente novamente:
# modprobe -r
radeon Caso necessário, adicione os três comandos no final do arquivo "/etc/rc.d/rc.local" ou "/etc/init.d/bootmisc.sh" para que eles sejam executados a cada boot. Isso é necessário em muitas distribuições, pois muitas ferramentas de detecção carregam os dois módulos sempre que uma placa ATI está instalada. Caso o módulo "fglrx" não esteja disponível, significa que algo deu errado durante a instalação do driver, provavelmente relacionado aos headers do Kernel ou aos compiladores. Outro recurso utilizado pelo driver é o device "/dev/shm" (que ativa o suporte ao padrão POSIX de memória compartilhada), que deve estar disponível e montado. Para isso, adicione a linha abaixo no final do arquivo "/etc/fstab": tmpfs /dev/shm tmpfs defaults 0 0 Para que ele seja montado sem precisar reiniciar, use o comando: # mount /dev/shm
O primeiro passo é alterar a seção "Device", que indica qual driver de vídeo será usado e permite incluir configurações para ele. Substitua a linha Driver "ati", Driver "radeon" ou Driver "vesa" por:
Driver "fglrx" A opção "MonitorLayout" "AUTO, AUTO" é especialmente importante. Sem ela, o driver se embanana com as saídas de vídeo em placas com duas saída ou saída de TV e o vídeo não abre. Existem mais opções relacionadas a esta opção, que veremos a seguir. Comente também a linha Option "sw_cursor", caso esteja inclusa no arquivo. Um exemplo da seção "Device" completa é:
Section
"Device" A seção "Module" do arquivo de configuração deve ficar similar a esta:
Section
"Module" As linhas referentes às fontes podem mudar de uma distribuição para outra, mas as sete linhas em negrito devem estar sempre presentes. Note que ao contrário da configuração para o driver da nVidia, você não deve comentar a linha "Load dri". Note também que o driver precisa da opção "omit xfree86-dga" (dentro da sub-seção), que precisa ser incluída manualmente. Dentro da seção "Monitor" verifique se as taxas de varredura estão corretas (compare com o arquivo de configuração antigo, ou outro arquivo que esteja funcionando) e remova todas as linhas com modelines. Elas não são usadas pelo driver da ATI e podem causar problemas em muitos casos. Um exemplo de seção "Monitor" funcional é:
Section
"Monitor" Por último, verifique a seção "Screen". O driver da ATI não suporta o uso de 16 bits de cor (usado por padrão em muitas distribuições), por isso é necessário usar sempre 24 bits de cor. Se encontrar a linha "DefaultColorDepth 16" e mude-a para "DefaultColorDepth 24". A seção "screen" é especialmente importante dentro do arquivo, pois ela "junta tudo", fazendo com que o X use a configuração da placa de vídeo, monitor, teclado e mouse para abrir o servidor gráfico. Cada uma das outras seções dentro do arquivo recebe um nome. No nosso exemplo, a placa de vídeo recebeu como nome "Card0" e o monitor recebeu "Monitor0". No nome não importa muito, mas é preciso que você indique-os corretamente dentro da seção "Screen", junto com a configuração de cor e resolução que será usada, como em:
Section
"Screen" Ao usar pedaços retirados de outros arquivos de configuração, lembre-se sempre de verificar e alterar os nomes de cada seção ou as referências dentro da seção "Screen".
Note que ativar esta opção pode causar travamentos em algumas placas. Neste caso basta desfazer a alteração e reiniciar o X. Se necessário, você pode fazer isso dando boot com um CD do Kurumin e editando o arquivo dentro da partição.
Option "ForceMonitors" "notv" Caso você tenha uma placa com duas saídas (VGA e DVI) e a primeira opção não resolva, experimente substituir a linha Option "MonitorLayout" "AUTO, AUTO" por uma das duas linhas abaixo. Use a primeira caso você tenha um monitor LCD ligado na saída DVI e a segunda caso tenha um CRT ou LCD ligado na saída VGA:
Option
"MonitorLayout" "TMDS, NONE" Estas duas opções são incluídas automaticamente ao chamar o aticonfig usando a opção "--force-monitor=crt1,notv", como em: # aticonfig --force-monitor=crt1,notv
Caso mesmo depois de testar todas as opções o X
continuar não abrindo, experimente alterar também as
configurações relacionadas ao AGP no setup da placa
mãe, reduzindo a velocidade do barramento AGP e aumentando a
quantidade de memória reservada para pelo menos 64 MB (algumas
placas só funcionam corretamente com 128 MB) na opção
"AGP Aperture". Caso você queira ativar o FSAA, adicione as linhas abaixo na seção "driver" (onde vai a linha Driver "fglrx") do arquivo de configuração, logo depois da linha "Option "OpenGLOverlay" "off":
Option
"FSAAEnable" "yes" A linha Option "FSAAScale" "4" indica o nível de FSAA usado. Neste exemplo estou usando o FSAA 4x. Na versão atual, o driver ainda não oferece suporte a FSAA 8x e também a nenhum nível de Anisotropic Filter. A linha "Screen 0" indica para qual tela o FSAA será ativado, no caso de uma configuração com dois ou mais monitores. Uma observação é que algumas distribuições, como o Ubuntu e o Mandriva oferecem pacotes pré-compilados com driver da ATI, que reduzem as possibilidades de problemas. Nas distribuições derivadas do Debian, você pode utilizar também o script "install-radeon-debian.sh" desenvolvido pelo Kano, do Kanotix, que está disponível no: http://kanotix.com/files/. Este script deve ser executado com o sistema em texto puro, assim como o instalador da nVidia e é necessário que o pacote "alien" esteja instalado.
|