11

I installed a fresh version of Ubuntu 18.04 on my optimus laptop then I followed the instructions from this site to install the bumblebee package. It succeeded but I saw a line during the installation which stated that it couldn't remove the nouveau module. I did a reboot and I ran optirun --status to see if it's working and it outputted that discrete nvidia card is disable, then I tried running optirun glxgears and this error message came up.

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

I have tried reinstalling Ubuntu and bumblebee.

I have an NVidia Geforce 940MX card.

fosslinux
  • 3,831
Paralyz3d
  • 261

2 Answers2

22

There was one major change in nvidia driver that prevents bumblebee from working - glvnd (https://github.com/NVIDIA/libglvnd). In short, bumblebee is running a separate instance of xorg on a separate display, which glvnd cannot handle. This behaviour should be disabled for bumblebee. Put the following line to /etc/environment

__GLVND_DISALLOW_PATCHING=1

In order to make glvnd work, nvidia also changed directories where related files/drivers are located. Bumblebee should be reconfigured accordingly (/etc/bumblebee/bumblebee.conf):

LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input

Last issue that prevents bumblebee from unloading nvidia drivers is caused by nvidia-drm which is not supposed to be loaded in the bumblebee enviroment. This is easy to disable by aliasing it to off (/etc/modprobe.d/blacklist-nvidia.conf):

blacklist nvidia
blacklist nvidia-drm
blacklist nvidia-modeset

#alias nvidia off
alias nvidia-drm off
#alias nvidia-modeset off

nvidia-modeset is not needed as well, but loading it doesn't hurt and you may want to disable it as well.

I would also disable gpu manager (What does gpu-manager do?), as it's not needed in this case (/etc/default/grub): add nogpumanager to the GRUB_CMDLINE_LINUX_DEFAULT section.

I also had some issues with nvidia-persistenced service in the past (https://docs.nvidia.com/deploy/driver-persistence/index.html#persistence-daemon), you may want to disable it as well by issuing sudo systemctl disable nvidia-persistenced.

NOTE: I'm using nVidia 390 from https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

clover
  • 540
  • 3
  • 10
  • According to https://launchpad.net/ubuntu/+source/systemd/237-3ubuntu10.2 aliasing nvidia-drm to off may not be longer necessary (assuming one is using up-to-date proposed package). – Mateusz Szczepańczyk Jul 12 '18 at 20:53
  • In my case systemd wasn't causing any problems with "locking" nvidia-drm. But this module prevents bumblebee from unloading nvidia properly. – clover Jul 12 '18 at 21:03
  • 1
    This answer fixed it for me. I looked into timrichardsons' excellent work around prime-select however I think my gpu is too old for those driver features (nvidia's drivier didnt have prime-select either) – Baggers Jul 23 '18 at 16:42
  • 3
    I'm flabbergasted by all the problems Linux suffer from regarding optirun/Optimus/Nvidia/Bumblebee, this is way too much issues for an average user. – Melroy van den Berg Aug 04 '18 at 15:56
0

Bumblebee has sadly not been updated since 14.04. You can still get it to work however, but I do not know of any existing 18.04 Tutorial.

You could however give this a shot;

https://www.reddit.com/r/linuxquestions/comments/7ulymw/for_anyone_struggling_to_set_up_bumblebee/

I got the exact same problem as you, buggy drivers, having to reboot after switching between gpu's (and this making my nvidia card unloadable, thanks nvidia).

Linux is great, but nvidia's driver support is poor, and because of it, a lot of optimus people pull their hair out trying to make it work, including me.

I got the exact same gpu as you do.