SDB Talk:NVIDIA Bumblebee
What does "Switching between Nouveau and Nvidia driver" mean? DDX? Kernel module? If DDX, there's a third option, modesetting, five+ year old DDX technology that's much newer than the reverse-engineered nouveau DDX.
A few notes on using Bumblebee with Tumbleweed and Nvidia drivers:
Having used this configuration for a couple of years now - established as described in this SDB - I find that it works quite well and is relatively stable. It has a couple of stumbling blocks, however, that I have not yet found covered in any online documentation:
- Whenever the third version number of the Linux kernel changes (e.g. from 5.6.x to 5.6.y), I need to reinstall the Nvidia drivers. If I don't do this, the Bumblebee system will be broken. I believe this is due to stuff needing to be re-linked against the new kernel - but since it does not happen automatically (at least not on my system), I think users need to know that this is an issue they must deal with. I suppose I could script it myself to make it happen automatically ... but then there is a second, deeper issue:
- Whenever the second version number of the Linux kernel changes (e.g. from 5.x to 5.y), the Nvidia drivers from the Bumblebee repository need to be replaced with new versions. The old ones will no longer work, not even after a reinstallation - they will fail with some kind of "access rights violation". Unfortunately the new versions of these special Bumblebee Nvidia drivers are usually delayed for two or three weeks after such a kernel upgrade. During this interim period you cannot upgrade to the new kernel without breaking Bumblebee. What's more, I do believe that in this period any new users who are trying out a Bumblebee/Nvidia configuration will be forced to conclude, after lengthy struggles, that they cannot make it work.
Issue number two is a real killer if you don't know what's going on. It took me a good while to figure out what was breaking my system and how to avoid it. The trick is to watch the kernel version numbers, do the reinstall when the third number changes, and whenever the second number changes you wait - that is, hold all upgrades until the new Nvidia drivers are ready. This is hardly an elegant solution, but it keeps the system running.
If you are willing to run with "community packages" instead of the Nvidia drivers from the semi-official Bumblebee repository, you can shorten the time it takes (after a major kernel upgrade) before a working Nvidia driver becomes available. Good-hearted people (presumably) are providing these upgraded drivers - to find them, do an "all distributions" package search for nvidia-bumblebee, then expand the "community packages" section for your specific distribution (in my case Tumbleweed).
After a recent, lengthy dry spell I gave in and tried this: The "community" driver with the highest version number turned out to work with my current Tumbleweed kernel.
I don't particularly love this solution either, but I have a Skylake laptop with the external display port locked (inexplicably) to the Nvidia GPU, and I have been unable to find another configuration that gives me the same flexibility - so for now I stick with Bumblebee.