24

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.
1
  • The solution for me was removing bumblebee and installing nvidia-bumblebee (on Debian Jessie, using the backports gfx packages).
    – Skeen
    Commented Dec 8, 2016 at 15:44

6 Answers 6

9

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.

1
  • 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
    Commented Mar 16, 2019 at 19:45
2

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
6
  • 2
    I'm actually only getting the X.Org founction module to begin with... see edit.
    – einpoklum
    Commented May 4, 2016 at 18:34
  • 1
    And how do you remove it? It's not listed on my apt-get packages.
    – villasv
    Commented Oct 1, 2016 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
    Commented Oct 1, 2016 at 17:47
  • Minor nitpick: why do you say cat file | grep pattern? Why not grep pattern file?
    – Timo
    Commented Jul 10, 2018 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
    Commented Jul 11, 2018 at 15:06
2

I solved it by uninstalling glx-alternative-nvidia

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

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

1

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.

3
  • 1
    I don't have the first directory. In fact, I don't even have an /etc/X11/xorg.conf for some reason.
    – einpoklum
    Commented Feb 16, 2018 at 12:26
  • 1
    You can have it created for you with sudo nvidia-xconfig Commented Apr 21, 2018 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
    Commented Jan 25, 2019 at 15: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
  • 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
    Commented Mar 16, 2019 at 11:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .