support openness on the software side, but monopolies on the hardware side.
I have the freedom to choose non-free components on the free system. You don't have choice on non-free systems. But it seems some people don't want freedom to choose on Linux either. It's either all OSS or all proprietary.
No room for people who just care about getting the best, be it open or closed. Gotta choose one extreme or the other.
Print an Open Risc, tune it like Loongson (with emulation capability and 3D instructions), and i will buy it from you, and i will use a free software rasterizer wit LLVM.
There are basically only three solutions to this problem:
1) Change the license of Linux to make module linking more permissive
2) Change the license of the Nvidia driver to be GPL-compatible
3) Design and implement a new interface that doesn't create derivative works when modules link to it
There is no "Alan and Linus relent and decide it's okay" option. They don't have that authority under copyright law.
The whole defence for Nvidia's driver (and the reason why Linus tolerates it, despite hating it) is that it is a driver which runs on several operating systems and as such it is not derivative of the Linux kernel, it merely interfaces with it. It does the same thing on all systems, so it can run just fine without Linux. It ran on Windows before it ran on Linux, and it can run just fine without Linux, so there is a good argument that the current blob is not derivative of Linux kernel code.
However, if you start adding functionality which uses specialised internal functions of the GPLed kernel, which only exists in the Linux kernel, and for the express purpose of tight cooperation with other (partly GPL) drivers which only exist inside the Linux kernel, then it is hard to argue that these parts of your blob are not derivative work of the kernel. You can argue the X11 also works on BSDs, so it's not derivative of that, but DMA_BUF is Linux-only, and GPL to boot. You can't claim it's generic: without Linux, it cannot possibly work. It was especially written only to work with a special, Linux-only subsystem. That's as derivative as you can get. And if you GPL those parts as per licence requirements, then you have to GPL it all.
Nvidia's strategy worked well as long as they didn't touch any part of Linux and did it all themselves. Optimus screwed them up -- you can't avoid GPL code, and you can't simply wish the licence away like they are trying to.
This is an excellent summary of the situation. I wanted to post it again, so it doesn't get lost in the middle of that troll-fest.
It's unfortunate that so many people are unable to look at the situation from a legal standpoint like this. All people seem to want to do is blame someone (both sides do this) and advocate doing things that blatantly break the law.