Compilation du driver propriétaire nVidia avec les sources fournies par Debian.
On peut tout d’abord se demander s’il est judicieux d’utiliser un driver propriétaire sur un système qui se veut entièrement libre (voir le contrat social de Debian ). La réponse dépend bien évidemment de vous, ce driver permettant essentiellement l’accélération graphique, l’utilisation de la sortie télé et la configuration de deux écrans.
Nous allons donc compiler et installer les drivers propriétaires nVidia fournis par Debian.
Nous détaillerons deux méthodes selon que :
NOTES sur les commandes shell :
l'indicateur "#" signifie que le commande est à exécuter sous root
l'indicateur "$" signifie que le commande est à exécuter sous
l'utilisateur normal
Noyau par défaut
Si vous utilisez le noyau par défaut, vous avez le choix entre :
Notez que la mise à jour du noyau est une bonne idée mais dépend de votre connexion internet. Si vous choisissez de pas mettre à jour le noyau passer directement à l’étape "Installation des sources".
Mise à jour du noyau
La mis à jour du noyau dépend essentiellement de votre architecture, vous devez donc vous renseigner sur celle-ci.
TODO : [1]
Nous admettrons que l’architecture est un pentium IV ou compatible 32bits (i686).
Nous allons dans un premier temps rechercher l’image puis l’installer :
Une fois l’installation effectuée, redémarrer afin d’utiliser votre nouveau noyau et ainsi vérifier que votre système le supporte.
Installation des sources du driver
Cette phase est relativement simple :
Si vous ne trouvez pas de paquet candidat, mettez à jour vos sources apt en ajoutant éventuellement une source non officielle .
Configuration des entêtes
Si vous utilisez le noyau par défaut de la distribution, il faut d’abord se renseigner sur sa version :
Exemple :
$ uname -r
2.6.12-1-686
Dans l’exemple, la version du noyau est 2.6.12-1-686.
Nous allons maintenant installer les entêtes du noyau utilisé.
Note : les noms des entêtes et des sources du noyau ont changé depuis la version 2.6.12. Donc si vous cherchez :
2.6.12, le nom sera du type kernel-headers-`uname -r` ;linux-headers-`uname -r`.
Pour la suite, il faudra tenir compte de la version de votre noyau, lors de la configuration des variables d’environnements.
Merci à TNorth pour avoir souligné le problème.
Pour les sources, la règle est la même en substituant -source- à -headers-.
Exemple :
$ aptitude search linux-headers `uname -r`
linux-headers-2.6.12-1-686 - Architecture-specific header files for Linux kernel 2.6.12 on PPro/Celeron/PII/PIII/P4 machines
linux-headers-2.6.12-1-686-smp - Architecture-specific header files for Linux kernel 2.6.12 on PPro/Celeron/PII/PIII/P4 SMP machines
Installer ensuite le paquet qui correspond à votre version de noyau :
Noyau local
Si vous avez recompilez vous-même votre noyau, vous devez simplement vérifiez que le lien symbolique /usr/src/linux pointe bien vers les sources que vous avez utisez.
TODO : [2]
Variables d’environnement
À partir de cette étape, vous devez effectuer les commandes suivantes dans le même terminal.
Vous devez déclarer deux variables d’environnement :
Suivant votre noyau, il faut aussi déclarer les entêtes :
Compilation du driver
Nous allons maintenant décompresser et compiler le driver :
Normalement, vous devriez avoir un paquet debian dans le répertoire /usr/src/modules.
Installation du driver
Une étape simple, il faut installer le driver et vérifier les dépendances :
Vérifions maintenant que tout va bien :
Si depmod ne génère pas d’erreur, alors passer à l’étape suivante, sinon,
vous n’avez peut-être pas redémarrer votre ordinateur après avoir mis à jour l’image du noyau, si c’est le cas, enlever le paquet (# dpkg -r nvidia-kernel-`uname -r`*deb) redémarrer et reprennez à l’étape "Variables d’environnement".
TODO : [3]
Installation du driver GLX
Vérifier d’abord que le serveur graphique est bien installer :
Ensuite, l’étape est assez simple :
Chargement automatique du driver
Pour que votre driver fonctionne, il faut qu’il soit charger en tant que module dans le noyau. Pour le faire de manière automatique, créez le fichier /etc/modprobe.d/nvidia et ajoutez :
Ensuite, mettez à jour les modules :
Il ne vous reste plus qu’à déclarer au système l’utilisateur quel utilisateur a le droit d’utiliser l’accélaration graphique (ici bibi) :
Règles supplémentaires pour les noyaux 2.6.14
Pour les noyaux 2.6.14 (et 2.6.13), les entrées /dev/nvidia* et /dev/nvidiactl disparaissent lors d’un reboot. Une solution (temporaire) est d’ajouter une règle udev (si vous l’utilisez évidemment).
Tout d’abord, il faut créer un fichier /etc/udev/nvidia.rules contenant :
# vim /etc/udev/nvidia.rules
Ensuite, il faut créer un lien symbolique ainsi :
# cd /etc/udev/rules.d/
# ln -s ../nvidia.rules 000_nvidia.rules
Le 000_ assure que cette règle sera lue avant les autres.
NOTE : l’auteur décline toute responsabilité quant à l’utilisation de cette règle (Disons que chez bibi, elle marche).
Voili, vous devez relancez votre machine avant de passer à la suite.
NOTE : vous devrez recompiler votre driver si vous changez de noyau.
Utiliser le driver
Il faut maintenant déclarer au serveur X d’utiliser le nouveau driver :
et choisissez "nvidia" lorsqu’il vous demande de sélectionner le driver.
Pour les modules :
X.Org chargés par défaut : ne modifiez pas la liste, sauf pour trois modules importants qui doivent être chargés ou pas selon les cas (ils concernent tous l’accélération 3D) :
Driver nvidia: dri:non GLX:oui GLcore:non
Mettre une section "Files" de référence dans la configuration ?
Répondez Oui.
Mettre une section "DRI" de référence dans la configuration ? :
répondez Non.
NOTE : si vous êtes suffisament à l’aise avec la manipulation de fichier de configuration, vous pouvez faire ces changements directement dans le fichier de configuration du serveur X :
X.Org : /etc/X11/xorg.conf ;XFree86 : /etc/X11/XF86Config-4.
N’oubliez pas de faire une sauvegarde de l’ancien avant ;o).
Relancer le serveur X
Quitter votre session, et une fois à l’écran de démarrage : utilisez la combinaison de touche : "Ctrl-Alt + Ret.Arr"
Si tout va bien, le serveur devrait se relancer sans problème, vous pouvez alors tester l’accélération graphique ainsi :
tester d’abord sa présence :
Si vous avez la ligne :
$ glxinfo | grep direct
direct rendering: Yes
Vous pouvez lancer glxgears pour tester l’affichage.
Pour finir, quelques liens vers des méthodes plus propres :
SOURCES : cet article est la traduction de saneous
avec des apports de Formation GNU/Linux et de ce poste pour la rustine udev du noyau 2.6.14.
NOTE : configuration utilisée dans cet article :
OS :
Matériel

Commentaires
PB Install driver Nvidia
Bonjour a Tous
Sa y est apres mure reflexion je suis passe a linux
apres avoir essayée differente distrib RedHat Mandrake Knoppix mon choix c portée sur Debian
pour l installation minimun (bin oui si pour faire du windows autant restée dessus)
donc tous sa pour dire que je suis une grosse bille
dans ce genre
apres avoir rame pour comprendre qu il fallait un serveur de windows pour avoir une interface graphique j ais installé GNome et la L Horreur 2 resolutions proposée 640*480/800*600
supposant un PB de driver je cherche de la doc et finit par tombe sur votre article le style est clair et en méme temps fournie en info je me lance je change mon noyeau sa marche impec (2.6.8-2-k7-smp)
ne marche pas chez moi existe dans la BDD Mais introuvable
je les telecharge mais impossible d arriver a lui faire
comprendre ou il sont impossible de les copier dans usr/src etc...etc...
6heures en tout pour pas grand chose si qqun a une Idee PLEASE HELP ME
> Compilation du driver propriétaire nVidia avec les sources fou
merci pour ta remarque, j’ai mis à jour l’article en conséquence.
hatori.
> Compilation du driver propriétaire nVidia avec les sources fou
Salut,
avec un peu de retard, je me vois obliger de te contredire. La version des sources fournies par Debian change donc le problème que tu soulèves était peut-être vrai à un certain moment mais ne l’es plus actuellement. Pour preuve, j’utilise le driver 1.0-7174 compilé comme décrit dans l’article et l’option twinview marche parfaitement.
hatori.
> Compilation du driver propriétaire nVidia avec les sources fou
Attention, kernel-headers-x.y.z-w se nomme désormais linux-headers dans les repo debian.
Il faut donc remplacer
export KSRC=/usr/src/kernel-headers-`uname -r`
par
export KSRC=/usr/src/linux-headers-`uname -r`
> Compilation du driver propriétaire nVidia avec les sources fou
Merci pour cet article il m’a permis de voir deux ou trois points que je ne connaissais pas.
En revanche je n’arrive toujours pas à avoir l’accélération graphique sur ma machine.
depmod -a ne me renvoi rien
Le module nvidia est bien installé (lsmod le trouve)
J’ai aussi installé sans problème visible les paquets nvidia-glx et nvidia-glx-dev.
Mais dès que je fait un glxinfo ou glxgears j’ai une erreur de segmentation (segfault).
Si j’active le module glx dans le fichier de conf xorg (xorg.conf) startx renvoi une erreur impossible de charger glx
Je n’arrive pas à comprendre pourquoi ni comment régler se problème.
> Compilation du driver propriétaire nVidia avec les sources fou
La version du pilote de Nvidia fournie pas Debian ne permet pas le twinview, c’est pourquoi j’ai essayé de trouver un moyen facile d’utiliser la derniere version de Nvidia.
Il existe encore une autre version avec module assistant ou tu n’a pas besoin de generer de paquet, mais qui ne t’installe que la version "ancienne" des pilotes Nvidia (celle des sources de Debian en fait).
Le paquet nvidia-settings est aussi tres intéressant, il permet notament l’overclocking tres facilement en rajoutant une ligne dans le fichier de conf de Xfree, ce qui debloque le menu du pilote.
Chaque methode a ses avantages et inconvénients, mais on est tous d’accord pour dire que la Debian est une distrib tout bonnement géniale !
Vive Debian :-)
> Compilation du driver propriétaire nVidia avec les sources fou
Salut,
effectivement, c’est une autre solution mais l’idée était de ne pas passer par l’installateur de nVidia et donc de passer par les sources fournies par Debian.
Cela dit, j’ai découvert une solution encore différente et bien plus propre que celle présentée ici. Elle passe par l’outil que tu utilises partiellement, module-assistant (m-a) tout se passe ici :
http://www.andesi.org/index.php ?node=83.
> Compilation du driver propriétaire nVidia avec les sources fou
Bonjour,
voici une solution alternative :
* apt-get install kernel-image-2.6-686 (ou kernel-image-2.6-k7) ceci afin d’avoir le dernier noyau => facultatif :-)
* reboot du PC en choisissant le dernier noyau dans le menu de grub
* apt-get install module-assistant
* m-a -i prepare
* telechargement du dernier pilote linux NVIDIA-Linux-x86-1.0-7676-pkg1.run chez Nvidia
* /etc/init.d/gdm stop => pour passer en mode console (il faut etre root)
* sh ./NVIDIA-Linux-x86-1.0-7676-pkg1.run en tant que root
A ce stade le pilote est installé, il suffit maintenant de modifier le fichier de conf :
* vi /etc/X11/XF86Config-4
Commenter (ajouter un # devant la ligne) les lignes suivantes de la section modules :
dri et glcore,
par contre laissez glx, et
remplacer nv par nvidia, et voila :-)
* /etc/init.d/gdm start => redemarrage du display manager (en tant que root)
> Compilation du driver propriétaire nVidia avec les sources fou
Salut Tony,
j’ai suivi tes recommandations et je suis d’accord avec toi, l’utilisation de admin alourdi les choses mais je voulais montrer qu’il est possible (et souvent préférable) de ne pas tout faire en mode superuser. Dans l’idée l’article sur l’ajout d’un admin vient se situer avant cet article.
voili, voilou,
Arnaud.
> Compilation du driver propriétaire nVidia avec les sources fou
Re-bonjour,
Je n’ai pas testé non plus, mais j’ai 3 remarques sur la forme :
Merci pour cet article très intéressant.