Bumblebee-Project / Bumblebee

Bumblebee daemon and client rewritten in C
http://www.bumblebee-project.org/
GNU General Public License v3.0
1.29k stars 142 forks source link

Extension "GLX" missing #879

Open yamnikov-oleg opened 7 years ago

yamnikov-oleg commented 7 years ago

Good day. I'm experiencing an issue with optirun after updating nvidia driver. Trying to run optirun glxgears results in:

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

These are the lines from /var/log/Xorg.8.log, stating that some dependent library can't be loaded:

[  1463.604] (II) LoadModule: "glx"
[  1463.604] (II) Loading /usr/lib/nvidia-375/xorg/libglx.so
[  1463.604] (EE) Failed to load /usr/lib/nvidia-375/xorg/libglx.so: libnvidia-tls.so.375.66: cannot open shared object file: No such file or dir
ectory
[  1463.604] (II) UnloadModule: "glx"
[  1463.604] (II) Unloading glx
[  1463.604] (EE) Failed to load module "glx" (loader failed, 7)

Running ldd /usr/lib/nvidia-375/xorg/libglx.so displays:

    linux-vdso.so.1 =>  (0x00007ffe2e0f1000)
    libnvidia-tls.so.375.66 => not found
    libnvidia-glcore.so.375.66 => not found
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f134aa65000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f134a861000)
    /lib64/ld-linux-x86-64.so.2 (0x000055973f2d7000)

Running locate libnvidia-tls.so.375.66 displays these paths:

/usr/lib/nvidia-375/libnvidia-tls.so.375.66
/usr/lib/nvidia-375/tls/libnvidia-tls.so.375.66
/usr/lib32/nvidia-375/libnvidia-tls.so.375.66
/usr/lib32/nvidia-375/tls/libnvidia-tls.so.375.66

The problem started appearing after an update of nvidia-375 package from 375.39 to 375.66.

I've tried reinstalling packages:

I've checked bumblebee config (here it is), it points to nvidia-375 directories. I've checked for settings of update-alternatives (here), they correcly point to mesa directories.

I'd hope someone could help me resolve the issue.

Edit: I'm sorry, here my system information:

OS: elementary OS 0.4 (based on Ubuntu 16.04) 64-bit
Nvidia card: GeForce GTX 850M
neilcsmith-net commented 7 years ago

Same issue! I did notice that running under Prime those ldd not found links resolve (unsurprisingly), which I assume shows which of the two options should be used, but I couldn't work out a way to do same with Bumblebee.

That's on Ubuntu 16.04. You? Any thoughts on where to get a package of 375.39 from now?

yamnikov-oleg commented 7 years ago

@neilcsmith-net I'm on elementary OS 0.4, but that's basicly Ubuntu 16.04. I could not resolve the issue since posting it here, so I just removed bumblebee and switched to official nvidia-prime package :-\ It requires session restart when switching cards, but at least it's still being supported and updated.

spam-and-abuse commented 7 years ago

Exact same issue here :(.

gudvinr commented 7 years ago

Found a workaround. Use sudo prime-select intel to switch GPU. Just in case if you used mesa. Then add next lines to /usr/lib/nvidia-375-prime/ld.so.conf (or to the mesa conf if you don't want to use prime-select)

/usr/lib/nvidia-375
/usr/lib32/nvidia-375
TheTesla commented 7 years ago

This seems to be working in the ubuntu ppa of bumblebee 3.2.1-98, but the issue is still in this develop branch. Yes the workarround works, but please find out why this happens.

TheTesla commented 7 years ago

I also found, there are two different libraries with different size:

-rw-r--r-- 1 root root 13080 Mai  1 23:32 /usr/lib/nvidia-375/libnvidia-tls.so.375.66
-rw-r--r-- 1 root root 14480 Mai  1 23:32 /usr/lib/nvidia-375/tls/libnvidia-tls.so.375.66
pjf commented 7 years ago

This sounds a lot like the issue described in #759. In particular, I found this solution got things working for me.

TheTesla commented 6 years ago

With driver nvidia-387 I got a permission problem. It only works with: optirun sudo glxgears