Installer les pilotes nVidia privateur

De wiki.debian-fr

I - Présentation

Avant tout sur Debian, il y a deux types de cartes nVidia :

  • Les vieilles -> 'legacy'
  • Les nouvelles

(Chez nos cousins d'Ubuntu, ils ont préféré rediviser les nouvelles avec une nouvelle catégorie, appellée, euh ... 'new' -> nvidia-new-kernel-source, nvidia-new-glx)

On part du principe que vous n'avez jamais rien compilé ou que l'installation est nouvelle. Si ce n'est pas le cas, assurez-vous que votre système est à jour, surtout du point de vue des noyaux. Après vérification, si pour vous tout est Ok, passez à l'étape II sinon :

$ su
# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Il est absolument primordial que ces étapes ne génèrent aucune erreur. Recommencez plusieurs fois en incluant la directive "-f" (force) si nécessaire.

Vous pourriez avoir également besoin de ce tuto : [1]

II - Modification des dépôts

Les pilotes sont bien des paquets 'debian' mais ils n'ont pas grand chose de libre, bien que gratuits, alors il vous faut ajouter, si ce n'est déjà fait, les clauses contrib et non-free dans votre source.list :

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

Bon ça c'est pour les gens 'stable'. Si vous êtes moins conservateur, vous êtes surement en SID. La version intermédiaire testing (à l'écriture de ce tuto nommée Squeeze) peut parfois présenter des manques dans ses dépôts. Pour vérifier que votre sources.list vous permet d'y accéder tapez :

  $ apt-cache policy nvidia-kernel-source

Qui devrait vous donner quelque chose comme ça :

  nvidia-kernel-source:
    Installé : 180.29-1
    Candidat : 180.29-1
   Table de version :
   *** 180.29-1 0
          970 http://ftp.fr.debian.org sid/non-free Packages
          100 /var/lib/dpkg/status
       173.14.09-5 0
          500 http://ftp.fr.debian.org lenny/non-free Packages
          900 http://ftp.fr.debian.org squeeze/non-free Packages

Pour éviter d'avoir le moindre problème, il est extrêmement conseillé d'avoir un sources.list permettant de se sortir de n'importe quelle dépendance. Pour cela, inspirez-vous (copier/coller) de l'excellent tuto de MattoTop [2]

N'oubliez pas de mettre à jour la liste de vos paquets :

  # apt-get update

ATTENTION Si votre carte est basée sur un chipset très récent (8800 par exemple) le pilote Etch (Lenny le peut-il maintenant ?) ne pourra supporter votre carte graphique. Je vous conseille donc dans ce cas de faire évoluer votre distribution en SID pour pouvoir profiter pleinement de votre carte graphique.

III - Détection de votre carte graphique

La partie la plus délicate : quel est mon pilote de carte graphique ?

  $ lspci | grep -i vga

mon résultat, sur mon super portable Siemens :

  ...
  03:00.0 VGA compatible controller: nVidia Corporation NV41.8 [GeForce Go 6800] (rev a2)
  ...

dans les [] vous avez le type de carte. Allez sur cette page [3] Si vous y trouvez votre carte ... tant pis vous aurez l'accélération graphique, mais pas les supers trucs de compiz, votre carte est trop vieille, mais elle peut encore servir, n'est-ce pas Ricardo ?

Si vous voyez quelque chose comme unknown device, vous devrez mettre à jour vos identifiants :

  # update-pciids

et dans ce cas recommencez la partie III

ATTENTION, Si vous avez déjà essayé d'installer les pilotes nvidia, sur le site officiel, avec l'application ".run", veuillez effectuer les opérations suivantes : (sinon passer en IV directement)

Je vous conseille d'imprimer ce tuto, avant de passer à la suite. Nous devons arrêter le serveur graphique (xorg) donc adieu souris, copier/coller ...

Se rendre dans une console (Ctrl + Alt + F1), se logger en tant qu'administrateur (utilisateur : root, mot de passe administrateur, pour les Ubunteux, loggez vous avec votre compte utilisateur normal, puis tapez "$ sudo su")

Nous allons arrêter l'interface graphique en stoppant le gestionnaire de session graphique :

  # service $(basename $(cat /etc/X11/default-display-manager)) stop

Puis :

  # nvidia-installer --uninstall
  # modprobe -r nvidia

Là, votre ancien driver *.run tout beurk devrait être désinstallé.

Maintenant, il faut effacer toute mention de ces pilotes :

  # find / -name "*nvidia*" -delete

IV - Compilation du module - Patch du noyau

Dans le tuto qui suit, pour une carte legacy, remplacez les références à nvidia par les pilotes nvidia-legacy, donc nvidia-kernel-legacy-source, nvidia-glx-legacy

Remarque : Les bons informaticiens, sont en général des gens très intelligents, logiques, et disciplinés mais ils n'en restent pas moins feignants ! Alors ils ont cru bon, pour que les commandes ne soient pas trop évidentes à lire pour un néophyte, de permettre l'utilisation d'abréviation, un peu comme un langage SMS. Dans les commandes que vous allez découvrir maintenant, vous verrez "m-a" que vous pourriez donc utiliser également littéralement avec "module-assistant", ainsi que "a-i" en "auto-install". Mais comprenez bien que l'abréviation a la même signification.

  $ su 
  # apt-get install module-assistant
  # m-a prepare
  # m-a clean nvidia-kernel

Si vous êtes en testing mais que vous désirez utiliser le pilote de SID alors il vous faudra le télécharger avant que module-assistant ne le fasse :

  # apt-get install -t unstable nvidia-kernel-source

La suite est la même :

  # m-a a-i -i nvidia-kernel-source
  # apt-get install nvidia-glx

V - Paramétrage de xorg.conf

Editez votre xorg.conf

  # nano /etc/X11/xorg.conf

Bon si vous préférez vi, vim, emac, et autres tortures, vous pouvez. Dans votre fichier xorg.conf, vous trouverez une ligne comme celle-la : (Si vous ne trouvez pas cette section, alors ajoutez la !)

  Section "Device"
      Identifier     "NVIDIA Corporation NV41.8 [GeForce Go 6800]"
      Driver         "nv"
  EndSection

Tout ce qui est noté entre "" est suceptible d'être différent, puisque cela dépend de votre ordinateur.

Remplacez :

  Driver         "nv"

Par :

  Driver         "nvidia"

Enregistrez votre fichier (Ctrl+O ou Ctrl+X pour enregistrer en quittant) avec Nano

Relancez votre serveur graphique :

  # service $(basename $(cat /etc/X11/default-display-manager)) start

Et vous pouvez accéder au gestionnaire de connexion en passant dans la console N° 7 par Alt+F7

Ou alors redémarrez la machine, si vous n'utilisez pas de gestionnaire de connexion graphique :

  # reboot

VI - Conclusion

Les noyaux n'étant pas "patchés" lors du téléchargement, vous serez dans l'obligation de recommencer ces manipulations à chaque changement de celui-ci.

nvidia-glx ne se met pas à jour tant que le module nvidia n'est pas recompilé avec les nouvelles sources. Ça évite pas mal de problèmes, mais si on voit :

  Les paquets nvidia-glx, nvidia-glx-dev ont été conservés,

lors d'un apt-get upgrade, c'est qu'il faut recompiler l'ensemble pour profiter d'une mise à jour des pilotes nvidia, donc reprenez le tuto IV.

ANNEXE 1

Et puis si après tout ça ... Cela ne fonctionne toujours pas ! et bien il y a peut être un conflit avec une installation antérieure comme nous l'a démontré Shenga. Donc voila une suite de commande à faire dans un terminal :

  $ su
  # rm -rf /usr/src/modules/nvidia-kernel/
  # cd /usr/src
  # tar xjvf nvidia-kernel.tar.bz2
  # cd modules/nvidia-kernel/debian
  # cp control.template control
  # m-a a-i -i nvidia-kernel-source
  # apt-get install nvidia-glx

Retournez à la partie V

Debianhadic

ANNEXE 2 (Refaire des paquets .deb)

NVIDIA a fait une mise à jour des drivers il y a 5 minutes. Vous êtes raisonnable (vous avez attendu 5 minutes) mais tout de même, vous voulez ces drivers même si cela peut ne pas marcher (si, ça n'est pas infaillible). Vous savez donc que ça peut tout casser mais tant pis, vous les voulez quand même et qui plus est sous forme de paquets (caprice ?). Bon, c'est faisable à partir des .run. La démarche est la suivante:


Il vous faut installer les scripts de développement (paquet devscripts) et procéder comme suit:


  • Chargez les sources des paquets nvidia. Il faut bien évidemment une entrée deb-src dans le fichier sources.list
    Sous root:
# apt-get build-dep nvidia-glx


et sous votre login

$ apt-get source nvidia-glx



Un répertoire nvidia-graphics-drivers-??? est créé (ici c'est nvidia-graphics-drivers-173.14.09)

  • Chargez les .run correspondants. Pour amd64 il vous faut le .run i386 et amd64. Pour le i386, seul le .run 386 est nécessaire. Dans le doute, vous pouvez mettre les 2 si vous êtes inquiet. Dans notre exemple, ce sont les fichiers

NVIDIA-Linux-x86-190.53-pkg1.run

et

NVIDIA-Linux-x86_64-190.53-pkg2.run


Mettez ces fichiers dans le répertoire nvidia-graphics-drivers-173.14.09 et donnez leur les droits à l'éxécution (chmod +x)

  • Allez dans ce répertoire et mettez la version à jour:

$ dch -v 190.53



Le fichier changelog est ouvert en édition, tapez vos motivations et fermez le fichier. Le répertoire a changé de nom, faites un

cd ../nvidia-graphics-drivers-190.53
  • Il faut tout d'abord changer toutes les références de 173.14.09 en 190.53 et les appels aux fichiers .run
    • Editez le fichier debian/upstream_info (avec emacs bien sûr) et modifiez en conséquence les valeurs RELEASE et NEXTVER (en 190.53 et 190.54)
    • Dans ce même fichier, changez les extensions pkg0 des fichiers NVIDIA-???.run et des répertoires correspondants. Dans notre exemple, cela revient à remplacer le pkg0 en pkg1. Attention, il y a plusieurs références, faites une recherche sur pkg dans ce fichier.
    • Soyez courageux, virez tous les patches : vous avez décidé d'installer le système de NVIDIA. Les patches peuvent être inadaptés:

$ rm -R patches*



(Si à ce stade vous avez effacé votre disque dur parce que vous n'étiez pas dans le bon niveau et que vous travailliez en root, positivez : vous venez d'apprendre pourquoi on ne travaille jamais en root).

  • Effacez les vieux .run inutiles

$ cd ..
$ rm NVIDIA-Linux-x86-173.14.09-pkg0.run NVIDIA-Linux-x86_64-173.14.09-pkg2.run



  • Lâchez-vous enfin en lançant la construction des paquets:

$ fakeroot dpkg-buildpackage -us -uc



  • Regardez dans le répertoire au-dessus, vous avez :
    • Les paquets:
nvidia-glx-ia32_190.53_amd64.deb
nvidia-glx-dev_190.53_amd64.deb
nvidia-glx_190.53_amd64.deb
nvidia-kernel-source_190.53_amd64.deb
    • Les sources:
nvidia-graphics-drivers_190.53_amd64.changes
nvidia-graphics-drivers_190.53.dsc
nvidia-graphics-drivers_190.53.tar.gz

Les premiers sont les librairies et drivers xorg (les glx) ainsi que les sources pour faire le module nvidia avec module assistant, les seconds sont les sources de vos paquets. En cas de problème, vous pouvez les rectifier.

François Boisson