Skip to Content

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 :

  •  le noyau n’a jamais été recompilé (noyau par défaut) ;
  •  le noyau a été recompilé localement (noyau local).

    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 :

  •  mettre à jour le noyau ;
  •  ne pas mettre à jour le noyau.

    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 :

  •  les entêtes pour les versions antérieures à 2.6.12, le nom sera du type kernel-headers-`uname -r` ;
  •  les entêtes pour les versions égales ou postérieures, le nom sera du type 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 :

  •  soit du noyau par défaut de version antérieure à 2.6.12 :
  •  soit du noyau par défaut de version postérieure ou égale à 2.6.12 :
  •  soit du noyau local :

    Compilation du driver

    Nous allons maintenant décompresser et compiler le driver :

  •  décompression des sources :
  •  compilation des sources :

    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 :

  •  Sélectionnez les modules du serveur 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 :

  •  sur le Wiki Debian  ;
  •  sur le site Andesi .

    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 :

  •  Noyau : 2.6.12-686 (recompilé) ;
  •  Distribution : Debian Testing ;
  •  Serveur X : X.Org 6.8.2 ;
  •  Driver nVidia : nvidia 1.0-7174.

    Matériel

  •  Processeur : P4 ;
  •  Carte vidéo : nVidia GForce4 TI 4200.