Aviso :
Este documento não é válido e não é mais mantido.
|
Guia de nVidia do Gentoo Linux
1.
Introdução
A nVidia lança seus próprios drivers de Linux que fornecem boa performance e
aceleração 3D completa. Os drivers são divididos em duas partes:
nvidia-kernel e nvidia-glx.
nvidia-kernel é um driver de kernel que lida com comunicação de
baixo nível com seu hardware de vídeo. É simplesmente um módulo de kernel,
chamado nvidia, que se instala contra suas fontes de kernel e precisa
ser carregado quando você quer usar os drivers da nvidia.
Bem como o driver de kernel, você precisa instalar o layer de X11 GLX
(nvidia-glx). É usado pelo X para desenhar gráficos, que usam
internamente o driver de kernel nvidia-kernel para interface com o
hardware.
2.
Configurando sua placa
Configuração de kernel
Como mencionado acima, o driver de kernel da nVidia instala-se e roda contra seu
kernel atual. Já que se constrói como módulo, faz sentido que seu kernel deva
suportar carregamento de módulos de kernel. Se você usou genkernel para
configurar o kernel para você, tudo está pronto. Caso contrário, verifique que
sua configuração de kernel tem este suporte ativado:
Listagem de código 2.1: Ativando suporte de módulos de kernel carregáveis |
Loadable module support --->
[*] Enable loadable module support
|
Você também precisa ativar Memory Type Range Register em seu kernel:
Listagem de código 2.2: Ativando MTRR |
Processor and Features --->
[*] MTRR (Memory Type Range Register) support
|
Os módulos e bibliotecas da nVidia são combinados em dois pacotes:
nvidia-glx e nvidia-kernel. O primeiro são as bibliotecas de X11
GLX e o segundo são os módulos do kernel.
A ebuild de nvidia-kernel descobre automaticamente sua versão do kernel com base
no link simbólico /usr/src/linux. Por favor certifique-se que você
tem este link simbólico apontando para as fontes corretas e que seu kernel está
corretamente configurado. Veja a seção Configurando o kernel do Manual de instalação para detalhes sobre a
configuração de seu kernel.
Se você estiver usando gentoo-sources-2.6.11-r6, seu diretório
/usr/src deve parecer-se com o seguinte:
Listagem de código 2.3: Verifique seu link simbólico /usr/src/linux |
# cd /usr/src
# ls -l
lrwxrwxrwx 1 root root 22 Apr 23 18:33 linux -> linux-2.6.11-gentoo-r6
drwxr-xr-x 4 root root 120 Apr 8 18:56 linux-2.4.26-gentoo-r4
drwxr-xr-x 18 root root 664 Dec 31 16:09 linux-2.6.10
drwxr-xr-x 18 root root 632 Mar 3 12:27 linux-2.6.11
drwxr-xr-x 19 root root 4096 Mar 16 22:00 linux-2.6.11-gentoo-r6
|
Na saída acima, você perceberá que o link simbólico linux está apontando
para o kernel linux-2.6.11-gentoo-r6.
Se o link simbólico não estiver apontando para as fontes corretas, você deve
atualizar o link desta maneira:
Listagem de código 2.4: Crie/atualize o link simbólico /usr/src/linux |
# cd /usr/src
# ln -snf linux-2.6.11-gentoo-r6 linux
|
Opcional: verifique a existência de suporte para placas antigas (legacy)
Nota:
Infelizmente, certas placas antigas não são suportadas pelas novas versões de
nvidia-glx e nvidia-kernel. A nVidia fornece uma lista de placas
suportadas. Por favor, verifique a lista antes de instalar os drivers.
|
A seguir há uma lista de placas antigas sem suporte:
Listagem de código 2.5: Placas sem suporte |
TNT2
TNT2 Pro
TNT2 Ultra
TNT2 Model 64 (M64)
TNT2 Model 64 (M64) Pro
Vanta
Vanta LT
GeForce 256
GeForce DDR
GeForce2 GTS
GeForce2 Pro
GeForce2 Ti
GeForce2 Ultra
GeForce2 MX Integrated graphics
Quadro
Quadro2 Pro
Quadro2 EX
|
Se você tiver uma dessas placas, você terá que mascarar as novas versões dos
drivers da nVidia, e instalar uma versão antiga:
Listagem de código 2.6: Mascarando drivers novos |
# echo ">media-video/nvidia-kernel-1.0.6629-r4" >> /etc/portage/package.mask
# echo ">media-video/nvidia-glx-1.0.6629-r7" >> /etc/portage/package.mask
|
Instalando os drivers apropriados
Agora está na hora de instalar nvidia-kernel e nvidia-glx. Já que
nvidia-glx depende de nvidia-kernel, instalar nvidia-glx é
o suficiente.
Listagem de código 2.7: Instalando os módulos da nVidia |
# emerge nvidia-glx
|
Importante:
Cada vez que você compilar um novo
kernel ou recompilar o atual, você precisa rodar emerge
nvidia-kernel para reinstalar os módulos da nVidia. nvidia-glx não é
afetado por uma mudança de kernel e não precisa nem mesmo ser reconstruído
quando você recompilar/atualizar o X.
|
Quando a instalação terminar, rode modprobe nvidia para carregar o módulo
do kernel na memória.
Listagem de código 2.8: Carregando o módulo do kernel |
# modprobe nvidia
|
Para evitar ter que carregar o módulo manualmente a cada inicialização, você
provavelmente quer que isto seja feito cada vez que você carregar seu sistema,
portanto edite o /etc/modules.autoload.d/kernel-2.6 (ou
kernel-2.4, dependendo de que versão de kernel você usar) e
adicione nvidia. Não se esqueça de rodar modules-update depois
disso.
Listagem de código 2.9: Rodando modules-update |
# modules-update
|
Configurando o servidor de X
Uma vez que os drivers apropriados forem instalados você precisa configurar seu
servidor de X (XFree86 ou Xorg) para usar o driver nvidia ao invés do
driver padrão nv.
Abra o /etc/X11/xorg.conf (ou o /etc/X11/XF86Config se
você ainda usar o local de configuração antigo do arquivo)
com seu editor favorito (como o nano ou o vim) e vá para seção
Device. Nesta seção, mude a linha Driver:
Listagem de código 2.10: Mudando de nv para nvidia na configuração do servidor de X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
VideoRam 65536
EndSection
|
Então vá para seção Module e certifique-se que o módulo glx seja
carregado enquanto o dri não seja:
Listagem de código 2.11: Atualizando a seção Module |
Section "Module"
# Load "dri"
Load "glx"
EndSection
|
A seguir, na seção Screen, certifique-se de que a diretiva
DefaultDepth está configurada em 16 ou 24, ou que você só tenha subseções
de Display com ajustes de Depth de 16 ou 24. Sem isso, as
extensões de nvidia-glx não irão iniciar.
Listagem de código 2.12: Atualizando a seção Screen |
Section "Screen"
DefaultDepth 16
Subsection "Display"
EndSection
|
Rode opengl-update para que o servidor de X use as bibliotecas do nVidia
GLX:
Listagem de código 2.13: Rodando opengl-update |
# opengl-update nvidia
|
Adicionando seus usuários ao grupo video
Você tem que adicionar seu usuário ao grupo video para ele poder acessar
os arquivos de dispositivo da nvidia:
Listagem de código 2.14: Adicionando seu usuário ao grupo video |
# gpasswd -a youruser video
|
Isto pode não ser totalmente necessário se você não estiver usando udev,
mas não faz mal também e deixa seu sistema pronto para o futuro :)
Testando sua placa
Para testar sua placa da nVidia, inicie o X e rode o comando
glxinfo | grep direct. Ele deve dizer que o direct rendering está
ativado:
Listagem de código 2.15: Verificando o estado do direct rendering |
$ glxinfo | grep direct
direct rendering: Yes
|
Para monitorar suas FPS, rode glxgears.
Ativando suporte a nvidia
Algumas ferramentas, como o mplayer e xine-lib, usam uma variável
de USE local chamada "nvidia" que ativa suporte a XvMCNVIDIA, útil na hora de
assistir filmes de alta resolução. Adicione "nvidia" em sua variável de USE em
/etc/make.conf ou adicione a variável de USE para
media-video/mplayer e/ou media-libs/xine-lib no
/etc/portage/package.use.
Então, rode emerge -uD --newuse world para reconstruir as aplicações que
irão tirar proveito da mudança de variável de USE.
Usando a ferramenta NVidia Settings
Desde que a NVidia lançou a versão 1.0.6106, ela também oferece uma ferramenta
de ajustes. Esta ferramenta permite mudar ajustes gráficos sem reiniciar o
servidor de X está disponível através do Portage como
media-video/nvidia-settings.
3.
Resolução de problemas
Fazendo 2D funcionar com máquinas com 4Gb de memória ou mais
Se você tiver problemas com a aceleração 2D da nVidia é provável que você não
consiga configurar um alcance de write-combining com o MTRR. Para verificar,
veja o conteúdo de /proc/mtrr:
Listagem de código 3.1: Verificando se você tem write-combining ativado |
# cat /proc/mtrr
|
Cada linha deve conter "write-back" ou "write-combining". Se você vir uma linha
com "uncachable" nela, você precisa mudar um ajuste da BIOS para consertar o
problema.
Reinicie e entre na BIOS, então encontre os ajustes de MTRR (provavelmente em
"CPU Settings"). Mude o ajuste de "continuous" para "discrete" e inicie o Linux
novamente. Você verá que não há mais entradas "uncachable" e a aceleração 2D
agora funciona sem problemas.
Eu recebo avisos sobre tamanhos de stack de 4k sem suporte
Os pacotes da nvidia-kernel mais antigos que o 1.0.6106 só suportam
kernéis usando um stack de 4K. Kernéis mais recentes (2.6.6 e mais novos) têm
suporte para stacks de 4K também. Não selecione stacks de 4K na sua configuração
do kernel se você estiver usando um desses pacotes do nvidia-kernel.
Você pode encontrar essa opção na seção Kernel Hacking.
Quando eu tento carregar o módulo de kernel eu recebo "no such device"
Isto normalmente acontece quando você não tem uma placa de vídeo compatível.
Certifique-se que você tem uma placa gráfica com chip da nVidia (você pode
verificar isso usando lspci).
Se você tem certeza de que tem uma placa de nVidia, verifique sua BIOS e veja
se a diretiva Assign IRQ to VGA está configurada.
Eu obtenho "no screens found" e os registros dizem "Failed to initialize the
NVIDIA kernel module!"
Você provavelmente está sem os arquivos de dispositivo
/dev/nvidia*. Crie-os usando NVmakedevices.sh:
Listagem de código 3.2: Criando os dispositivos de nódulo de nvidia |
# /sbin/NVmakedevices.sh
|
4.
Configuração avançada
Documentação
O pacote de driver da nVidia também vem com documentação completa. É instalada
em /usr/share/doc e pode ser vista com o seguinte comando:
Listagem de código 4.1: Vendo a documentaçao da NVIDIA |
# less /usr/share/doc/nvidia-glx-*/README.txt.gz
|
Parâmetros de módulo do kernel
O módulo de kernel nvidia aceita vários parâmetros (opções) que você pode
usar para ajustar o comportamento do driver. A maior parte deles é mencionada na
documentação. Para adicionar ou mudar os valores destes parâmetros, edite o
arquivo /etc/modules.d/nvidia. Lembre-se de rodar modules-update
depois de modificar o arquivo, e tenha em mente que você precisará recarregar o
módulo nvidia antes dos novos ajustes tomarem efeito.
Listagem de código 4.2: Ajustando opções da nvidia |
# nano -w /etc/modules.d/nvidia
# modules-update
# modprobe -r nvidia
# modprobe nvidia
|
Configuração avançada do X
O layer de GLX também tem uma plétora de opções que podem ser configuradas. Elas
controlam a configuração da saída de TV, displays duplos, detecção de freqüência
de monitor, etc... Novamente, as opções disponíveis são detalhadas na
documentação.
Se você desejar usar qualquer uma dessas opções, você precisa listá-las nas
seções Device relevante de seu arquivo de configuração do X (normalmente
/etc/X11/xorg.conf). Por exemplo, suponha que eu queira desativar o logo
de splash:
Listagem de código 4.3: Configuração avançada da nvidia para a configuração do X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection
|
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|