bbswitch fails to turn off discrete graphics

The bbswitch README is quite clear on this:

Users of kmod should create /etc/modprobe.d/bbswitch.conf containing options bbswitch load_state=0 to set the default options. To load the module, systemd users should create /etc/modules-load.d/bbswitch.conf containing bbswitch.

In order to allow bbswitch to turn off the video card, you must also prevent the nvidia modules from loading (nouveau in your case). On my system, I have created /etc/modprobe.d/nvidia.conf containing:

blacklist nvidia
blacklist nouveau
options bbswitch load_state=0

Next, initrd should be updated using dracut --force

When using Bumblebee, the above is strictly not necessary (the daemon will unload modules and use bbswitch on start-up). Due to race conditions however, it is possible that the bumblebee daemon starts simultaneously while the nouveau driver is being loaded. Therefore it is still wise to blacklist the modules.

Note that when optirun foo fails under some conditions, the nvidia card is not disabled. That is why you observe that the nvidia graphics is still enabled.


I had similar problems, same output to reports as your first post. In answer to your question, to achieve switching, I ended up removing Bumblebee altogether. Purged it. Instead I used the ppa installation of the nvidia-340 driver, the latest among proprietary at the moment. This smoothly managed to blacklist nouveau and handle X server, performed the needed kernel and conf changes. It has prime and bbswitch as dependencies and it all worked fine from there. Then run 'sudo prime-select intel' to get intel to work with prime and update latest drivers for it. When I opened NVIDIA X Server Settings, I was able to switch smoothly For use of CUDA under Blender I also had to add nvidia-modprobe. For a more detaileddescription see this thread