Xlib: extension «GLX» manquante - avec une carte NVIDIA et une carte graphique intégrée


17

J'ai une machine avec une NVIDIA GeForce que je n'utilise pas à des fins d'affichage (c'est-à-dire que le moniteur n'y est pas connecté), et une puce graphique embarquée terne. (Ci-dessous, vous trouverez la lshwliste pertinente .)

Mes sessions X fonctionnent très bien; mais lorsque la plupart de mes applications X (qui nécessitent tout type de GFX fantaisie ou une boîte à outils) s'exécutent, elles émettent le message d'erreur suivant:

Xlib:  extension "GLX" missing on display ":0".

Ma question est la suivante: comment faire en sorte que mes applications remarquent la bibliothèque non NVIDIA GLX et l'utilisent (sans retirer la carte NVIDIA et sans basculer le moniteur sur ses ports de sortie bien sûr)?

J'utilise Debian / Linux Stretch 64 bits, la version du noyau 4.2.6, avec LXDE.

Sortie de lshw -c display:

  *-display               
       description: VGA compatible controller
       product: GK106 [GeForce GTX 650 Ti Boost]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

Sortie de glxinfo:

Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

Sortie de cat /var/log/Xorg.0.log | grep glx:

[    19.287] (II) LoadModule: "glx"
[    19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    22.727] (II) Module glx: vendor="X.Org Foundation"

Information additionnelle:

  • Je n'ai pas glx-alternative-nvidiainstallé le package.
  • Si je démarre à partir d'une clé USB en direct de Devuan ASCII, le problème ne se manifeste pas .
  • Si je crée un à l' xorg.confaide Xorg :1 -configure, c'est ce qu'elle produit (sections 2 « Device », un associé au conducteur, une autre avec ); mais si je commente la section Nouveau et essaie d'exécuter Xorg avec cette configuration - elle ne se chargera pas, disant qu'elle ne trouve aucun écran.intelnouveau

La solution pour moi était de supprimer bumblebeeet d'installer nvidia-bumblebee(sur Debian Jessie, en utilisant les paquets gfx de backports).
Skeen

Réponses:


8

Je suis arrivé ici après l'installation à nvidia-currentpartir du référentiel de packages et je suis resté bloqué sur une boucle de connexion . J'ai regardé la connexion ~/.xsession-errorset trouvé l'erreur mentionnée:

Xlib: extension "GLX" missing on display ":0".

J'avais déjà désinstallé nvidia-currentet le problème persistait. Je n'ai pas non plus glx-alternative-nvidiainstallé. En dernier recours, j'ai tout simplement désinstallé tout nvidiasur mon Ubuntu (y compris les trucs CUDA), et cela a fonctionné après le redémarrage.


Désolé de ne pas avoir répondu à cela auparavant. Je n'ai nvidia-currentinstallé ni, en fait, aucun nvidia-paquet. Mais j'ai le dernier CUDA installé, avec le pilote d'accompagnement (l'installateur manuel de nvidia). Je sais que c'est une façon laide de faire les choses, mais j'ai besoin de la dernière version.
einpoklum

1

Identifiez d'abord le module glx utilisé:

$ cat /var/log/Xorg.0.log | grep glx
[     3.622] (II) LoadModule: "glx"
[     3.624] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.705] (II) Module glx: vendor="NVIDIA Corporation"

Dans Debian 8 Jessie, ma solution était de supprimer le glx-alternative-nvidiapaquet. Donc, après le redémarrage:

$ cat /var/log/Xorg.0.log | grep glx
[     3.581] (II) LoadModule: "glx"
[     3.582] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.592] (II) Module glx: vendor="X.Org Foundation"

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop

1
Je ne reçois en fait que le module de base X.Org pour commencer ... voir éditer.
einpoklum

1
Et comment l'enlevez-vous? Il n'est pas répertorié sur mes apt-getcolis.
villasv

1
@VillasV vous devez activer le contribréférentiel pour le voir. Et probablement vous ne l'avez même pas installé, et donc votre cause d'erreur manquante d'extension glx est différente.
svlasov

Petite piqûre: pourquoi dites-vous cat file | grep pattern? Pourquoi ne pas grep pattern file?
Timo

@Timo, juste une préférence personnelle. Dans l'histoire du shell, je trouve plus facile de voir comment le modèle a évolué s'il persiste.
svlasov

1

Je l'ai résolu en désinstallant glx-alternative-nvidia

apt-get remove glx-alternative-nvidia

Je n'ai même pas glx-alternative-nvidiainstallé le paquet ...
einpoklum

1

J'ai eu des problèmes après la mise à niveau de Debian 9 après avoir cliqué sur l'invite de redémarrage pour mettre à niveau.

Lors de l'installation initiale, j'ai suivi les étapes trouvées sur le wiki https://wiki.debian.org/NvidiaGraphicsDrivers

Les plus importants pour moi étaient ...

# apt-get update
# apt-get install -t stretch-backports nvidia-driver

Puis effectué un redémarrage


0

Installez OpenGL sur votre ordinateur, puis comme mentionné ici , ajoutez ce qui suit à votre /etc/X11/xorg.conf:

Section "Files"
    ModulePath "/usr/lib/nvidia-VERSION/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection

(Remplacez nvidia-VERSIONpar le nom de votre répertoire) Cela a fonctionné pour moi.


1
Je n'ai pas le premier répertoire. En fait, je n'en ai même pas /etc/X11/xorg.confpour une raison quelconque.
einpoklum

1
Vous pouvez le faire créer pour vous avecsudo nvidia-xconfig
Gabriel Fair

@GabrielFair: Je ne devrais absolument pas faire ça. Cela rendra probablement ma carte nVIDIA utilisée pour X; et même si ce n'est pas le cas - c'est conceptuellement inapproprié.
einpoklum

0

J'ai "l'extension" GLX "manquante" lorsque j'ai "mis à niveau" mon debian (8 -> 9). La solution était assez simple.

Téléchargez votre programme d'installation de pilote sur NVIDIA

service lightdm stop
#(ALT+F1) + your credentials
sudo nvidia-installer --uninstall
sudo ./NVIDIA-Linux-x86_64-340.102-custom.run #my vga GT218M [GeForce 310M]

Après que l'installateur ait fait son travail, le GLX est revenu.

ps: Si vous repos utilisateur, je pense qu'un dpkg-reconfigure "driver_package_name" ferait de même.


1
Si je ne me trompe pas, X utilisera le module nVIDIA GLX. Ce qui n'est pas ce que je veux, car je n'utilise pas mon GPU à des fins d'affichage.
einpoklum
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.