No closed source drivers on Linux anymore

A few months ago I wrote to Linus and RMS asking them to do something about the messy situation of non-GPL kernel modules. Linus back then refused to take a position, but it seems that under pressure, something is changing. Starting Jan 2008, no non-GPL modules will be allowed again to be executed by the kernel according to a new patch.

While I don’t necessarily think that this is the best strategy for an emerging marketplace OS, I think it’s good that there is a definite position, so we all will know what to expect from our software. I just wish that they could reduce the allowed time to June 2007 instead of Jan 2008. The sooner the better. Six months is a lot of time for the suits to decide if they want to go open source or not (usually there is not much proprietary software that drivers depend on so it’s not technically and legally difficult to open a driver up).

Post a comment »

Timbobsteve wrote on December 14th, 2006 at 4:59 AM PST:

I wonder if such a move would help persuade Nvidia/ATI to open their drivers. I want xen-aware drivers for Direct Hardware Access to my graphics card, but that’s another story.

On the other hand from a non-technical/developer POV some people may see this move as further segregation of Linux and propriatary software.

I am all for it though. If it will help development and better the kernel then I say YES!


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 5:02 AM PST:

Well, apparently Linus still doesn’t want to get a position. Kinda sucks.


Kenneth wrote on December 14th, 2006 at 6:02 AM PST:

> if nvidia opens their drivers , perfect

That won’t happen since, as far as I’ve read, nVidia does not own all of the intellectual property that goes into their driver and hardware. So they cannot open-source the driver unless all other involved parties also agree on it.

So, the only result of disallowing binary only drivers would lead to crappy or no support for some hardware that work more or less fine today. I think its better to let to users choose if they want to run binary only drivers or not. I prefer GPL drivers, so I make sure that all of my hardware (where possible) do have GPL driver, but I use the binary version if it significantly better than the GPL one (like nVidia driver vs the GPL driver) or of no GPL driver exists.

Pushing the binary only driver to userspace is an even worse option. I will make the Linux experience a less pleasant one for the user since performace will suffer and it will require that part of the driver is located in kernel space anyway since interrupt handlers cannot be placed in userspace today.


Andrew wrote on December 14th, 2006 at 6:03 AM PST:

>I wonder if such a move would help persuade Nvidia/ATI to open their drivers

Probably not. nVidia is pretty much in the clear even if this were to be implemented

I disagree with Eugenia and think Torvalds current stance

(So go get it merged in the Ubuntu, (Open)SuSE and RHEL and Fedora trees first. This is not something where we use my tree as a way to get it to other trees. This is something where the push had better come from the other direction.)

is the best approach


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 6:10 AM PST:

Andrew, I never said that I agree with the ban of non-GPL modules. Personally I believe that major OSes should not have such limitations. However, the current non-position of Torvalds on Linux makes things MUCH WORSE for the users rather than only allow GPL modules. At least, if this was the rule, we would know what to expect from our OSes. Right now, it’s one big mess.

The fault is Torvalds and OSDL’s for not taking a position on the matter if closed source drivers are indeed legal or not. I don’t care if he decides to allow non-GPL modules or not, he just that he must make up his mind. Read my linked email to him above to understand what I mean.


Luis wrote on December 14th, 2006 at 6:42 AM PST:

To put it bluntly, this is an unfortunate idea from a few kernel developers who must have been drinking when they conceived it. Obviously Linus laughed about it.

No one should be mistaken. There is NOTHING illegal in loading non-GPL modules in the Linux kernel. To stop this with technical measures is what goes against the GPL (and this is why GPLv3 will make it clear).

The problem with linking… Yes, if you DISTRIBUTE your own code linked to GPL code, you must do it under the GPL (even if your code is not a derivative work of the GPL code). But in the case of the famous closed drivers, they are not being distributed linked to the kernel (not by the authors of the drivers, I mean). They are distributed independently. And here is where the “derivative” concept comes in. If those modules can be considered as derivative works of the kernel, then they must be distributed under the GPL even if they are distributed alone. If they are not derivative works, it’s fine to distribute them under a closed license as long as they’re not distributed linked to the kernel. And it’s fine for users to link them to the kernel themselves and use them.

So if anyone is doing anything illegal, it’s NVidia, ATI, etc… by distributing their drivers on their web pages. But seriously, does anybody think that they are doing this without being absolutely sure that it’s legal? If they are doing it, it’s because they don’t think at all that it’s a gray area. Their lawyers must have told them that it’s a white area and there’s 0% chance that they could lose if taken to court.

Those kernel developers who think they are illegal should go and sue those companies (and lose, of course), or else they should shut up and not bother users with stupid threats.


stew wrote on December 14th, 2006 at 8:28 AM PST:

I wouldn’t be surprised if in the minute this happens, all CAD/high-end 3d moved over to OpenSolaris.

The presence of drivers for cards like the FireGL or Quadro is essential for companies like AliasAutodesk or Avid to port their software. Take their drivers away and they’ll take their software avay.

nVidia opening their drivers? You wish.


Andrew wrote on December 14th, 2006 at 8:55 AM PST:

>Andrew, I never said that I agree with the ban of non-GPL modules.

No, no. I meant I disagreed with your views on Torvalds ‘non-position’ though I think he has taken one now.

It is essentially up to the main distros to decide whither they want this or not, rather than having someones will imposed upon them.

At least going by his post, I don’t know if that’s going to be his actual policy.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 9:02 AM PST:

Linus has NOT taken a position to the real matter here (not that stupid patch). This is a non-position to the question “are non-gpl modules legal or not”.

And this is VERY bad in this case, because distros give access to non-free modules only after painful installation and not by default. As a user, I want things to work out of the box and not having to find special repositories to install and configure things manually. And then, you have distros like Novell who said that they don’t want to even link to non-gpl modules. This whole mess is bad for the user experience.

Linus must not let the issue lingering. He should take a position regarding the LEGALITY of the non-gpl modules so distros can actually offer a smooth experience to the user. Right now, there are lawyers out there (distro’s laywers) who shout at their employers that non-gpl modules are illegal according to the GPL. But instead of having Linus to come out and say “yes, it’s illegal”, or “no, it’s not, I want them to be legal”, he takes a NON POSITION. *This* is what bothers me. Not the fact that he shot down that patch.


Alastair M wrote on December 14th, 2006 at 9:15 AM PST:

If you don’t want closed source stuff in your kernel then look to (say) OpenBSD. If you are happy to trust closed source modules in your kernel then at least have one party taking responsibility for drivers and hardware (e.g. Sun, Apple).

For Linux I think closed source drivers are a nuisance; it means show stopping bugs are near impossible to locate and often drivers don’t report with same metrics as others.

Maybe Linux should have a guru center with a staff of a dozen people who have all signed a gazillion NDAs and can have the source to EVERYTHING and do arbitration.

Another thought is to have a database of hardware support in different operating systems …. I won’t buy components for any purpose that can’t be redeployed to open source operating systems.


Mark wrote on December 14th, 2006 at 9:19 AM PST:

“Linus has NOT taken a position to the real matter here (not that stupid patch). This is a non-position to the question “are non-gpl modules legal or not”.”

Because he has NO WAY to do that. Whether non-gpl modules are allowed are not is a legal grey area and it does not matter what Linus position. He does not hold the copyright for the complete Linux kernel.

In some cases, the module would fall under derivative work and should be GPL’ed. In other cases, they are clearly not. For example, there is no way any court would accept that windows drivers loaded through ndiswrapper should be GPL’ed. Talk to a lawyer before showing off your ignorance on this matter.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 9:26 AM PST:

I am not ignorant Mark, you should be careful how you talk to my blog — you are a guest here. When I say that Linus should take a position, of course and it means that he will have to talk to OSDL’s and FSF’s lawyers about it.

The point is, what he can do from now on about the problem. He MUST find a way so this issue is NOT a grey area. It should NOT be a grey area. There should be a clear path for both developers and the users, because currently usability is worse than it could be just because distros are playing chess with the issue.


Dave wrote on December 14th, 2006 at 9:43 AM PST:

I was curious why Eugenia thought it was so important to get a clarification from Linus. RMS has no say in the matter, except we probably already know what his position would be for something like Hurd.

But it would be nice if we could clear up the shenanigans regarding whether binary drivers would be shipped on CDs or not. But Mark is right, this is a gray area that is unlikely to ever be resolved to a definitive degree.

P.S. Eugenia, don’t start crying like a little girl because someone isn’t kissing your ass. And saying stuff like “talk to my blog” is stupid.


Mark wrote on December 14th, 2006 at 9:47 AM PST:

“I am not ignorant Mark, you should be careful how you talk to my blog — you are a guest here”

Its a public blog and you have comments enabled. If you dont like what I say you can respond back or you can use moderation. There is no reason for me to be careful to call you ignorant in this matter which is amply clear to me from your responses. It’s a free world.

“When I say that Linus should take a position, of course and it means that he will have to talk to OSDL’s and FSF’s lawyers about it.”

Let me tell you what the lawyers would. There is simply no way Linus position is going to matter in the court unless he has full copyrights of the Linux kernel.

“The point is, what he can do from now on about the problem. He MUST find a way so this issue is NOT a grey area. It should NOT be a grey area”

You are dreaming. There is NO WAY the legal grey area can be cleared. GPL is a international license and GPL cannot clarify this area since it would violate several geographical laws which are conflicting from one another. GPL simply says that derived code should be under the same license. Now whether a kernel module is GPL’ed or not does not depend on linking, IPC or any technical mechanisms. Linus has clearly taken a position consistent with this legal interpretation.

You want him to talk a black and white position which is IMPOSSIBLE legally. Even if the does take such a position it does not matter as he is a MINORITY copyright holder.I can very well sue anyone for violating the license of MY copyrights in the Linux kernel based on my interpretation and Linus has zero say on it. None whatsoever.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 9:54 AM PST:

Dave, this is my blog, you somehow think that this is Slashdot (or osnews) over here. I didn’t ask Mark to kiss my ass. I asked him to be polite. If he can’t be polite, or you for that matter, then you have NO place in this discussion and I request you don’t reply again over here. Go reply to osnews.com if you want to be rude. Over here, it’s MY territory, NOT yours.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 10:12 AM PST:

>It’s a free world.

NOT on my blog. My blog is under my rules. If you don’t want to behave like a good guest, please do not reply here again.

>Now whether a kernel module is GPL’ed or not does not depend on linking

This is where you are wrong. If a piece of code links to GPL’ed code, then it is supposed to be under the GPL or an FSF-approved license itself, or it would be in violation of the GPL License. The GPL license is very clear about this, and this is what creates the problem: these non-free modules are linking to a GPL kernel, and this is NOT allowed under the clear instructions of the GPL.

This is why the LGPL was created: so non-free apps can link to LGPL libraries. This was the very reason of the existence and creation of the LGPL. This is why most libraries are LGPL and not GPL. But the kernel is in reality one big library and it’s under the GPL, not the LGPL. Legally and technically speaking, non-free drivers that link directly to the Linux kernel ARE illegal.

The NDISWrapper is a shell loader, its Windows drivers do not link to the Linux kernel directly, plus NDISWrapper does not ship with any drivers anyway. But the Nvidia and ATi drivers do and according to many, these drivers are illegal.

This is my last comment on the subject.


Mark wrote on December 14th, 2006 at 10:19 AM PST:

“NOT on my blog. My blog is under my rules. If you don’t want to behave like a good guest, please do not reply here again.”

Where are those rules? Its a public blog. If you leave your blog open for comments from everyone, everyone will comment the way they want to. If you dont like it, be a moderator. Dont play silly warnings.

“This is where you are wrong. If a piece of code links to GPL’ed code, then it is supposed to be under the GPL or an FSF-approved license itself, or it would be in violation of the GPL License. The GPL license is very clear about this, and this is what creates the problem: these non-free modules are linking to a GPL kernel, and this is NOT allowed under the clear instructions of the GPL.”

GPL does not mention linking ANYWHERE. What about Nvidia which has a GPL shim and then uses their proprietary driver on top of the shim? Is that a valid workaround? The problem is that proprietary driver folks dont directly link to the kernel. They distribute it separately. So the linking argument by itself wont stand in court.

“But the kernel is in reality one big library and it’s under the GPL, not the LGPL. Legally and technically speaking, non-free drivers that link directly to the Linux kernel ARE illegal.”

Yes but non-free drivers rarely link directly if ever. They use shims or let users link it which is not a violation. Anyway this is a side conversation. The main topic, I notice that you skipped that part where I say Linus position simply does not matter which I assume you understand clearly why now.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 10:24 AM PST:

>Its a public blog.

It’s also a PERSONAL blog. You should have the COURTESY to be POLITE. This is a rule that it’s generally practiced for any personal blog.

You don’t barge in to the people’s homes and become impolite on them. That’s not how it usually works. I expect the same courtesy in my blog. If you want to shell out on me, go to my osnews.com comment and reply there like that (and then it will be up for the moderators to decide on your impoliteness). But on my blog, impolite people are NOT welcome.

You have mistaken my blog for Slashdot.


This is the admin speaking...
Eugenia wrote on December 14th, 2006 at 10:37 AM PST:

>GPL does not mention linking ANYWHERE.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.”
http://www.opensource.org/licenses/lgpl-license.php

and

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.”
http://www.opensource.org/licenses/gpl-license.php


Mark wrote on December 14th, 2006 at 10:57 AM PST:

“It’s also a PERSONAL blog. You should have the COURTESY to be POLITE. This is a rule that it’s generally practiced for any personal blog.”

You are being ignorant about legal matters is polite. You are a clueless stupid ass would be impolite. I choose the former.

“The NDISWrapper is a shell loader, its Windows drivers do not link to the Linux kernel directly, plus NDISWrapper does not ship with any drivers anyway. But the Nvidia and ATi drivers do and according to many, these drivers are illegal”

You forget a few important details. Nvidia and ATI do not link and redistribute the kernel and driver together. If the user does so, that cannot be a GPL violation. Also Nvidia does not directly link but uses a GPL shim.

“>GPL does not mention linking ANYWHERE.”

I stand by this statement. It does not. The first thing you quote is from the LGPL which is irrelevant. Both the things you quote from LGPL and GPL are from the PREAMBLE, instructions and NOT the license clauses. These sections have legal standing whatsoever. Again this is the reason why I am telling you that you are being ignorant in this matter.

A few more questions that you ignored earlier to think about

* If a non-free driver is distributed in a particular website and does not directly link to the Linux kernel, would you consider that a violation? Note that GPL as a copyright license cannot restrict use at all. It can only restriction redistribution. As long as the module is separate GPL does not apply.

* If a non-free driver uses a GPL shim like the Nvidia driver, would the same rules apply?

* If Linus takes the position that all non-gpl drivers are legal, would it be valid in court for all of the kernel and would it in any way affect my kernel contributions that I licensed only under GPL?

The only thing that matters is whether the modules are derivative work as defined by copyright law. Read the legal definition of that and see whether it maps to linking in any way. GPL has absolutely no license clauses which mention linking. Lets be clear about that. Linus position is that it is legal grey area and decided on a case by case basis which is the ONLY sane position in this matter.


Yagami wrote on December 14th, 2006 at 11:49 AM PST:

actually i think this is good , and not supporting binary drivers is good.

evolution always takes place.

if nvidia opens their drivers , perfect :)

if not … then , i guess neuvou ( missplelled ? ) will get alot of more support. what they aim to do in one year , they could probably do in on month.

about now , nobody cares about those projects ( like r300 , etc )

companies that release open source drivers are actually in disavantage then the ones that release binary ones.

this may leverage things up. and if some doesnt open them, more energy is putted into projects of reversing engeneering. ( i am really misspelling badly )


Comments are closed as this blog post is now archived.

Lines, paragraphs break automatically. HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

The URI to TrackBack this blog entry is this. And here is the RSS 2.0 for comments on this post.