nvidiadebian-stretchoptimus

Debian bumblebee problems


I am on a clean minimal Debian Stretch install with just a couple of graphical packages installed. I installed these:

sudo apt install xserver-xorg-core xinit bumblebee-nvidia primus primus-libs:i386 libgl1-nvidia-glx:i386

But I could swap proprietary bumblebee-nvidia with open source bumblebee.

I also put my user to the bumblebee group:

sudo adduser $USER bumblebee

After reboot my Intel card works fine:

ziga@ziga-laptop:~$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

But my Nvidia card which is Geforce 610M won't work when called with optirun:

ziga@ziga-laptop:~$ optirun glxinfo | grep OpenGL
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: wrong ELF class: ELFCLASS32
/usr/lib/nvidia/libGL.so.1: cannot open shared object file: No such file or directory

If I use apt to search for my card I get this:

ziga@ziga-laptop:~$ sudo apt search 610M
Sorting... Done
Full Text Search... Done
nvidia-legacy-304xx-driver/stable 304.137-5~deb9u1 amd64
  NVIDIA metapackage (304xx legacy version)

nvidia-legacy-304xx-kernel-dkms/stable 304.137-5~deb9u1 amd64
  NVIDIA binary kernel module DKMS source (304xx legacy version)

nvidia-legacy-304xx-kernel-source/stable 304.137-5~deb9u1 i386
  NVIDIA binary kernel module source (304xx legacy version)

xserver-xorg-video-nvidia-legacy-304xx/stable 304.137-5~deb9u1 amd64
  NVIDIA binary Xorg driver (304xx legacy version)

From this I would install nvidia-legacy-304xx-driver but I am afraid this won't work well with other packages that I have installed above. Is it possible that I also need xserver-xorg-video-nvidia-legacy-304xx?

Can anyone explain to me which packages to install and why?


Well, I couldn't wait any longer and I tried installing the xserver-xorg-video-nvidia-legacy-304xx. It really looks like this package is in conflict with bumblebee-nvidia package. I got this after installation:

nvidia-legacy-304xx:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.9.0-8-amd64/updates/dkms/

depmod...

DKMS: install completed.
Setting up nvidia-legacy-304xx-driver (304.137-5~deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for glx-alternative-nvidia (0.8.3~deb9u1) ...
Processing triggers for menu (2.1.47+b1) ...
Processing triggers for update-glx (0.8.3~deb9u1) ...
Processing triggers for glx-alternative-nvidia (0.8.3~deb9u1) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/nvidia/bumblebee because link group glx is broken
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for initramfs-tools (0.130) ...
update-initramfs: Generating /boot/initrd.img-4.9.0-8-amd64
Processing triggers for bumblebee (3.2.1-14) ...

I uninstalled the xserver-xorg-video-nvidia-legacy-304xx and tried to install the nvidia-legacy-304xx-driver package which also installed the xserver-xorg-video-nvidia-legacy-304xx package. It returned no warnings and no errors, but after reboot optirun glxinfo | grep OpenGL command still fails...

It looks like there is no solution to this even on Debian which was supposed to be stable?


Like @Antonio Orizondo Leyva suggested I installed the packages he suggests and executed the command sudo update-alternatives --config glx and I got to choose different options for my GPU's:

There are 3 choices for the alternative glx (providing /usr/lib/glx).

  Selection    Path                       Priority   Status
------------------------------------------------------------
  0            /usr/lib/nvidia/bumblebee   125       auto mode
  1            /usr/lib/mesa-diverted      5         manual mode
  2            /usr/lib/nvidia             100       manual mode
* 3            /usr/lib/nvidia/bumblebee   125       manual mode

Press <enter> to keep the current choice[*], or type selection number: 

I tried selecting every single one of them and then rebooted, but the end result was the same... Except for the second option (nvidia) which after reboot said it can't find openGL.1.so or something... So it is impossible to even use the Nvidia card by itself!?

Any other Ideas?


Solution

  • After reading this Debian bug report I realized that I ought to install package libgl1-nvidia-glx. This fixed my problems, but I have to criticize Debian for this, because on their official Bumblebee webpage it is said to use this command to install:

    sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install bumblebee-nvidia primus primus-libs:i386 libgl1-nvidia-glx:i386
    

    But this command is missing the crucial libgl1-nvidia-glx which needs to be installed together with its i386 counterpart in order for all apps to work!

    Soo a quote to Debian:

    While you are the best distribution on this planet and you seem to be the most stable, make sure to keep your official Wiki updated like Arch does! Only like this your users won't have negative experiances like I did and more will choose your distribution.