Association Générale des Utilisateurs de logiciels libres en Côte-d'Or

logo_coagul

Compilation du driver propriétaire nVidia avec les sources fournies par Debian.

Rubrique : Matériel
Le : mardi 25 octobre 2005
Par : hatori  
Visites : 27249

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.

[1] un lien sur les différentes architectures

[2] liens vers la compilation du noyau

[3] liens vers réparer les dépendances

Version imprimable de l'article
Article précédent : Tester sa mémoire vive

Forum


  • PB Install driver Nvidia
    11 mars 2006, par ewe

    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)
    - 1 QUESTION smp ????
    - 2 QUESTION aptitude install nvidia-kernel-source nvidia-kernel-common 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

    • PB Install driver Nvidia
      3 mai 2006, par remax

      smp = symmetric multi-processing

      donc a utiliser si on a plusieurs processeurs

  • > Compilation du driver propriétaire nVidia avec les sources fournies par Debian.
    20 novembre 2005, par TNorth

    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 fournies par Debian.
      1er décembre 2005, par hatori

      merci pour ta remarque, j’ai mis à jour l’article en conséquence.

      hatori.

  • > Compilation du driver propriétaire nVidia avec les sources fournies par Debian.
    9 novembre 2005, par Ashgenesis

    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 fournies par Debian.
    4 novembre 2005, par stamy

    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 fournies par Debian.
      4 novembre 2005, par hatori

      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 fournies par Debian.
        6 novembre 2005, par stamy

        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 fournies par Debian.
          28 novembre 2005, par hatori

          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.

Site réalisé sous Spip. Merci à NFrance pour son hébergement gracieusement offert. Tous les articles de ce site sont sous licence Creative Commons by-nc-sa (CC).