Arch Linux

 

NVIDIA

De Wiki do Arch Linux Brasil

Tabela de conteúdo

Como instalar os drivers Nvidia com o pacman

Informação do mantenedor do pacote, tpowa

Este pacote é para aqueles que instalaram o kernel padrão do Arch! Eu só testo com o kernel 2.6 e xorg.

NOTA: não esquecemos as pessoas que estão usando o kernel -beyond. Verifique o próximo parágrafo.

Usuários de outros kernels: você precisa instalar o pacote nvidia para cada kernel especifico.

Instalando os drivers

Você precisa usar o repositório extra, então acrescente-o no pacman.conf. Saia do servidor X Window se você estiver nele, caso contrário, o pacman não poderá concluir a instalação e o driver não funcionará. Como root, faça:

pacman -Sy nvidia (para placas mais novas)
pacman -Sy nvidia-173xx ou
pacman -Sy nvidia-96xx (para placas mais antigas)

Para usuários do kernel beyond:

pacman -Sy nvidia-beyond
pacman -Sy nvidia-173xx-beyond ou
pacman -Sy nvidia-96xx-beyond (para placas antigas)

Se você usa os kernels -ck, -suspend2 ou -mm, adapte as linhas acima usando os parâmetros apropriados.

Configurando o servidor X

Edite o arquivo /etc/X11/XF86Config ou /etc/X11/xorg.conf. Desabilite as opções GLcore e DRI na seção modules, colocando um # no início da linha.

Adicione, ainda, à sessão modules:

Load "glx"

Assegure-se de que você não tem a linha

Load "type1"

nesta mesma sessão, já que as versões recentes do servidor xorg não incluem o módulo para fontes type1 (foi completamente substituído pelo freetype).

Desabilite a sessão DRI completamente:

#Section "DRI"
# Mode 0666
#EndSection

Na Seção "Device" onde tem as informações da placa de video, altere Driver "nv" ou Driver "vesa" para Driver "nvidia". Se existir, desabilite a opção Chipset (apenas necessária no driver nv).

Isto é o suficiente para a configuração básica. Se você precisa de mais opções de configuração, dê uma olhada em /usr/share/doc/nvidia/README.

Você também pode executar:

nvidia-xconfig

Habilitando composição no Xorg

Acesso a página wiki sobre [[1]] para obter instruções detalhadas.

Modificando o arquivo rc.conf do Arch

Arch Linux Brasil
Não é mais necessários adicionar 'nvidia' à MODULES, se usar udev.

Problemas que podem ocorrer

Específicos do driver nvidia

Xorg7: por favor, remova seu diretório antigo /usr/X11R6. Ele pode causar problemas durante a instalação. Também assegure-se que você tenha instalado pkgconfig. O instalador NVIDIA usa o pkgconfig para determinar onde os componentes modulares do Xorg estão instalados.

Se você experimentar uma baixa performance 3D, dê uma olhada em /usr/lib/libGL.so.1, /usr/lib/libGL.so, /usr/lib/libGLcore.so.1. Talvez elas estejam linkadas erroneamente à biblioteca mesa ou algo do tipo. Tente reinstalar com pacman -S nvidia.

Quando você obtiver esta mensagem ao tentar iniciar uma aplicação openGL (por exemplo, enemy-territory ou glxgears):

Error: Could not open /dev/nvidiactl because the permissions are too restrictive. Please see the FREQUENTLY ASKED QUESTIONS section of /usr/share/doc/NVIDIA_GLX-1.0/README for steps to correct.

ou, em português:

Erro: não consegui abrir /dev/nvidiactl porque as permissões estão muito restritivas. Por favor, leia a sessão PERGUNTAS FREQUENTEMENTE FEITAS em /usr/share/doc/NVIDIA_GLX-1.0/README para uma sequência de passos corretivos.

Adicione seu usuário ao grupo video usando

gpasswd -a seuusuario video

Não se esqueça de deslogar e logar novamente

Específicos do Arch

Atualização do GCC: você precisa compilar o módulo com o compilador que foi usado para o kernel, senão não funcionará. Um simples pacman -S nvidia deve servir, ou então esperar um novo kernel e ficar om o kernel antigo e o gcc.

Atualização do kernel: vão exigir uma reinstalação do driver. Uma alternativa está [[2]]:

Ferramenta de configuração do driver

A nova ferramenta de configuração dos drivers nvidia está incluída, chama-se 'nvidia-settings'. Você não precisa usá-la, é apenas um adicional.

Para mais informações sobre o uso, consulte o seguinte arquivo: /usr/share/doc/NVIDIA_GLX-1.0/nvidia-settings-user-guide.txt

Por favor, instale a biblioteca gtk2 com "pacman -S gtk2" para usar esta ferramenta.

NOTA: Se você tiver problemas, como crashes do servidor X, enquanto estiver rodando a ferramenta, você precisa deletar o arquivo .nvidia-settings-rc do seu diretório home.

Assistente nvidia-settings: Você pode querer aplicar as configurações escolhidas usando nvidia-settings ao iniciar o sistema. Primeiro, execute nvidia-settings ao menos uma vez para que as configurações sejam armazenadas em ~/.nvidia-settings-rc. Então adicione o seguinte ao método de autoinicialização do seu ambiente:

nvidia-settings --load-config-only

Problemas conhecidos

Se você tiver problemas com travamentos, tente mudar a opção RenderAccel "true" para "false".

Se o instalador nvidia estiver reclamando sobre versões diferentes do gcc entre a atual e a usada pelo kernel, então veja como instalar da forma convencional, mas lembre-se de executar

export IGNORE_CC_MISMATCH=1

Se você tem comentários sobre o pacote, por favor, envie-os aqui: http://bbs.archlinux.org/viewtopic.php?t=10692. Se você tem um problema com os drivers, consulte o fórum da nvidia: http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14. Para um registro das alterações por favor consulte http://www.nvidia.com/object/linux_display_ia32_1.0-8762.html.

Nota: por favor, não altere a parte acima sem me avisar.

Performance ruim após instalar o novo driver

Se você estiver com uma performance muito lenta em comparação com o driver anterior, primeiro verifique se você tem Direct Rendering ativo. Você pode fazê-lo com:

glxinfo | grep direct

Se você receber: direct rendering: No, então esse é o seu problema. Após isso, verifique se você tem as mesmas versões de glx para o cliente e para o servidor executando isto:

glxinfo | egrep "glx (vendor|version)"

E se você ver fabricantes ou versões diferentes para o cliente e para o servidor, execute isto:

ln -fs /usr/lib/libGL.so.$VER /usr/X11R6/lib/libGL.so
ln -fs /usr/lib/libGL.so.$VER /usr/X11R6/lib/libGL.so.1
ln -fs /usr/lib/libGL.so.$VER /usr/lib/libGL.so.1.2

onde $VER é a versão do pacote nvidia que você está utilizando. Você pode descobrir a versão com o nvidia-settings.

É isso. Agora reinicie seu XServer e você deve ter uma aceleração normal.

Ajustando o driver NVIDIA

Abra /etc/X11/xorg.conf com seu editor preferido e tente as seguintes opções para melhorar a performance. Nem todas elas podem funcionar em seu sistema, experimente-as com cuidado e sempre tire cópias de seu arquivo de configuração.

Desativar o logotipo NVIDIA Graphics na inicialização

Na sessão Device, adicione a opção "NoLogo":

Option "NoLogo" "true"

Ativar aceleração de hardware

Na sessão Device, adicione a opção RenderAccel:

Option "RenderAccel" "true"

Nota: esta opção está ativada por padrão a partir da versão 9746.

Sobrepor a detecção do monitor

A opção "ConnectedMonitor" na sessão Device permite sobrepor a detecção de monitor quando o servidor X inicia. Isto pode economizar alguns bons segundos na inicialização. As opções isponíveis são: "CRT" (cathode ray tube), "DFP" (digital flat panel) ou "TV" (television).

A seguinte linha foeça o driver NVIDIA a usar um monitor DFP:

Option "ConnectedMonitor" "DFP"

Nota:Utiliza "CRT' para todos os conectores VGA de 15 pinos (mesmo que você possua um monitor lcd ou plasma). Utilize "DFP" apenas para os monitores com conexões digitais DVI.

Ativar o buffer triplo

Ative o uso de um buffer triplo adicionando na sessão Device a opção "TripleBuffer":

Option "TripleBuffer" "true"

Use esta opção apenas se sua placa tiver muita memória (128mb ou mais) e juntamente com "Sync to VBlank". Você pode ativar a sincronização para vblank com o nvidia-settings.

Ativar o BackingStore

Esta opção é usada para ativar o suporte a backing store do servidor, um mecanismo pelo qual os dados dos pixels de regiões de janelas ocultas são lembrados pelo servidor, aliviando assim a necessidade de enviar eventos de exposição aos clientes X quando os dados precisam ser atualizados. BackingStore não é vinculado aos drivers NVIDIA e sim ao servidor X em si. Usuários ATI também se beneficiam desta opção.

Na sessão Device, adicione:

Option "BackingStore" "True"

Usar eventos ao nível de Sistema Operacional

Tirado do arquivo README dos drivers NVIDIA: "Use eventos ao nível do SO para notificar eficientemente o servidor X quando um cliente executou renderização direta em uma janela que precisa ser composta." O que quer que isto signifique, pode ser que melhore a performance. Esta opção é atualmente imcompatível com SLI e modos Multi-GPU.

Na sessão Devices, adicione:

Option "DamageEvents" "True"

Esta opção é ativada por padrão nos drivers mais novos.

Ative economia de energia

...para um planeta mais verde (não necessariamente relacionado ao driver NVIDIA). Na sessão Monitor, adicione:

Option "DPMS" "True"

Forçar o nível de performance Powermizer (para laptops)

Adicione o seguinte à sessão Devices:

#force a opção Powermizer o tempo todo
# level 0x1 = maior
# level 0x2 = médio
# level 0x3 = menor
Option	"RegistryDwords"	"PowerMizerLevel=0x3"
Option	"RegistryDwords"	"PowerMizerLevel=0x3"

Deixe o GPU ajustar seu próprio nível de desempenho (baseado na temperatura)

No seu xorg.conf, adicione o seguinte à seção “Device”

 Option "RegistryDwords" "PerfLevelSrc=0x3333"

Desabilitar Interrupçõs vblank da inutilização (para Laptops)

Ao executar a detecção de interrupção com o utilitario powertop, vê-se que o Driver da nvidia gerará uma interrupção para cada vblank. para Desabilitar, vá na Seção "Device" e acresente:

 Option         "OnDemandVBlankInterrupts" "True"


Isto reduzirá interrupções por aproximadamente uma ou duas por segundo.


Habilite overclocking através das configurações da nvidia "nvidia-settings"

Para fazer isto basta acresentar na seção "Device":

 Option         "Coolbits" "1"

Isto vai habilitar o overclocking executando o nvidia-settings dentro do X.

Mas lembre-se que overclocking pode danificar seu hardware, e o que você fizer é de responsabilidade sua, então não venha me culpar depois se o seu equipamento parar de funcionar. Devido que o equipamento irá funcionar fora das configurações feitas pelo fabricante.

Leitura complementar

Usando a saída de TV da sua placa

Um bom artigo sobre o assunto pode ser visto em (inglês):

http://en.wikibooks.org/wiki/NVidia/TV-OUT

Porque a taxa de atualização não é informada corretamente por utilitários que usam a extensão XRandR (por exemplo, o panei "Preferências de resolução da tela" do GNOME, xrandr -q, etc)?

A extensão XRandR não é atualmente ciente de dispositivos com múltiplas saídas numa janela X única; ele só enxerga a caixa de visualização MetaMode, que pode conter um ou mais modos. Isto significa que se multiplos MetaModes tem a mesma caixa de visualização, XRandR não conseguirá distinguir entre elas.

Para suportar DynamicTwinView, o driver NVIDIA deve fazer com que cada MetaMode pareça único aos olhos do XRandR. Atualmente, o driver NVIDIA consegue isto fazendo a taixa de atualização ser um identificador único.

Você pode usar o nvidia-settings -q RefreshRate para obter a taxa de atualização real em cada dispositivo.

A extensão XRandR está atualmente sendo reprojetada pela comunidade X.org, então a alternativa da taxa de atualização pode ser removida em algum ponto no futuro.

Esta alternativa pode também ser desligada, selecionando a opção "DynamicTwinView" para "false", que vai desabilitar o suporte NV-CONTROL para a manipulação de MegaModes, mas vai fazer com que a taxa de atualização do XRandR e XF86VidMode sejam corretas.

Como instalar o driver NVIDIA com um kernel personalizado

É vantajoso saber como o sistema ABS funciona, com a leitura de outras páginas do wiki antes:

Vamos criar nosso próprio pacote para o pacman rapidamente usando o ABS, que vai montar o pacote para o kernel atual.

Crie um diretório temporário para criarmos nosso novo pacote:

mkdir -p /var/abs/local

Faça uma cópia do diretório do pacote oficial NVIDIA:

cp -r /var/abs/extra/x11/nvidia /var/abs/local

Entre no diretório temporário:

cd /var/abs/local/nvidia

Precisamos editar os arquivos nvidia.install e o PKGBUILD para que eles contenham a versão correta do kernel, para não termos que mover o driver do kernel padrão.

Você pode obter a versão do seu kernel atual com:

uname -r
  • Em nvidia.install, troque a variável KERNEL_VERSION="2.6.xx-ARCH" com a versão do seu kernel, como KERNEL_VERSION="2.6.22.6" ou KERNEL_VERSION="2.6.22-custom", dependendo do que a versãod o seu kernel seja. Faça isto para todas as ocorrências do número da versão neste arquivo.
  • Em PKGBUILD, altere a variável _kernel=2.6.xx-ARCH para o valor correto.
  • Se você tem mais de um kernel coexistindo em paralelo (tal como um kernel personalizado junto com o padrão), altere a variável pkgname=nvidia no PKGBUILD para um identificador único, tal como nvidia-2622 ou nvidia-custom. Isto vai permitir que ambos os kernels usem o módulo nvidia, já que o novo pacote terá um novo nome e não conflitará com o pacote oficial.

Então execute:

makepkg -i -c

Espere a conclusão do processo e ele terá gerado um novo pacote com o driver compilado para o kernel selecionado. Para instalar, digite:

pacman -U nvidia-<versao>-i686-pgg.tar.gz
Ferramentas pessoais
TOOLBOX
LANGUAGES