The bbswitch README is quite clear on this:
Users of
kmod
should create/etc/modprobe.d/bbswitch.conf
containingoptions bbswitch load_state=0
to set the default options. To load the module, systemd users should create/etc/modules-load.d/bbswitch.conf
containingbbswitch
.
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.