Instalar drivers nvidia no Debian

Novembro 2016


Xorg7 - instalar drivers nvidia

Nesta dica, vamos mostrar como instalar os drivers da NVIDIA no Debian. Tudo o que será dito também é válido para outras distribuições baseadas no Debian, como o Ubuntu. No entanto, para este último, saiba que o procedimento de instalação é específico. Você poderá consultar a seguinte página, dedicada ao assunto:
NVIDIA

Agora, vamos falar das 4 maneiras de instalar o driver nvidia no debian.
A) Utilizando o script disponível no site oficial do nvidia. Sua instalação é bem simples, mas, infelizmente, a cada atualização, é preciso recomeçar tudo de novo...
B) Utilizando o módulo-assistente. Em minha opinião, é o melhor. Além do mais, evita os problemas com as atualizações xorg. Porém, será preciso reconstruir o módulo de cada atualização do kernel
C) Utilizando o envy
D) Construindo o módulo com o make-kpkg

Seja qual for o método utilizado, será preciso reconfigurar o servidor gráfico (ou o servidor X, xorg aqui) para carregar o driver da NVIDIA. Este procedimento é explicado na última etapa desta dica. Não é preciso dizer que, a maioria dos comandos abaixo deve ser feito em modo administrador

A) Instalação com o script nvidia

Vantagens do método:
- trabalha quase o tempo todo
- você pode recuperar facilmente os drivers mais recentes.

Desvantagens do método:
- você tem que repetir o trabalho para cada máquina
- já que o módulo não é instalado por um pacote, a instalação é feita, mais ou menos, corretamente. Em particular, é comum ter um erro libglx.so, que não é fatal.
- é preciso saber como configurar a versão do compilador, alternar para o modo de texto para preparar o módulo, ou seja, parar o modo gráfico.

Download do script

Vá em
e baixe

Observação:

a) Se você usar um kernel que você compilou manualmente (por exemplo, um kernel baixado no www.kernel.org,) verifique se o link/usr/src/ linux indica as fontes do kernel correspondentes.
b) Se você usar um kernel integrado em um pacote linux-imagem (o que normalmente é o caso), pense em instalar os linux-headers correspondentes :
aptitude install linux-headers-'uname -r'

Lançamento do script

Comecemos por tornar o script executável:
chmod +x NVIDIA-Linux-x86-1.0-8762-pkg1.run


A seguir, cortar o seu servidor X (substituir kdm por gdm ou xdm, se for o caso) :
/etc/init.d/kdm stop


Depois, verificar se o compilador padrão aponta para aquele que é usado, por padrão. E não é o caso padrão (os linux-imagens são compilados com gcc-4.1 e, por padrão utiliza-se o gcc-4.3).
export CC=gcc-4.1


Agora nós podemos lançar o script :
./NVIDIA-Linux-x86-1.0-8762-pkg1.run

Cópia das bibliotecas (obsoleto)

Observação: Esta etapa não é mais necessária, hoje em dia. Antes, o script NVIDIA não levava em conta esta mudança de árvore. Com um script nvidia recente podemos ignorar esta etapa.

Até aqui, nada de mais mas, o problema é que os drivers estão no /usr/X11R6/lib/módulos e as bibliotecas na /usr/X11R6/lib/. Basta recopiá-los no diretório correto (/usr/lib/xorg) :
cp /usr/X11R6/lib/libXvMCNVIDIA* /usr/lib/xorg 
cp -R /usr/X11R6/lib/modules* /usr/lib/xorg

B) Instalação com o módulo-assistente

Vantagens do método:
- você pode facilmente reutilizar os drivers gerados por outros debians usando o mesmo kernel.
- a instalação e desinstalação são feitas corretamente porque fazemos tudo através do gerenciador de pacotes

Desvantagens do método:
- às vezes, o driver sugerido pelo módulo-assistante não é muito recente
- às vezes, ele não compila.

Instalação do módulo-assistente e do nvidia-kernel-common

Para começar, instalar o módulo-assistente e recuperar o pacote nvidia :
aptitude install nvidia-kernel-common module-assistant

Correção dos repositórios

Observação: esta etapa não é mais necessária hoje. A princípio, basta adicionar os repositórios Lenny "contrib" e "no-free" o suficiente para que tudo corra bem. Portanto, podemos pular esta etapa e voltar apenas se o comando falhar.

Nesta fase, se tentarmos construir o módulo, vamos nos dar mal (no Lenny). Ele vai dizer algo como "verificar se não estão faltando os repositórios contrib ou free na sources.list". Na verdade, para executar este pacote no Lenny, é preciso recuperar alguns pacotes que estão disponíveis no Debian sid.

Para resolver o problema temos que, em primeiro lugar, dar uma corrigidinha /etc/apt/sources.list. Veja o conteúdo do arquivo que eu utilizo:

deb http://ftp.fr.debian.org/debian/ lenny main contrib no-free 
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib no-free
deb http://security.debian.org/ lenny/updates main contrib no-free
deb-src http://security.debian.org/ lenny/updates main contrib no-free

deb http://www.debian-multimedia.org lenny main contrib no-free
deb-src http://www.debian-multimedia.org lenny main contrib no-free

## Repositórios Sid
# prioridades específicas em /etc/apt/preferências
deb http://ftp.fr.debian.org/debian/ sid main contrib no-free
deb-src http://ftp.fr.debian.org/debian/ sid main contrib no-free


Depois, corrigimos /etc/apt/preferências para indicar que só pegamos os pacotes sid se não estivermos satisfeitos com os pacotes lenny (se o arquivo não exite, criá-lo) :
Package: * 
Pin: release o=Debian,a=testing
Pin-priority: 990

Package: *
Pin: release o=Debian,a=unstable
Pin-priority: 90


Agora, vamos recuperá-lo e aplicar as atualizações:
aptitude update 
aptitude safe-upgrade

Construção do módulo

Começar a instalação do driver propriamente dita:
módulo-assistente auto-install nvidia-kernel-fonte


É esta etapa que deverá ser repetida a cada atualização do kernel. Em suma, também podemos escrever:

m-a a-i nvidia-kernel-source



Aliás, também podemos recuperar o .deb gerado em /usr/src, a fim de reutilizá-lo em outras máquinas debian usando um cartão nvidia e a mesma versão do kernel. Bastará simplesmente instalar o nvidia-comum e instalar o pacote gerado com o comando dpkg-i. Esta abordagem também é possível com a abordagem (ver D-2), consulte o parágrafo correspondente para ver como fazer.

Verificações

Se tudo correr bem, o comando módulo-assistente deve concluir com êxito. Já podemos verificar se ele se carrega corretamente:
modprobe nvidia 
lsmod | grep nvidia


Para que o módulo seja carregado a cada inicialização, adicione a linha nvidia em /etc/módulos, ou com o seu editor de texto favorito, ou digitando:

grep-q ^ nvidia / etc / modules | | echo nvidia >> / etc / modules


Atenção: se os módulos nvidiafb,ritatv e rivafb estiverem carregados, eles podem interferir e impedir o download do módulo nvidia.

C) Instalação automática com o envy

O processo de instalação pode ser feito automaticamente, veja esta dica.

D) Instalação por make-kpkg

Vantagens:
  • permite fazer com que o debian compreenda que temos os drivers instalados, o que impede o esmagamento de certos arquivos para atualizar o xorg, por exemplo ...


Desvantagens:
  • nunca conseguiram fazê-lo funcionar para uma atualização de drivers nvidia; tenho que passar pela etapa anterior: sh NVidia***.run para uma atualização..

Construção do módulo

No Debian, você também pode aproveitar a oportunidade para usar o make-kpkg. Com este comando você pode construir um pacote Debian para implantar um módulo como um pacote normal. Esta abordagem é relevante quando se quer implantar o driver em outros debians, usando a mesma versão do kernel.

Para isto:
aptitude install nvidia-kernel-common nvidia-kernel-source 
cd /usr/src/linux
make-kpkg módulos_imagem


Isto cria um pacote nvidia-kernel-<VersãoDoKernel>.deb

Instalação do pacote

Para instalá-lo:

dpkg -i nvidia-kernel-<VersãoDoKernel>.deb  
aptitude install nvidia-glx</cod>


Observação : Em um novo kernel, aconselho este último método, mais rápido e de acordo com a compilação debian.


==Reconfiguração do servidor X==



===Correção do arquivo de configuração /etc/X11/xorg.conf===

Podemos utilizar dois métodos :

1) através do nvidia-xconfig (abordagem recomendada)
<code>aptitude install nvidia-xconfig
dpkg-reconfigure xserver-xorg
nvidia-xconfig


2) manualmente : em princípio, basta mudar a linha, neste arquivo
Driver "nv"


por :
Driver "nvidia"


Hoje em dia, como o arquivo /etc/X11/xorg.conf é opcional ou gerado mais parcialmente, esta abordagem torna-se cada vez menos possível.

Validação de novos drivers

Reinicializar o servidor X e, normalmente, tudo bem!
/etc/init.d/kdm restart

(Caso seja preciso, substituir kdm por gdm (gnome) ou xdm).

Verificações

Para verificar se tudo está bem, digitar, em um terminal iniciado pelo usuário que abriu a sessão gráfica, alguns comandos de diagnóstico contidos no pacote mesa-utils:

aptitude install mesa-utils


Depois:



O primeiro comando deve, principalmente, dizer "direct rendering: Yes". Hoje em dia, este comando não  garante completamente que a aceleração do hardware seja eficiente. O segundo comando, permte exibir a engrenagem em funcionamento. Uma aceleração de hardware correta (ou seja, uma instalação correta do módulo) deve gerar uma animação de alguns ilhares de FPS.
 
Observação: Em caso de problema, podemos usar os drivers nv corrigindo /etc/X11/xorg.conf (substituir nvidia por nv). Certifique-se de que o pacote xserver-xorg-video-nv foi bem instalado. 


==Em caso de problemas==



=== kdm bloqueia a execução da máquina (apenas a execução)===

Às vezes, durante a inicialização da máquina, tudo é carregado corretamente (o módulo nvidia, o servidor X), mas o kdm trava. Encontramos essa informação no /var/log/syslog (e tudo parece estar correndo bem no/var/log/Xorg.0.log).

Para verificar se você tem esse problema, certifique-se depois que, o seguinte comando (como iniciar em root através do atalho Ctrl+ Alt+ F1) inicia o kdm com sucesso:

<code>service kdm restart


Este problema parece ser específico a determinados modelos de cartão nvidia (por exemplo, tenho um problema com a GeForce 210m) onde o driver leva um tempo considerável para carregar. Neste caso, o kdm acha que o servidor X travou e interrompe o seu carregamento, antes que tudo seja inicializado. Por padrão, o Kdm espera 15s.

Para remediar o problema, basta corrigir /etc/kde4/kdm/kdmrc. Na linha ServerTimeout colocar 30s (ou ais, se não for o suficiente).

... 
# How long to wait for a local X-server to come up.
# Default is 15
ServeurTimeOut=30
...


Nas próximas inicializações, o servidor X deverá funcionar corretamente.

O servidor X começa a se carregar e, de repente, tudo trava

Estamos neste caso, mesmo quando um Ctrl Alt Del ou um Ctrl Alt f1 não responder. Neste caso, é bem provável que um erro kernel decorrente do driver nvidia tenha congelado a máquina. Assim, será preciso, ou voltar para o driver nv (ver próximo parágrafo), ou usar outra versão do nvidia, etc...

Este tipo de problema pode ocorrer em placas bem recentes ou durante o uso de drivers muito recentes, mas ainda não testados.

Como usar o driver livre nv em vez do nvidia?

Ainda podemos usar os drivers nv, corrigindo /etc/X11/xorg.conf (substituir nvidia por nv). Atenção, bem instalar o pacote xserver-xorg-video-nv. Para instalá-lo:
aptitude install xserver-xorg-video-nv


O servidor X será iniciado com as opções padrão e, em particular, o driver nv. Outra maneira de proceder (mais clara) é executar o comando:
dpkg-reconfigure xserver-xorg


Se o servidor X é novo, basta deletar o /etc/X11/xorg.conf.

Seja qual for a abordagem, ele irá reiniciar o servidor X reiniciando o kdm/gdm ou o xdm:
service kdm restart

Links úteis

Debian.org
tutorial debian nvidia
Instalando um nVidia no Debian


Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Instalar drivers nvidia no Debian »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.