Installer les pilotes nVidia privateur
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
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:
- 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.