Xlib: Erweiterung „GLX“ fehlt - mit NVIDIA-Karte und integrierter Grafik


17

Ich besitze eine Maschine mit einer NVIDIA GeForce, die ich nicht für Anzeigezwecke verwende (dh der Monitor ist nicht an sie angeschlossen), und einige glanzlose Onboard-Grafikchips. (Unten finden Sie die entsprechende lshwAuflistung.)

Meine X-Sitzungen funktionieren einwandfrei. Wenn jedoch die meisten meiner X-Apps (für die ein ausgefallenes GFX oder ein Toolkit erforderlich ist) ausgeführt werden, wird die folgende Fehlermeldung ausgegeben:

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

Meine Frage lautet: Wie kann ich meine Apps dazu bringen, die Nicht-NVIDIA GLX-Bibliothek zu erkennen und zu verwenden (ohne die NVIDIA-Karte zu entfernen und ohne den Monitor auf die Ausgangsanschlüsse zu schalten)?

Ich verwende Debian / Linux Stretch 64bit, Kernel-Version 4.2.6, mit LXDE.

Ausgabe von 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)

Ausgabe von 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".

Ausgabe von 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"

Zusätzliche Information:

  • Ich habe das glx-alternative-nvidiaPaket nicht installiert.
  • Wenn ich von einem Live-Image-USB von Devuan ASCII boote, tritt das Problem nicht auf .
  • Wenn ich eine erstellen xorg.confVerwendung Xorg :1 -configure, dies ist es, was es produziert (2 ‚Gerät‘ Abschnitte, eine mit dem zugehörigen intelTreiber, eine andere mit nouveau); Aber wenn ich den Nouveau-Bereich auskommentiere und versuche, Xorg mit dieser Konfiguration auszuführen, wird es nicht geladen und sagt , dass es keine Bildschirme finden kann.

Die Lösung für mich war das Entfernen bumblebeeund Installieren nvidia-bumblebee(unter Debian Jessie, unter Verwendung der gfx-Pakete für den Backport).
Skeen

Antworten:


8

Ich bin hier angekommen, nachdem ich nvidia-currentaus dem Paket-Repository installiert hatte , und bin in einer Login-Schleife hängen geblieben . Ich habe mir die Anmeldung angesehen ~/.xsession-errorsund den genannten Fehler festgestellt:

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

Ich hatte bereits deinstalliert nvidia-currentund das Problem blieb bestehen. Habe ich auch nicht glx-alternative-nvidiainstalliert. Als letzten Ausweg habe ich einfach alles von nvidiameinem Ubuntu deinstalliert (einschließlich CUDA-Sachen) und es hat nach dem Neustart funktioniert.


Entschuldigen Sie, dass Sie zuvor nicht darauf geantwortet haben. Ich habe nvidia-currentnoch kein nvidia-Paket installiert . Ich habe jedoch die neueste CUDA-Version mit dem zugehörigen Treiber (dem manuellen Installationsprogramm von nvidia) installiert. Ich weiß, dass das eine hässliche Art ist, Dinge zu tun, aber ich brauche die neueste Version.
einpoklum - wieder Monica

1

Identifizieren Sie zuerst, welches glx-Modul verwendet wird:

$ 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"

In Debian 8 bestand meine Lösung darin, das glx-alternative-nvidiaPaket zu entfernen . Also nach dem Neustart:

$ 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
Eigentlich bekomme ich nur das X.Org-Funktionsmodul ... siehe Bearbeiten.
einpoklum - wieder Monica

1
Und wie entfernst du es? Es ist nicht auf meinen apt-getPaketen aufgeführt.
Villasv

1
@VillasV Sie müssen das contribRepository aktivieren , damit es angezeigt wird . Und wahrscheinlich haben Sie es nicht einmal installiert, und daher ist Ihre Ursache für den fehlenden glx-Erweiterungsfehler anders.
Svlasov

Kleiner Nitpick: Warum sagst du cat file | grep pattern? Warum nicht grep pattern file?
Timo

@Timo, nur eine persönliche Vorliebe. In der Shell-Geschichte finde ich es einfacher zu sehen, wie sich das Muster entwickelt hat, wenn es das letzte ist.
Svlasov


1

Ich hatte Probleme nach dem Upgrade von Debian 9, nachdem ich auf den Neustart geklickt hatte, um das Upgrade durchzuführen.

Bei der Erstinstallation habe ich die Schritte im Wiki https://wiki.debian.org/NvidiaGraphicsDrivers befolgt

Die wichtigsten für mich waren ...

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

Führen Sie dann einen Neustart durch


0

Installieren Sie OpenGL auf Ihrem Computer. Fügen Sie dann wie hier erwähnt Folgendes hinzu /etc/X11/xorg.conf:

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

(Ersetzen Sie nvidia-VERSIONdurch Ihren Verzeichnisnamen) Dies hat bei mir funktioniert.


1
Ich habe nicht das erste Verzeichnis. Tatsächlich habe ich /etc/X11/xorg.confaus irgendeinem Grund nicht einmal eine .
einpoklum - wieder Monica

1
Sie können es für Sie sudo nvidia-xconfig
Gabriel Fair

@ GabrielFair: Ich sollte das auf keinen Fall tun. Dadurch wird meine nVIDIA-Karte wahrscheinlich für X verwendet. und selbst wenn nicht - es ist konzeptionell unangemessen.
einpoklum

0

"Erweiterung" GLX "fehlt", als ich mein Debian "dist-upgrade" habe (8 -> 9). Die Lösung war ziemlich einfach.

Laden Sie Ihr Treiber-Installationsprogramm auf NVIDIA herunter

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]

Nachdem der Installer seine Arbeit erledigt hatte, ging der GLX zurück.

ps: Wenn Sie Benutzer-Repos, denke ich, dass eine dpkg-reconfigure "driver_package_name" das gleiche tun würde.


1
Wenn ich mich nicht irre, wird X das nVIDIA GLX-Modul verwenden. Was ich nicht möchte, da ich meine GPU nicht für Anzeigezwecke verwende.
einpoklum - wieder Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.