Forum Clubic

Plantages du serveur graphique - Après apt-get upgrade (nvidia)

Salut à tous.

 Avant-hier, j'ai mis ma Debian Sid à jour avec apt-get upgrade. Tout se déroule sans problèmes, jusqu'au moment ou j'essaye de lancer une application utilisant l'opengl. Là, le serveur X plante complètement.  :??: Je précise que tout fonctionnait parfaitement auparavant. J'ai essayé de réinstaller le driver nvidia (car c'est lui qui pose problème aparemment) sans succès : la version de gcc installée est différente de celle utilisée pour compiler le noyau. Je recompile donc le noyau, sans résultat. Voici quelques extraits du log de Xorg :

Le fichier se termine par la ligne suivante : "Fatal server error: Caught signal 11. Server aborting".

J’ai constaté un plantage avec les programmes suivants : Blender, SuperTux, War§ow.

Si quelqu’un a une idée qui pourrait m’être utile…

Merci.

PS: J’utilise Debian GNU/Linux Sid (unstable), Xorg 7 (+ext. composite), KDE 3.5.4.
PPS: J’ai refait une mise à jour aujourd’hui

il me faudrais plus d’infos ! essais de copier l’ensemble du fichier /var/log/Xorg.0.log ainsi que le fichier /etc/X11/xorg.conf

sinon, à vue de nez, je dirais d’installer le package nvidia-glx :

apt-get install nvidia-glx

/var/log/Xorg.0.log

/etc/X11/xorg.conf

Quant à nvidia-glx :

Désolé pour la longueur du post; je ne sais pas où j’aurais pu héberger les fichiers :confused:

tu utilise le module glx de xorg et pas celui de nvidia, c’est pour cela que ça ne marche pas :wink:

nvidia-glx est bien présent dans les sources debian sid !

  1. comment as-tu installé le driver nvidia ?
  2. as-tu bien les sources contrib et non-free dans apt ?

J’ai installé le driver Nvidia via un installateur .sh patché pour le noyau 2.6.16.
Par contre, je n’ai pas les dépôts contrib et non-free dans /etc/apt/sources.list. Je suppose que je dois les ajouter, non ?

  1. la mauvaise méthode : installer le driver grace au script .sh fourni par nvidia

pour cela, il te faut les packages pkg-config et xserver-xorg-dev qui installe le fichier /usr/lib/pkgconfig/xorg-server.pc qui renseigne l’outil pkg-config.
En particulier

pkg-config xorg-server --variable=moduledir

doit te renvoyer le chemin ou installer les modules pour xorg : /usr/lib/xorg/modules sous debian au lieu de /usr/X11R6/lib/modules avant xorg 7.0 (d’ailleurs, le libglx.so de nvidia se trouve certainement à cet endroit)

  1. en utilisant la méthode debian :

commance par ajouter contrib et non-free à tes dépots :

deb [nom du mirroir] sid main contrib non-free

puis installe le package module-assistant :

apt-get install module-assistant

qui te permet de construire facilement des modules pour ton noyau.
à partir de là, lance

m-a prepare

à ne faire qu’une seule fois, il se charge de vérifier que tout est dispo pour compiler un module (gcc, headers ou sources du noyau) et les installe s’il le faut.
puis

m-a a-i nvidia

télécharge, compile et installe le module nvidia pour ton kernel.
enfin, install glx

apt-get install nvidia-glx

et voilà, c’est reglé :wink:

à chaque changement de kernel par la suite, il te faudra :

  1. si le numéro du kernel est le même, supprimer le fichier /usr/src/nvidia-{numéro-de-version-numero-du-kernel}.deb
  2. relancer
m-a a-i nvidia

si le driver venait à évoluer avec une nouvelle version, au moment de la mise à jour du paquet nvidia-glx, lance un

m-a update
m-a a-i nvidia

et ton driver sera toujorus à jour et il fonctionnera toujours comme il faut (ou du moins, comme il a été programmé par nvidia…)

En attendant de résoudre, utilise les pilotes génériques pour Nvidia en remplacant "nvidia" par "nv" dans la section device de ton xorg.conf.

Au moins, tu auras une interface graphique :whistle:

Oh! Je peux utiliser l’interface graphique normalement : Le serveur ne se plante qu’avec certains programmes. Je peux donc utiliser des programmes comme Opera sans problème. Ceci dit, j’ai quand même essayé le driver nv. C’est ça qui m’a permis de voir que c’était le driver nvidia qui posait problème.

moi1392 > Ok je teste la "bonne" méthode.
> Installation terminée, je relance le serveur X.
> Le serveur X ne redémarre plus.

$ startx 2> errx

errx :

Tout compte fait, je vais devoir utiliser “nv” ! :confused:
La version 1.0-8178 est celle qui était installée avant. L’installation avec m-a n’a-t-elle donc pas fonctionné ?

non, apparement, elle n’a pas marché :frowning:

c’est quoi ce “camel” ? tu as un kernel que tu as compilé toi même ?
que te retourne ‘uname -r’ ?
as-tu un lien /lib/modules/`uname -r`/build qui pointe vers les sources (ou headers) de ton kernel ?

m-a a-i nvidia te construit un fichier /usr/src/nvidia-{version-du-kernel}-{version-du-driver}.deb puis t’installe le .deb
si ce fichier est présent sur ton système, supprime le et recommance la manip en t’assurant bien qu’il est créé et installé

pour cela, la version du module glx présent dans sid est bien la 1.0-8762 donc soit tu n’est pas en sid, soit tu n’as pas installé le package nvidia-glx

Oui, c’est moi qui ai compilé mon noyau.


$ uname -r
2.6.16-camel

> as-tu un lien /lib/modules/`uname -r`/build qui pointe vers les sources (ou headers) de ton kernel ?
Oui :


$ cd /lib/modules/2.6.16-camel/build
22:00 yvan@yvan ~/kernel/linux-2.6.16%

Pas de .deb présent dans /usr/src/ :


$ ls /usr/src
linux@  modules/  nvidia-kernel-source.tar.gz  rpm/

–> Je recommence la manip.

Je suis bien en sid. D’après le cache de APT (apt-cache show nvidia-glx), la version de nvidia-glx est 1.0.8762-2 et c’est bien la version qui est installée :

apt-get install nvidia-glx
Reading package lists... Done
Building dependency tree... Done
nvidia-glx is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 50 not upgraded.

Maintenant, je ne sais pas pourquoi Xorg essaye de charger la version 1.0-8178.
Pour l’instant, je vais retenter la création du deb nvidia.

Edit:

J’ai refait m-a a-i nvidia, j’ai refait un dpkg -i du deb créé (~/kernel/nvidia…deb).
… Pas de chance, ça ne fonctionne toujours pas. Toujours le problème de version de module. Comprends pas… :neutre: Il ne veut pas s’installer !

gcc n’aurait pas changé de version entre ta compilation de kernel et maintenant ?

cat /proc/version pour voir avec quel gcc tu as compilé to kernel et gcc -v pour voir la version actuelle.

essais de décharger le module actuel avant d’essayer de chager le nouveau (au pire, un reboot et c’est reglé)

dernière possibilité, to kernel ne correspond pas aux sources présentes dans ~/kernel/linux-2.6.16 peut-être que tu as relancé une configuration (make menu-config) ou alors que tu as patché quelque chose et que les numéros de version ne correspondent plus !
Si vraiment tu veux essayer cette méthode et t’assurer que le problème viens de ton kernel, essais d’installer un kernel de deian (apt-get install linux-image-2.6 ou linux-image-2.6-686 ou linux-image-2.6-k7 selon ton architecture)
démarre sur ce kernel et lance le m-a prepare pour qu’il te télécharge et t’installe les sources.

pour le module glx, c’est un mystère aussi, essais de réinstaller de force le package (apt-get install --reinstall nvidia-glx) et vérifie que le timestamp (la date de création en particulier) de /usr/lib/xorg/modules/extensions/libglx.so à bien été modifié (chez moi c’est un lien vers /usr/lib/xorg/modules/extensions/libglx.so.1.0.8762)

à part ça, je ne vois vraiment pas, j’ai déjà utilisé cette méthode avec mes propres kernels et avec ceux de debian, je l’ai conseillé à beaucoup de monde et elle marche à merveille et ils en sont content !

Si, la version de gcc a changé. C’est d’ailleurs pour ça que je n’arrive pas à installer le driver nvidia avec l’installateur. Le kernel a été compilé avec la version 3.3.5 alors que celle installée actuellement est la version 4.1.2. J’avais d’ailleurs essayé de le recompiler avec la version actuelle mais ça n’a rien changé aparemment.
Sinon, je n’ai pas changé la configuration du kernel. Le fichier libglx.so est tout frais (2 minutes); il est donc “neuf”. C’est vrai que cette méthode ne manque pas de charme… malgré le fait qu’elle ne fonctionne pas chez moi. Dernière question : Comment faire pour décharger le module sans redémarrer ?

pour décharger le module sans redémarrer : modprobe -r nvidia
mais ça ne parchera pas si X est lancé !
sinon il te faut un module compilé avec le même compilo que le kernel, c’est pour ça que ça ne marche pas !

2 solutions :

  • recompile ton kernel avec le gcc courant
  • installe un kernel debian (ils en sont au 2.6.17 en sid) qui sont très bien fait en général et ne demandent aucune maintenance puisqu’ils sont mis à jour régulièrement pour corriger les failles

J’ai recompilé et réinstallé mon noyau, sans succès d’abord. Je suis quand même parvenu à l’installer en désinstallant l’ancien (le seul noyau de ma machine se trouvait en mémoire!). J’ai refait un m-a a-i nvidia mais ça n’a rien changé au problème. J’ai donc du recourir à l’installateur Nvidia … qui n’arrange rien non plus.

Mais où va-t-il chercher ce 1.0.8178 ??

Les installations Nvidia se déroulent sans problème, quelle que soit la méthode mais on dirait qu’il ne tient pas bien compte des versions précédemment installées. Pourquoi le package nvidia-kernel-common a-t-il un numéro de version différent des autres (qui a l’air vieux qui plus est!) ?
Je vais passer la fin de mes jours devant une console :slight_smile: lol.
J’aurais p-e dû passer en testing au lieu de unstable (et pourtant ça fonctionnait si bien avant cet upgrade…).

Je me réponds vite à moi même pour signaler que mon problème est résolu :

J’ai supprimé une panoplie de fichiers relatifs à l’ancienne installation (en adaptant un script trouvé sur ce site: http://www.albertomilone.eu/europeo/nvidia_scripts1.html)). Ensuite j’ai désinstallé-réinstallé nvidia-glx ainsi que le driver proprement dit.

Merci pour vos réponses.

Yvan0|_|.

Salut,

meme soucis…

peux tu poster ton script stp? (le lien semble ne plus fonctionner…)

Merci d’avance!

Phiphi

sinon poste ton erreur (/var/log/Xorg.0.log) et ta config (/etc/X11/xorg.conf) avec les manips que tu as fait, les erreurs que tu obtiens et ce que tu souhaites.
On pourra toujours t’aider à partir de là !