How hard to switch between Nouveau and Blob?
I have a 13" Macbook Pro (GF 9400M) that I've been running Ubuntu 10.04 on using the Nvidia binary driver. I've wanted to give Nouveau + Gallium a try, and I'm pretty sure that I can manage the installation (using xorg-edgers PPA).
The big question I have is this:
How hard is it to switch back and forth between Nouveau and Nvidia's binary driver when running a 2.6.35-rc kernel and updated X.org bits (via PPA)?
Power consumption is a biggie for me (laptop + heat + lap = ouch), and so I will probably have to run the NV driver some of the time. But I want to help out with Nouveau testing, and eventually Gallium development (video decode possibly). If it's as simple as enabling/disabling or installing/uninstalling the nvidia blob and rebooting, that's fine with me. If it requires reverting the X server package to a stock version and sticking with a 2.6.32 kernel, that might be a bit tougher. If it's as simple as quitting X, switching modules, and firing X back up, that'd be awesome.
I've still got my radeon X300 laptop laying around (w/ Gallium), and I've got a Radeon 4770 in my desktop (Gallium in the future), so I'll be able to accomplish my goals eventually, but I'd like to get this going on my current laptop as well.
nvidia provides their own openGL implementation. Thus a few files (like /usr/lib/libGL.so) will conflict between mesa and nvidia. You either need to re-install the correct package each time you switch, or use some symlink-trickery. Gentoo does the latter by default, on ubuntu you'd have to do your own scripting.
Then there may be problems with the kernel. Nvidia needs certain features to be on or off, nouveau needs others. I don't know if it's as simple as unloading a set of modules and loading the other. Worst case: you'll need to install two kernels and switch between them using grub. Again, some manual work required.
So switching can be made pretty easy, but you'll have to do some not-so-easy stuff to get there.
Alright, so in theory I might be able to use 2.6.32 w/ the Nvidia driver, and then set up a 2.6.35 kernel w/ Nouveau. At which point all I would have to do is appropriately switch the libGL stuff over between reboots. Hopefully the 2D drivers for NV/Nouveau can both co-exist with the newer X.Org version that the PPA will provide.
As long as I keep the kernel modules confined to their appropriate kernel module directories (or do some boot-time hackery), it should work... And if it doesn't, I've still got two other working OSes on the machine
Thinking out loud:
I might be able to set up some sort of kernel boot parameters + init script to auto-switch between drivers based on what selection I make in grub.
I'll have to also try just exiting X, switching to Nouveau driver module, and see if X loads (sans GL). If that works, then it could be possible to switch driver without rebooting, but would require some automation to switch back and forth to keep me sane. On some level this might already work as there is probably some point during the boot process that Nvidia takes over for Nouveau's KMS when the binary driver is being used... Just have to hope that NVidia's binary blob will unload itself cleanly to go the other way around.