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 un peu terne sur -Puce graphique. (Ci-dessous, vous trouverez la liste lshw
appropriée.)
Mes sessions X fonctionnent très bien; mais lorsque la plupart de mes applications X (qui nécessitent une sorte de GFX sophistiqué 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 64bit, 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:
glx-alternative-nvidia
package installé.xorg.conf
en utilisant Xorg :1 -configure
, this est ce qu'il produit (2 sections 'Device', une associée au pilote intel
, une autre à nouveau
); mais si je commente la section Nouveau et essaie d'exécuter Xorg avec cette configuration - il ne se charge pas, en disant il ne trouve aucun écran.Je suis arrivé ici après avoir installé nvidia-current
à partir du référentiel de packages, et obtenu bloqué sur une boucle de connexion . J'ai regardé la connexion ~/.xsession-errors
et a trouvé l'erreur mentionnée:
Xlib: extension "GLX" missing on display ":0".
J'ai déjà désinstallé nvidia-current
et le problème a persisté. Je n'avais pas non plus de glx-alternative-nvidia
installée. En dernier recours, j'ai simplement désinstallé tout de nvidia
sur mon Ubuntu (y compris les trucs CUDA), et cela a fonctionné après le redémarrage.
Je l'ai résolu en désinstallant glx-alternative-nvidia
apt-get remove glx-alternative-nvidia
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 glx-alternative-nvidia
paquet. 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
J'ai eu des problèmes après la mise à niveau de Debian 9 après avoir cliqué sur le redémarrage pour mettre à niveau l'invite.
Lors de l'installation initiale, j'ai suivi les étapes trouvées dans 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
J'ai "l'extension" GLX "manquante" lorsque j'ai "mis à niveau" mon debian (8 -> 9). La solution était assez simple.
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 utilisateur repos, je pense qu'un dpkg-reconfigure "driver_package_name" ferait de même.
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-VERSION
avec le nom de votre répertoire) Cela a fonctionné pour moi.