:. Como instalar os drivers 3D de placas nVidia e ATI no Linux

 Por Carlos E. Morimoto
 http://www.guiadohardware.net
 23/11/2002


Pouco a pouco o Linux também está se tornando uma plataforma de jogos. Além dos vários títulos da Epic, existem versões nativas de toda a série Quake, Castle of Wolfstern e mais recentemente do UT2003, entre vários outros. Temos ainda o WineX que já é capaz de rodar mais de 80 títulos, entre eles o Half Life e o Counter Strike. Outros games podem ser rodados até mesmo usando a versão gratuíta do Wine, como por exemplo o Diablo II.

Existem ainda alguns jogos Open Source interessantes como o Boson e o Cube. Com excessão do Diablo II, todos estes títulos possuem uma coisa em comum: precisam de uma placa 3D para rodar. Neste artigo veremos como instalar os drivers binários da nVidia e da ATi.

:. Instalando os drivers da nVidia


Para os jogos 3D a melhor opção de placa 3D são as nVidia GeForce, que atualmente são as melhores suportadas dentro do Transgaming e do Linux, basta que você baixe e instale os drivers da nVidia, que podem ser baixados em: http://www.nvidia.com

Não existe mistério na instalação dos drivers. Dentro da página da nVidia abra a página de download de drivers para Linux. Você precisará baixar dois arquivos RPM, o GLX Driver e o Kernel Driver adequado para o seu sistema.

Os drivers da nVidia são unificados, o que faz com que o mesmo driver seja compatível com todas as placas nVidia TnT e GeForce. Não importa qual seja o modelo da sua placa, os drivers serão os mesmos.

O GLX Driver é o arquivo de driver, que serve para todas as distribuições do Linux. Existe a opção de baixá-lo no formato de um arquivo RPM, que é a melhor opção para quem usa o Mandrake, Conectiva, Red Hat ou outra distribuição com suporte a arquivos RPM ou então baixar o arquivo em formato tar.gz, que funciona em todas as distribuições:

Você precisa baixar ainda o Kernel Driver, que se encarrega de adicionar suporte ao driver no Kernel de assegurar que ele funcione perfeitamente em cada distribuição. Basta escolher o driver adequado à distribuição Linux que estiver utilizando. No no caso do Red Hat 7.3 por exemplo o driver correto seria o "Red Hat 7.3 updated to 2.4.18-10 UP". Existe ainda o driver para quem utiliza um PC com dois processadores (SMP) e também o driver para a versão Enterprise do Mandrake. Estão disponíveis drivers para várias distribuições, incluindo o Mandrake, SuSE, etc.

Estão disponíveis pacotes RPM para várias distribuições, mas se a sua não está na lista então sua única opção é baixar o arquivo .tar.gz que funciona em qualquer distribuição que atenda os requisitos mínimos. Lembre-se que é preciso baixar o pacote para a versão correta da sua distribuição, pois eles só funcionarão em sistemas com o Kernel da mesma versão em que foram gerados. O pacote para o Mandrake 8.2 não serve para o Mandrake 9.0, o pacote para o Red Hat 7.3 não funciona no 7.2 e assim por diante.

Se ainda não estiver disponível um driver para a versão correta, então baixe sempre a versão .tar.gz, de qualquer forma a instalação é bastante simples. Você também deverá usar o driver .tar.gz caso tenha atualizado o Kernel.

O MD5SUM é um sistema que permite verificar a integridade do arquivo baixado. Basta acessar a pasta onde o arquivo foi salvo e dar o comando: "md5sum nome_do_arquivo" o programa voltará um código, que deve ser o mesmo da página.

Com os dois arquivos em mãos você precisa apenas instalá-los. Basta clicar sobre os arquivos RPM dentro do gerenciador de arquivos ou então usar o comando "rpm -ivh nome_do_arquivo" ou "urpmi nome_do_arquivo" (no Mandrake) para instalá-los via terminal. Pontinho, sua GeForce está com o 3D habilitado, pronta para rodar UT2003, Counter Strike ou Q3.

Seguindo a recomendação da nVidia, você deve sempre instalar primeiro o Kernel driver e só depois o GLX Driver.

Para instalá-los, mude para um terminal de modo texto, digitando "Ctrl_Alt+F2", logue-se como root e dê o comando "telinit3" que fecha temporariamente o modo gráfico.

A partir daí é só acessar a pasta onde estão os drivers e instalá-los usando os comandos:

# rpm -ivh NVIDIA_kernel-1.0-3123.mdk82up.i586.rpm
# rpm -ivh NVIDIA_GLX-1.0-3123.i386.rpm

(sempre substituindo pelos nomes corretos dos arquivos que você baixar).

Caso você tenha baixado os pacotes .tar.gz então o procedimento muda um pouco. Você deverá primeiro descompactar os pacotes com o comando "tar -zxvf pacote.tar.gz" acessar cada uma das duas pastas e usar o comando "make" para instalar cada uma. Por exemplo:

# tar -zxvf NVIDIA_kernel-1.0-3123.tar.gz
# cd NVIDIA_kernel-1.0-3123
# make
# cd ..
# tar -zxvf NVIDIA_GLX-1.0-3123.tar.gz
# cd NVIDIA_GLX-1.0-3123
# make

Note que ao contrário da maioria dos programas .tar.gz, o make sozinho já faz toda a checagem necessária e instala os arquivos.

Pra instalar os drivers .tar.gz é preciso que estejam instalados no seu sistema os pacotes kernel-source e kernel-headers. No Mandrake basta usar os comandos "urpmi kernel-source" e "urpmi kernel-headers". Em outras distribuições você pode usar o gerenciador de software incluído ou então procurar os pacotes nos CDs da distribuição. Estes pacotes geralmente são instalados junto com o sistema quando é marcada a categoria "desenvolvimento" durante a instalação.

Depois de instalados os drivers, dê o comando "telinit 5" para reabrir o modo gráfico. Pressione "Ctrl+Alt+F7" para voltar ao terminal gráfico e veja se tudo está funcionando sem problemas.

Se o modo gráfico não abrir mais acusando um erro qualquer, pode ser necessário fazer algumas alterações manuais no seu arquivo /etc/X11/XF86Config-4 (que em algumas distribuições aparece como "/etc/X11/XF86Config") que é o arquivo onde fica a configuração do vídeo.

Pressione Ctrl+Alt+F2 para voltar ao terminal de texto, dê novamente o comando "telinit 3" e abra o arquivo de configuração com o comando "vi /etc/X11/XF86Config-4" ou "vi /etc/X11/XF86Config".

Procure pelas linhas:

Section "Device"
Identifier "* Nvidia GeForce"
Driver "nv"

Altere o "nv" (ou qualquer outra coisa que esteja no lugar) por "nvidia". O driver "nv" é um driver antigo (mas que por algum motivo ainda é o default) que não funciona em vários modelos de placas. Depois da modificação a seção ficará:

Section "Device"
Identifier "* Nvidia GeForce"
Driver "nvidia"

Verifique também se a linha "Load "glx" não está comentada. Esta é justamente a linha que carrega o driver 3D mas por algum motivo em algumas versões ela fica desativada por default. Basta retirar a tralha (#) do início da linha:

de:
#Load "glx"

ficará:
Load "glx"

Uma terceira alteração que pode ser necessária dependendo do modelo da sua placa mãe é desabilitar o double buffer extension. Procure pela linha:

Load "dbe" # Double buffer extension

e comente-a, deixando:

#Load "dbe" # Double buffer extension

Lembre-se que no vi você deve pressionar a tecla "i" para começar a editar o arquivo e, depois de terminar, pressionar "Esc ZZ" (tecla ESC seguida por dois Z maiúsculos) para salvar a sair.


Agora é só reabrir o modo gráfico usando novamente o comando "telinit 5" e pressionar "Ctrl+Alt+F7" para voltar para ele. Desta vez tudo deve funcionar :-) O sinal de que os drivers 3D estão funcionando é uma splashscreen com o logo da nVidia. Também é normal que depois de instalados os drivers a inicialização do sistema demore uns 5 ou 10 segundos a mais.

Os drivers permitem ativar também o TwinView, o suporte a dois monitores na mesma placa, disponível em alguns modelos, basta consultar o manual.

Alguns usuários queixam-se de problemas de estabilidade ao usar os drivers da nVidia, o problema neste caso é o mesmo que alguns usuários enfrentam no Windows, problemas com a implementação do AGP na placa mãe, encontrados nas primeiras placas super 7 e para Pentium II e Athlon com chipsets Via e um grande número de placas com chipsets SiS.

Existem mais algumas alterações que resolvem estes problemas em uma grande parte dos casos. Em primeiro lugar, experimente desativar o suporte a AGP na configuração do vídeo. Isto faz com que a placa de vídeo seja acessada como se fosse uma placa PCI, sem armazenar texturas na memória e outros recursos permitidos pelo AGP. O desempenho naturalmente cai um pouco, mas antes rodar um pouco mais lento do que travar não é?

Abra novamente o seu arquivo /etc/X11/XF86Config-4 ou /etc/X11/XF86Config e procure pelas linhas:

Section "Device"
Identifier "device1"
VendorName "nVidia Corporation"
BoardName "RIVA TNT"
Driver "nvidia"
Option "DPMS"

E adicione a linha: Option "NvAgp" "0"

O trecho ficará:

Section "Device"
Identifier "device1"
VendorName "nVidia Corporation"
BoardName "RIVA TNT"
Driver "nvidia"
Option "DPMS"
Option "NvAgp" "0"

Para que esta alteração entre em vigor é necessário reiniciar o micro.

Se mesmo assim a instabilidade persistir, abra o seu arquivo /etc/lilo.conf e adicione a opção "mem=nopentium" na linha append. No meu caso ficou assim:

image=/boot/vmlinuz
label=linux
root=/dev/hda1
initrd=/boot/initrd.img
append="quiet devfs=mount hdd=ide-scsi mem=nopentium"
read-only

Esta opção desativa o recurso Page Size Extension que causa problema em algumas placas mãe para processadores AMD que também pode causar travamentos ao usar placas de vídeo AGP com os drivers 3D habilitados. Depois de salvar o arquivo, digite "lilo" no terminal (como root) para que as alterações sejam gravadas. Novamente é preciso reiniciar para ativar a mudança.

Se ainda assim os travamentos continuarem, você pode forçar o uso do AGP 1x ao invés do 2x ou 4x suportado pela sua placa mãe. Isto resolve o problema de estabilidade em muitas placas mãe. Para isso, abra o arquivo /etc/modules.conf e adicione as seguintes linhas no final do arquivo:

alias char-major-195 NVdriver
options NVdriver NVreg_ReqAGPRate=1 # force AGP Rate to 1x

Salve o arquivo e reinicie para que a alteração entre em vigor. Estas três alterações resolvem os problemas de estabilidade em uns 80% dos casos. Existem algumas placas mãe antigas que são realmente problemáticas, nestes casos não existe outra opção a não ser fazer um upgrade.

Lembre-se que em alguns casos os travamentos nos jogos também podem ser causados por problemas com os drivers da placa de som ou do modem. Outras possíveis causas de instabilidade são superaquecimento da placa de vídeo (neste caso experimente adaptar um cooler de 486 no chipset de vídeo) ou problemas com a fonte de alimentação do micro (muitas fontes de baixa qualidade não são capazes de fornecer energia suficiente para a placa de vídeo).

Hoje em dia qualquer placa 3D precisa de uma boa refrigeração para funcionar, em geral os fabricantes desenvolvem os produtos pensando nos países da europa, onde faz frio e não em países tropicais como o nosso. Para garantir a estabilidade e aumentar a vida útil dos componentes uma boa refrigeração é indispensável. O ideal é que você utilize um exaustor de 80 mm na parte frontal do gabinete, soprando o ar sobre a placa de vídeo e o processador, um slot cooler, ou um cooler de 486 adaptado para refrigerar a placa de vídeo. Se você usa um HD de 7200 RPM também é altamente recomendável usar um HD cooler.

Mais uma coisa que deve ser levada em consideração é que existem placas de vários fabricantes com chipsets nVidia. Mesmo placas com o mesmo chipset muitas vezes possuem diferenças na temporização da memória, ou mesmo na frequência do chipset (alguns fabricantes vendem placas overclocadas para diferenciar seus produtos dos concorrentes) e assim por diante. Cada fabricante tenta fazer suas placas serem mais rápidas ou mais baratas que as dos concorrentes, com resultados variados. Estas diferenças podem levar a incompatibilidades diversas com alguns modelos de placas mãe.

Por exemplo, eu tenho duas placas TnT2 com 8 MB de memória. Uma delas funciona perfeitamente numa placa MSI antiga que uso pra testar coisas, enquanto a segunda, no mesmo micro, trava em média a cada 15 minutos. Apesar disso, as duas funcionam perfeitamente num outro micro com uma placa i845. Enfim, embora os drivers sejam unificados, cada placa é um caso :-)

O desempenho dos drivers 3D da nVidia no Linux é simplesmente excelente, quase sempre ganhando por uma pequena margem dos drivers for Windows. Embora a briga entre a ATI e a nVidia esteja apertada, pelo menos no Linux os drivers da nVidia oferecem um desempenho imbatível.

Uma dica é que durante a instalação do Linux você geralmente terá a escolha de habilitar ou não o suporte a 3D. Este suporte é dado através dos drivers Open-Source incluídos no XFree que são famosos pela estabilidade, mas não oferecem um desempenho tão bom quanto os drivers da nVidia. Se você pretende instalar os drivers da nVidia mais tarde é importante não habilitar o suporte a 3D durante a instalação, isso previne muitos possíveis problemas.




:. Instalando os drivers da ATI


As placas da ATI já possuíam suporte 3D nos próprios drivers open-source incluídos no Xfree, porém o desempenho 3D dos drivers padrão é muito baixo. Inicialmente a ATI demonstrou pouco interesse em desenvolver drivers para o Linux, mas acabou recuando depois de ver que livre da concorrência a nVidia estava se posicionando como a escolha default para todos os usuários do Linux, que atualmente não são tão poucos :-)

Os drivers oficiais podem ser baixados no: http://ati.com/support/driver.html

Parece que a ATI está tentando seguir o exemplo de drivers unificados da nVidia, pois o mesmo driver serve para todas as placas ATI Radeon 8500 em diante. Infelizmente os modelos anteriores, incluindo as Radeon 7500 e as All-in-Wonder Radeon, continuam não suportados e provavelmente continuarão assim, já que estas placas já foram descontinuadas.

Na página de download você terá a opção de baixar drivers para o Xfree 4.1 e o Xfree 4.2. Para saber qual está instalado no seu sistema, baixe o arquivo"Check.sh", disponível na mesma página e rode-o (como root) com o comando "sh Check.sh".

Os drivers disponíveis em Novembro de 2002 suportam oficialmente apenas o Mandrake 9.0 e o Red Hat 8.0 e são distribuídos apenas em formato RPM. É possível instala-los também no SuSe, Conectiva e outras distribuições que suportem arquivos RPM desde que a distribuição utilize o libc 6.2, o que pode ser confirmado rodando o Check.sh.

No Slackware você pode utilizar o programa rpm2tgz que converte o pacote para o formato do Slackware, enquanto no Debian a conversão pode ser feita usando o alien, que pode ser baixado em: http://packages.debian.org/alien

A instalação do pacote é feita da maneira tradicional, usando o comando rpm -i ou rpm -ivh. O FAQ da ATI recomenda usar o comando "rpm -i --force pacote.rpm" para evitar que a instalação seja abortada nos casos em que já exista algum driver instalado.

Depois de instalar o pacote, você deve rodar o "fglrxconfig", o programa de configuração incluído no pacote que permite configurar várias opções relacionadas à placa, assim como no Windows.

Depois de configurar tudo basta reiniciar o X pressionando Ctrl+Alt+Backspace ou então reiniciar o micro para que o novo driver entre em ação. Embora não sejam completamente livres de problemas (como é de se esperar das primeiras versões de qualquer driver), os drivers da ATI oferecem suporte a várias extensões, incluindo as instruções 3D-Now! dos processadores AMD, além das extensões Xvideo e S3TC, necessárias para rodar alguns títulos, entre eles o Unreal 2003.

Vale lembrar que tanto os drivers da nVidia quanto os da ATI são fechados e distribuídos apenas em formato binário. É justamente por isso que os drivers não são incluídos diretamente nas distribuições. Outro efeito colateral é os drivers podem não funcionar em distribuições Linux menos conhecidas, já que os testes realizados pelos fabricantes se concentram geralmente no Red Hat, Mandrake e SuSe, que são as distribuições usadas por um maior número de de usuários.

Além das GeForce e ATI Radeon, as placas Matrox G400 e G450 também são bem suportadas, embora o desempenho seja fraco em relação às GeForce devido à diferença de desempenho entre os drivers open-source e os da nVidia. Até o vídeo onboard das placas com os chipset i810 e i815 da Intel podem prestar um bom trabalho, observados os limites de desempenho destes chipset de vídeo naturalmente.

Para testar seus drivers 3D, você pode começar rodando o TuxRacer, um joguinho 3D open source que acompanha as distribuições. Se ele não estiver instalado, procure pelo pacote no CD da distribuição ou use o comando "urpmi tuxracer" (no Mandrake). O jogo em sí é bastante simples, você é um Pinguin que desce a montanha de barriga e deve concluir os traçados no menor tempo possível e catar todos os peixes que aparecem pelo caminho, desviando dos obstáculos. Existem vários traçados diferentes e o jogo não é tão fácil assim. Os gráficos também são bem bonitos e a música é, bem, digamos que seja relaxante ;-)

O TuxRacer é razoavelmente leve, uma TnT2 por exemplo é capaz de gerar em média uns 30 FPS a 1024x768. Se o jogo ficar quadro a quadro significa que os drivers 3D não estão corretamente instalados. O arquivo de opções é criado dentro da pasta "tuxracer", dentro do seu diretório de usuário, onde você pode alterar a resolução, os controles e brincar com os recursos 3D suportados pela sua placa.




Copyright 2002 Carlos E. Morimoto, http://www.guiadohardware.net - Todos os direitos reservados