NVIDIA
De Wiki do Arch Linux Brasil
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
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
- [README da NVIDIA] (mais recente)
- [do Compiz-Fusion]
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:
- http://wiki.archlinux.org/index.php/ABS
- http://wiki.archlinux.org/index.php/Makepkg
- http://wiki.archlinux.org/index.php/The_Arch_package_making_HOW-TO_-_with_guidelines.
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