Lors de la mise à jour de ma fedora de la version 8 à la version 9, le pilote graphique nvidia a refusé de démarrer.
Le guide de mise-à-jour de fedora que j'ai suivi m'a entrainé vers le forum NVIDIA pour Linux qui recommandait d'installer un nouveau pilote, et donnait un lien vers une version du pilote (que j'ai cru être la plus récente) ainsi que des instructions d'installation… que j'ai suivies.
J'ai eu des messages d'erreur à différents niveaux du processus :
X.Org X Server 1.5.0 (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X (EE) NVIDIA(0): log file that the GLX module has been loaded in your X (EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If (EE) NVIDIA(0): you continue to encounter problems, Please try (EE) NVIDIA(0): reinstalling the NVIDIA driver. (EE) NVIDIA(0): This video driver ABI is not supported. (EE) NVIDIA(0): Use the -ignoreABI option to override this check.
En gros : la version du pilote était incompatible avec celle du serveur X (trop récent :)).
Sur le forum NVIDIA j'ai trouvé que la version du pilote nvidia n'était compatible qu'avec la version 1.4.99.901 du serveur X.
Je me suis ensuite aperçu que le pilote NVIDIA le plus récent est le 180.44 : je l'ai installé à la place du 173.08, puis j'ai remis le serveur X le plus récent (1.5.2)
⇒ ça fonctionne (il a néanmoins fallu que je fasse 2 fois l'installation du pilote NVIDIA, car ce n'était pas le bon module glx qui se chargeait…)
J'ai ensuite installé un nouveau noyau, il m'a fallu réinstaller le pilote…
et pour finir, le lendemain, j'ai appris (sur le même forum) qu'un nouveau pilote le plus récent était disponible (180.51) ; je l'ai installé à son tour et il semble plus stable que le précédent (180.44) qui avait réussi à planter ma bécane plusieurs fois de suite.
En passant de fedora 9 à fedora 10, j'en ai profité pour installer (sans difficulté particulière) la version 190.42.
Par ailleurs, je me suis aperçu que l'atelier avait placé une version de pilote NVIDIA dans le répertoire /usr/src/addon : je suppose que le but est d'installer automatiquement ce pilote chaque fois que la version de noyau change ; j'ai donc remplacé la vieille version de l'atelier par la 190.42 pour voir ce qui se passe au prochain changement de noyau.
Effectivement, lors de l'installation d'un nouveau noyau, le pilote est automagiquement recompilé et installé, grâce au script  /usr/src/modulescripts/addon/build.sh
⇒ il me suffira donc de placer chaque nouvelle version du pilote dans ce répertoire…
Lors de la regénération de ma machine, l'atelier a installé la fedora 12 : le pilote X démarré par défaut est nouveau (qui remplace (?) nv ; de plus, ce pilote semble être chargé par le noyau ; il y a donc conflit avec le pilote nvidia.
Pour utiliser le pilote nvidia à la place du pilote nouveau, il faut intervenir en deux endroits :
blacklist nouveauoptions nouveau modeset=0rdblacklist=nouveau à la fin de la ligne kernel … root= …Gère correctement les deux écrans (sans fichier de configuration !) ; par contre, pour la vidéo-projection, c'est un peu merdique : iul faut passer par gnome et l'utilitaire de configuration du menu.
Gère les deux écrans, mais pas sans fichier de configuration !
Pas de problème particulier.
Bien entendu, le pilote n'est pas recompilé automatiquement pour le nouveau noyau et, bien plus gênant, le pilote nouveau est démarré, mais la session X ne fonctionne pas correctement.
NB : voir si le script de l'atelier irisa utilisé sur ma précédente machine pour recompiler automatiquement le pilote lors d'un changement de noyau pourrait faire l'affaire.
Dans tous les cas, il faut …
Il est difficile de se débarasser du pilote nouveau, qui est bien enraciné à tous les niveaux : il est incorporé dans le disque mémoire initial (initramdisk), chargé très tôt au démarrage de la machine : la directive d'exclusion (blacklist nouveau, voir ci-dessus) ne suffit pas, car ce ramdisk est chargé bien avant que le noyau lise les fichiers de /etc/modprobe.d. Et même la solution qui consiste à ajouter la directive blacklist lors du chargement du noyau (fichier grub.conf) ne suffit pas !!
Le problème (mais pas sa solution) est bien décrit sur le site de nvidia
Même en démarrant en mode mono-utilisateur, le pilote nouveau est démarré et il est impossible de le désactiver par rmmod.
La solution est décrite sur le forum fedora et comporte quatre étapes ; j'ai suivi la méthode recommandée par l'auteur et ça c'est bien passé :
Et ça fonctionne ; reste à voir ce qui se pasera au prochain changement de noyau