16

I have a machine with an NVIDIA GeForce which I don't use for display purposes (i.e. the monitor is not connected to it), and some lackluster on-board graphics chip. (Below you'll find the relevant lshw listing.)

My X sessions work just fine; but when most of my X apps (which require any sort of fancy GFX or a toolkit) run, they emit the following error message:

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

My question is: How can I make my apps notice the non-NVIDIA GLX library and use it (without removing the NVIDIA card and without switching the monitor to its output ports of course)?

I'm using Debian/Linux Stretch 64bit, kernel version 4.2.6, with LXDE.

Output of 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)

Output of 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".

Output of 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"

Additional information:

  • I do not have the glx-alternative-nvidia package installed.
  • If I boot from a live-image USB of Devuan ASCII, the problem does not manifest.
  • If I create an xorg.conf using Xorg :1 -configure, this is what it produces (2 'Device' sections, one associated with the intel driver, another with nouveau); but if I comment-out the nouveau section and try running Xorg with that configuration - it won't load, saying it can't find any screens.
  • The solution for me was removing bumblebee and installing nvidia-bumblebee (on Debian Jessie, using the backports gfx packages). – Skeen Dec 8 '16 at 15:44
8

I arrived here after installing nvidia-current from the package repository, and got stuck on a login loop. I looked at the log on ~/.xsession-errors and found the mentioned error:

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

I already had uninstalled nvidia-current and the problem persisted. I also didn't have glx-alternative-nvidia installed. As a last resort, I simply uninstalled everything from nvidia on my Ubuntu (including CUDA stuff), and it worked after the restart.

  • Sorry for not replying to this before. I don't have nvidia-current installed, nor, in fact, any nvidia- package. But I do have the latest CUDA installed, with the accompanying driver (the manual installer from nvidia). I know that's an ugly way to do things, but I do need the latest version. – einpoklum Mar 16 at 19:45
1

First identify which glx module is in use:

$ 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 Jessie my solution was to remove glx-alternative-nvidia package. So after reboot:

$ 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
    I'm actually only getting the X.Org founction module to begin with... see edit. – einpoklum May 4 '16 at 18:34
  • 1
    And how do you remove it? It's not listed on my apt-get packages. – villasv Oct 1 '16 at 17:14
  • 1
    @VillasV you need to enable contrib repository to see it. And probably you don't even have it installed, and thus your cause of missing glx extension error is different. – svlasov Oct 1 '16 at 17:47
  • Minor nitpick: why do you say cat file | grep pattern? Why not grep pattern file? – Timo Jul 10 '18 at 17:03
  • @Timo, just a personal preference. In the shell history I find it easier to see how the pattern evolved if it goes last. – svlasov Jul 11 '18 at 15:06
1

I had issues after upgrading Debian 9 after clicking the reboot to upgrade prompt.

When installing initially I followed the steps found in the wiki https://wiki.debian.org/NvidiaGraphicsDrivers

The important ones for me were...

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

Then performed a reboot

0

Install OpenGL in your computer, then as mentioned here, add the following to your /etc/X11/xorg.conf:

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

(Replace nvidia-VERSION with your directory name) This worked for me.

  • 1
    I don't have the first directory. In fact, I don't even have an /etc/X11/xorg.conf for some reason. – einpoklum Feb 16 '18 at 12:26
  • 1
    You can have it created for you with sudo nvidia-xconfig – Gabriel Fair Apr 21 '18 at 19:56
  • @GabrielFair: I absolutely should not do that. This will likely make my nVIDIA card be used for X; and even if it won't - it is conceptually inappropriate. – einpoklum Jan 25 at 15:17
0

I solved it by uninstalling glx-alternative-nvidia

apt-get remove glx-alternative-nvidia
  • I don't even have the glx-alternative-nvidia package installed... – einpoklum Jan 21 at 9:17
0

Got it "extension "GLX" missing" when I "dist-upgraded" my debian (8 -> 9). The solution was pretty simple.

Download your driver installer on 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]

After the installer did its job, the GLX went back.

ps: If you user repos, I think an dpkg-reconfigure "driver_package_name" would do the same.

  • 1
    If I'm not mistaken, this will make X use the nVIDIA GLX module. Which is not what I want, as I'm not using my GPU for display purposes. – einpoklum Mar 16 at 11:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.