Driver nvidia et kernel 2.6.23

En possession d'une carte graphique nvidia GeForce 7300 GS, je suis confronté aux bugs des drivers propriétaires NVIDIA depuis un moment.
Le dernier driver fonctionnel en date est le 1.0-9755 pour ma carte, les autres faisant systématiquement freezer mon système ; rien que ça.

A chaque changement de noyau, le package nvidia est mis à jour dans la foulée, afin d'éviter aux utilisateurs d'avoir à recompiler leur driver manuellement.
De mon côté j'essaie donc toujours le nouveau driver quelques temps avant de m'apercevoir qu'il me fait toujours freezer.

Mais ce n'est d'habitude pas très gênant puisque j'ai gardé une copie du driver 9755, que je recompile à la mano et ça roule. Normalement.
Sauf qu'en 2.6.23 l'API du kernel a changé, et n'est plus compatible avec les anciens drivers, impossible donc de le recompiler.

Heureusement une bonne âme a patché ce driver afin de faire correspondre les prototype des fonctions du driver avec ceux du kernel.
Tu peux rebuilder les packages si tu n'as pas confiance sinon prends les deux tarball et installe les.

Sous Arch c'est trivial :

# pacman -U nvidia-100.14.09-1-i686.pkg.tar.gz
# pacman -U nvidia-utils-100.14.09-1-i686.pkg.tar.gz

Une fois les deux drivers installés tu n'es pas forcément encore au bout de tes peines. De mon côté j'ai viré l'ancien driver nvidia et recharger le nouveau :

# depmod -a 

Pour vérifier les dépendances des modules du noyau.

# modprobe -r nvidia

Pour virer l'ancien driver nvidia.

# modprobe nvidia

Pour charger le nouveau.

Ensuite j'ai tenté un startx en user, mais ça ne fonctionnait pas, j'ai eu droit à un message de la sorte : "The xorg server ABI is newer than the driver version and so X will not open."

Comme suggéré plus loin dans le message j'ai donc tenté de lancer mon serveur X sans cette option :

$ startx -- -ignoreABI

Ça fonctionne mais les plantages reviennent. J'ai donc décidé de downgrader mon serveur X.
Du package xorg-server 1.4-4 (dans le dépôt extra) je suis passé au 1.2.0-5 (dans le dépôt current).

Avant que cela ne fonctionne pour de bon, j'ai aussi downgradé les packages xf86-input-keyboard en version 1.1.1 et xf86-input-mouse en 1.2.1.

Dorénavant ça fonctionne mais plus question d'utiliser le module glx, qui est indispensable pour compiz entre autre. J'essaierai de chercher pourquoi plus tard car l'exposé me manque déjà :-)

Pour éviter de trembler à chaque mise à jour, j'ai décidé d'arrêter de mettre à jour mon X et les drivers nvidia empaquetés, au moins pendant quelques temps.
Pour ce faire sous Arch, il faut ajouter la variable IgnorePkg dans le pacman.conf de la sorte :
IgnorePkg = nvidia nvidia-utils xorg-server

En espérant que ce billet permette à quelqu'un de perdre moins de temps que moi à résoudre ce désagrément.

Vus : 712
Publié par Fuse : 11