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.
einpoklum
  • 8,772
  • 19
  • 65
  • 129
  • The solution for me was removing `bumblebee` and installing `nvidia-bumblebee` (on Debian Jessie, using the backports gfx packages). – Skeen Dec 08 '16 at 15:44

6 Answers6

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.

villasv
  • 299
  • 3
  • 7
  • 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 '19 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
svlasov
  • 194
  • 11
  • 2
    I'm actually only getting the X.Org founction module to begin with... see edit. – einpoklum May 04 '16 at 18:34
  • 1
    And how do you remove it? It's not listed on my `apt-get` packages. – villasv Oct 01 '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 01 '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
  • Sorry, I somehow let this conversation slip. So, in the same situation basically. I get the same `Xorg.0.log` lines as you, but `glxinfo` gives the same error messages as before. And I don't have `glx-alternative-nvidia` installed. – einpoklum Mar 16 '19 at 12:08
2

I solved it by uninstalling glx-alternative-nvidia

apt-get remove glx-alternative-nvidia
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.

Gokul NC
  • 119
  • 4
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.

einpoklum
  • 8,772
  • 19
  • 65
  • 129
  • 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 '19 at 11:47