z0rc/debumblebee

/usr/local/lib/debumblebee/libglx.so: cannot open shared object file: No such file or directory

chl501 opened this issue · 12 comments

In /var/log/Xorg.8.log shows

144.611 Failed to load /usr/local/lib/debumblebee/libglx.so: /usr/local/lib/debumblebee/libglx.so: cannot open shared object file: No such file or directory
144.611 LoadModule: Module glx does not have a glxModuleData data object.
144.611 UnloadModule: "glx"
144.611 Unloading glx
144.611 Failed to load module "glx" (invalid module, 0)

when starting up optirun glxinfo

Env: Debian wheezy, kernel 3.1.0-1-686-pae

How to fix this problem?

Thanks

z0rc commented

This is strange. How did you install debumblebee? Default installer won't produce this. Also provide the output of ls -l /usr/local/lib/debumblebee/libglx.so.

ls -l /usr/local/lib/debumblebee/libglx.so shows

lrwxrwxrwx 1 root staff 25 Dec 16 17:39 /usr/local/lib/debumblebee/libglx.so -> /usr/lib/nvidia/libglx.so

But under /usr/lib/nvidia does not have libglx.so

The way to install debumblebee is

  1. git clone https://github.com/z0rc/debumblebee.git
  2. sudo ./install.sh

glxinfo | grep rend shows

direct rendering: Yes
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2
GL_EXT_vertex_array_bgra, GL_NV_conditional_render,

z0rc commented

You have something really broken on packages level, definitely missing some key packages. Run dpkg-query -l | grep ii | grep nvidia and provide the output.

Command `dpkg-query -l | grep ii | grep nvidia' gives the following output.

ii nvidia-installer-cleanup 20111111+1 Cleanup after driver installation with the nvidia-installer
ii nvidia-kernel-common 20111111+1 NVIDIA binary kernel module support files
ii nvidia-kernel-dkms 290.10-1 NVIDIA binary kernel module DKMS source
ii nvidia-support 20111111+1 NVIDIA binary graphics driver support files
ii nvidia-vdpau-driver 290.10-1 NVIDIA vdpau driver

z0rc commented

You are missing tone of needed packages. For example, where is libgl1-nvidia-glx, which should be also installed? Are you using weird apt policies, like not installing recommended packages?

Here is complete list of needed packages: glx-alternative-nvidia, libgl1-nvidia-alternatives, libgl1-nvidia-alternatives-ia32, libgl1-nvidia-glx, libgl1-nvidia-glx-ia32, libglx-nvidia-alternatives, nvidia-alternative, nvidia-glx, nvidia-installer-cleanup, nvidia-kernel-common, nvidia-kernel-dkms, nvidia-settings, nvidia-support, nvidia-vdpau-driver, xserver-xorg-video-nvidia. But don't mindlessly install them, as as this case you'll just break your system.

The setting is all default (1st installing debian iso. 2nd upgrading to wheezy. 3rd download/ install debumblebee, etc.)

Before 2nd and 3rd steps, I've followed http://wiki.debian.org/NvidiaGraphicsDrivers#Installation-1 to install nvidia. Maybe this is the reason the installation was not completed (Because I was not aware that the system has the card auto-switch feature)?

Should I reinstall nvidia driver? What is the right way to do that?

Thank you for kindly help.

z0rc commented

Yes, that's the cause. Uninstall debumblebee, purge all nvidia packages (if there are left any) and run debumblebee installation, it will install nvidia packages automatically.

Uninstall debumblebee (sudo ./uninstall.sh); purge nvdia (aptitude purge ~nnvidia); then reinstall debumblebee (sudo ./install.sh) works ok.

ls -alh /usr/local/lib/debumblebee/libglx.so shows it links to /usr/lib/nvidia/current/libglx.so.290.10. And libglx.so.290.10 exists (-rw-r--r-- 1 root root 4.9M Nov 17 11:52 /usr/lib/nvidia/current/libglx.so.290.10).

However, `sudo optirun glxgears -info' still throws error where Xorg.8.log says

(EE) NVIDIA(0): No display devices found for this X screen.
...
(EE) Screen(s) found, but none have a usable configuration.

Given the command `dpkg-query -l | grep ii | grep nvidia' returns the following installed pkgs.

ii glx-alternative-nvidia 0.2.0 allows the selection of NVIDIA as GLX provider
ii libgl1-nvidia-alternatives 290.10-1 transition libGL.so* diversions to glx-alternative-nvidia
ii libgl1-nvidia-glx 290.10-1 NVIDIA binary OpenGL libraries
ii libglx-nvidia-alternatives 290.10-1 transition libgl.so diversions to glx-alternative-nvidia
ii nvidia-alternative 290.10-1 allows the selection of NVIDIA as GLX provider
ii nvidia-glx 290.10-1 NVIDIA metapackage
ii nvidia-installer-cleanup 20111111+1 Cleanup after driver installation with the nvidia-installer
ii nvidia-kernel-common 20111111+1 NVIDIA binary kernel module support files
ii nvidia-kernel-dkms 290.10-1 NVIDIA binary kernel module DKMS source
ii nvidia-support 20111111+1 NVIDIA binary graphics driver support files
ii nvidia-vdpau-driver 290.10-1 NVIDIA vdpau driver
ii xserver-xorg-video-nvidia 290.10-1 NVIDIA binary Xorg driver

Any additional procedure needs to performed? Or any step is missing?

Thank you for patiently help answer my questions.

z0rc commented

Have you restarted after uninstalling debumblebee and after installing? Also put the whole Xorg.8.log on some pastebin and provide the link.

Yes. After reinstalling drivers, os is restarted. The output of log is at http://pastebin.com/ptATawwQ

In addition, I notice that the log is written to xorg.8.log instead xorg.0.log. The config (used to log to xorg.8.log) uses /etc/X11/xorg.conf.nvidia whereas that (used to log to xorg.0.log) uses /usr/share/X11/xorg.conf.d. The config file (xorg.conf.nvidia) can be seen at http://pastebin.com/hnyhBZYv

z0rc commented

Put Option "ConnectedMonitor" "DFP-0" into Device section in xorg.conf.nvidia, this should help. Also I'd like to know output of dmidecode --string system-product-name, this is needed so further installations on this laptop model won't be affected by this issue.

The output of command `dmidecode --string system-product-name' is 4171A17

After adding ConnectedMonitor string to nvidia's Device section, `optirun glxgears -info' works without a problem.

Thanks for help solve this problem!