Instalar drivers nvidia no debian

Novembro 2016


Xorg7 - Instalar drivers nvidia

Neste tutorial nós iremos abordar como utilizar os drivers nVidia na distribuição Debian. Tudo aquilo que vai ser descrito aqui é válido para outras distribuições baseadas no Debian como, por exemplo, a Ubuntu. De toda maneira, vamos reter que o procedimento de instalação é específico. Poderemos visitar a pagina dedicada: https://lists.ubuntu.com/archives/ubuntu-br/2010-April/071209.html

Abordaremos quatro maneiras diferentes de instalar o drive nVidia na Debian.

A) Nós usamos o script específico disponível no site oficial da NVIDIA. É simples de implementar, mas, infelizmente, em cada atualização deve ser repetido;
B) Usando o module-assistant. Isso na minha opinião é a mais limpa. Além disso, evita a preocupação com as atualizações xorg. Será necessário, no entanto, reconstruir o módulo para cada atualização do kernel;
C) Nós usamos envy;
D) Nós construímos o módulo com make-kpkg;

Independentemente do método utilizado, ele vai reconfigurar o servidor gráfico (ou um servidor X, xorg aqui) para carregar o driver da nVidia. Esse procedimento é explicado na última etapa deste tutorial. salientamos que a maioria dos comandos a seguir precisam ser executados como root.




A) Instalação com o script nVidia

Vantagens do método :
- Funciona quase sempre
- Pode-se recuperar tranquilamente os últimos drives.

Inconvenientes do método :
- Somos obrigados a repetir o trabalho para cada máquina.
- O módulo não sendo instalado por um pacote, permite uma instalação mais ou menos sem problemas. Mas em particular, é frequente ter um erro libglx.so, mesmo não sendo fatal.
- É preciso configurar a versão do compilador, passar em modo texto para preparar o módulo, saber parar o modo gráfico.

Download do script

Veja aqui
baixar aqui

Notas:

a) Se você utilizar um núcleo que você compilou manualmente (por exemplo um núcleo baixado www.kernel.org,), verifique se o link simbólico /usr/src/linux se concentra nas fontes do núcleo correspondente.

b) Se você utilizar um núcleo fornecido pelo pacote linux-imagem (este é o caso em geral), pense em instalar os Linux-headers correspondentes:

aptitude install linux-headers-$(uname -r)

Lançamento do script

Comecemos por deixar o script executável :

chmod +x NVIDIA-Linux-x86-1.0-8762-pkg1.run


Em seguida é preciso cortar seu servidor X (substituindo kdm por gdm ou xdm se necessário) :

/etc/init.d/kdm stop


É preciso em seguida se certificar que o compilador padrão édirigido para aquele utilizado como padrão. Este não é padrão, então não é o caso (as linux-imagens são compiladas com gcc-4.3 e como padrão utiliza-se um gcc-4.4).

export CC=gcc-4.3


Pode-se agora lançar o script :

./NVIDIA-Linux-x86-1.0-8762-pkg1.run

Copia das bibliotecas (obsoleto)

Nota: esta etapa não é mais necessária atualmente. Na época, o script não considerava esta mudança da arborescência. Com um script nvidia recente pode-se então ignorar esta etapa

Até ai nada de muito original, mas o problema é que os drives estão na /usr/X11R6/lib/modules et les libs dans /usr/X11R6/lib/. Falta somente copiar no bom diretório (/usr/lib/xorg) :
cp /usr/X11R6/lib/libXvMCNVIDIA* /usr/lib/xorg   
cp -R /usr/X11R6/lib/modules* /usr/lib/xorg

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

Vantagens do método :
- Pode-se facilmente reutilizar os drives assim gerados para outras Debians utilizando o mesmo kernel.
- A instalação e a desinstalação se fazem muito bem pois tudo é feito através do gerenciador de pacotes

Inconvenientes do método :
- Às vezes o driver proposto pelo módulo-assistente não é muito recente
- Às vezes ele não compila mais.

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

Começa-se por instalar o módulo assistente e por recuperar o pacote nVidia :

aptitude install nvidia-kernel-common module-assistant

Correção dos repositórios

Nota: esta etapa não é necessária atualmente. A priori acrescentar simplesmente os depósitos lenny "contrib" e "non-free" basta para que tudo se passe corretamente. Pode-se então ignorar esta etapa, e voltar se o comando falhar

Neste ponto se tentarmos construir o módulo, vamos tomar provavelmente uma paulada (no lenny). Ele dirá algo parecido com "verifique sw não falte nenhum repositório contrib ou free nas sources.list". Com efeito, para fazer funcionar este pacote no lenny, é preciso recuperar certos pacotes que são disponíveis somente em Debian Sid

Para solucionar o problema vamos previamente ao patcher um pouco/etc/apt/sources.list.
Eis o conteúdo do arquivo que eu utilizo:

deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free   
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

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

## repositório Sid
# prioridades especificadas nas /etc/apt/preferencias.
deb http://ftp.fr.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ sid main contrib non-free


Em seguida corrigimos /etc/apt/preferencias para dizer que pegaremos o pacote somente se não conseguirmos nada com os pacotes lenny (se este arquivo não existir, crie um) :

Package: *   
Pin: release o=Debian,a=testing
Pin-priority: 990

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


Agora recuperemos e apliquemos as atualizações :

aptitude update   
aptitude safe-upgrade

Construção do módulo

Agora começamos a instalação do drive propriamente dito:

module-assistant auto-install nvidia-kernel-source


Esta etapa que necessitaria ser refeita a cada atualização Kernel. Abreviando poderíamos escrever:

m-a a-i nvidia-kernel-source


Podermos aliás recuperar facilmente o .deb gerado no /usr/src para reutilizá-lo em outras máquinas Debian, utilizando uma placa nvidia e a mesma versão de núcleo. Bastará simplesmente instalar o nvidia-common e instalar o pacote gerado com o comando dpkg -i. Este método é igualmente possível com o método (veja D-2), acesse o parágrafo correspondente para ver como fazer.

Verificações

Se tudo estiver bem, o comando módulo-assistente deve terminar corretamente. Podemos daqui para frente verificar se ele se carrega corretamente:

modprobe nvidia   
lsmod | grep nvidia


Para que o módulo seja carregado em cada início, basta acrescentar a linha nvidia nos /etc/módulos, ou com seu editor de texto, ou digitando:

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


Atenção: se os módulos nvidiafb, ritatv e rivafb são carregados, estes podem interferir e impedir o carregamento do módulo.

C) Instalação com envy

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

D) Instalação por make-kpkg

Vantagens: permite fazer com que a debian assuma os drives nvidia instalados, o que evita o esmagamento de certos arquivos atualizado do xorg por exemplo...

Inconvenientes: nunca é sucesso ao fazer funcionar nas atualização dos drives nvidia... : seremos obrigados a passar pela etapa precedente: sh NVidia***.run para uma atualização.

Construção do módulo

Na debian, pode-se igualmente utilizar make-kpkg. Este comando permite construir um pacote Debian que permite ver um módulo como pacote normal. Este procedimento é pertinente se quisermos, depois, implantar o drive nos outros pacotes debians utilizando uma mesma versão do núcleo.

Para tanto:

aptitude install nvidia-kernel-common nvidia-kernel-source   
cd /usr/src/linux
make-kpkg modules_image


Isto cria um pacote nvidia-kernel-<VersionDuNoyau>.deb.

Instalação do pacote

Para instalar :

dpkg -i nvidia-kernel-<VersionDuNoyau>.deb   
aptitude install nvidia-glx


Nota: no momento do carregamento do núcleo, eu aconselho você passar por este último procedimento, que está de acordo com a compilação do jeito da distribuição Debian.

Reconfiguração do servidor X

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

Pode-se utilizar dois métodos:

1) via nvidia-xconfig (approche recommandée)

aptitude install nvidia-xconfig   
dpkg-reconfigure xserver-xorg
nvidia-xconfig


2) manual:

A priori basta trocar neste arquivo a linha

Driver "nv"


por :

Driver "nvidia"


Atualmente, visto que o arquivo /etc/X11/xorg.conf é opcional ou gerado de maneira mais parcial, este procedimento torna-se cada vez menos possível.

Considerar os novos drives

Iniciamos o servidor X, e normalmente tudo fica bem ;-) :

service kdm restart


(Se necessário, substitua kdm (kde) por gdm (gnome) ou xdm).

Observação: este comando volta a lançar :

/etc/init.d/kdm restart

Verificações

Para verificar se tudo está bem, podemos ir no terminal lançado pelo usuário, que abriu a sessão gráfica, com alguns comandos de diagnósticos contidos no pacote mesa-:

aptitude install mesa-utils


Em seguida

glxinfo | grep -i render  
glxgears


O primeiro comando deve dizer "direct rendering: Yes". Atualmente este comando não permite ter a garantia completa que a aceleração do material tem bom desempenho. O segundo comando permite exibir as rodas das engrenagens. Uma aceleração do material correta (entenda uma instalação correta do módulo) deve engendrar uma animação da ordem de alguns milhares de FPS.

Em caso de problema

kdm bloqueia o lançamento da máquina (e unicamente no lançamento)

Pode acontecer que no lançamento da máquina, tudo se carregue corretamente (o módulo nvidia, o servidor X) mas que o a kdm bloqueie. Encontramos esta informação em /var/log/syslog (e tudo parece se passar bem no /var/log/Xorg.0.log).

Para verificar que você esta com este problema, assegure-se depois que o seguinte comando (para lança em root via o atalho ctrl alt f1) lança com sucesso o kdm :

service kdm restart


Este problema parece ser específico de certos modelos de placa nvidia (por exemplo eu tenho o problema com uma GeForce 210m) onde o drive parece demorar muito para se carregar. Neste caso, kdm se diz que o servidor X bloqueou e interrompeu seu carregamento antes que tudo tenha se inicializado. Como padrão kdm espera 15s.

Para remediar o problema basta corrigir /etc/kde4/kdm/kdmrc. Na linha ServerTimeOut coloque 30s (até mais se isto não for suficiente)

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


Nas próximas vezes, o servidor X deverá lançar-se corretamente nos reinícios.

O servidor X X começa a carregar, depois bruscamente tudo se bloqueia

Estamos neste caso quando um ctrl alt supr ou um ctrl alt f1 não respondem. Neste caso pode ser pelo erro Kernel, provocado pelo driver nvidia que congelou a máquina. É preciso, então passar novamente o driver nvidia (veja o parágrafo seguinte), ou utilizar outra versão do driver nvidia, etc...

Este tipo de problema pode acontecer para as placas recentes ou na utilização de drives recentes e ainda não testados.

Como utilizar o drive livre?

Pode-se utilizar os drives nv corrigindo /etc/X11/xorg.conf (substituir nvidia por nv). Atenção, se assim for, deve ter instalado corretamente o pacote t xserver-xorg-video-nv. Pour l'installer :

aptitude install xserver-xorg-video-nv


O servidor X será então lançado com as opções padrão e em particular no drive nv. Outra maneira de proceder (mais ainda) pode-se lançar o comando:

dpkg-reconfigura xserver-xorg


Se o servidor X é recente pode-se também suprimir simplesmente /etc/X11/xorg.conf.

Pouco importa o procedimento retido, é preciso em seguida lançar novamente o servidor X, relançando kdm/gdm ou xdm :

service kdm restart

Links úteis

http://wiki.debian.org/...

http://www.vivaolinux.com.br/artigo/Debian-Lenny-com-Kernel-2.6.28-+-Layer7-+-Firewall

Tradução feita por Ana Spadari

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.