Gentoo Logo

Aviso : Este documento não é válido e não é mais mantido.


Guia de nVidia do Gentoo Linux

Conteúdo:

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
(Verifique que linux aponta para o diretório correto)
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

(Edite /etc/modules.d/nvidia em seu editor favorito)
# nano -w /etc/modules.d/nvidia
(Atualizar informação de módulo)
# modules-update
(Descarregar o módulo nvidia...)
# modprobe -r nvidia
(...e carregá-lo novamente)
# 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


Imprimir

Atualizado 17 de fevereiro de 2006

A versão original desta tradução não é mais mantida

Resumo: Muitos usuários de Gentoo têm um chipset da nVidia em seu sistema. A nVidia oferece drivers específicos para Linux para melhorar a performance de sua placa. Este guia informa como instalar e configurar esses drivers.

Sven Vermeulen
Autor

M Curtis Napier
Editor

Joshua Saddler
Editor

Marcelo Góes
Tradutor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.