LWN.net Logo

Binary-only kernel modules may be banned

If this linux-kernel conversation holds, the kernel developers have just set out on a path to ban the loading of non-GPL modules. The plan appears to emit warnings for the next twelve months, followed by a patch causing the kernel to refuse modules which lack a GPL-compatible license declaration. Nobody has spoken out against the idea as of this writing - but the discussion is still young.
(Log in to post comments)

Gossamer-threads view of email thread

Posted Dec 13, 2006 23:38 UTC (Wed) by skitching (subscriber, #36856) [Link]

A nice way to see the whole thread is: http://www.gossamer-threads.com/lists/linux/kernel/715550.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 0:04 UTC (Thu) by alriddoch (guest, #2249) [Link]

From my perspective I would have no choice but to refuse to accept this change. I would either have to stay with older versions of the kernel or use versions of the kernel that had been patched to remove this restriction. My day to day use of Linux in my own time absolutely requires that drivers for modern 3D hardware work, and support all the features of the hardware. Despite some excellent work, the DRI project have not shipped anything that really comes close yet.

I also feel that my freedom is being tweaked here. As a free software author who uses the GPL, I absolutely respect that the GPL forbids _distribution_ of derived works which contain proprietary code, and I believe this includes distributions that ship binary modules, but if I choose to create a derivative work for my own use, which I will not distribute, the software should not restrict what I can do through technical means. When I use a graphics companies installer to build and install a proprietary driver and install it in my kernel, the derivative work is never distributed.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 0:21 UTC (Thu) by martinfick (subscriber, #4455) [Link]

When I use a graphics companies installer to build and install a proprietary driver and install it in my kernel, the derivative work is never distributed.

Uhmm, that proprietary driver is being distributed to you isn't it? That is the issue, if that proprietary driver is a derivative work of ther kernel than it is against the GPL to distribute it to you in the first place. And, unless that driver was written for some other OS and ported to linux later, it is most likely considered a derivative work. Just because that driver is not distributed along with the linux kernel does not make it not a derivative work. -INAL.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 1:10 UTC (Thu) by mrshiny (subscriber, #4266) [Link]

Conversely, just because it's a linux kernel module doesn't mean it's a derivative work of the kernel. I'd be interested to see a court rule on that; strong arguments could be made either way about what constitutes a derivative work. IANAL either.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:02 UTC (Thu) by einstein (subscriber, #2052) [Link]

> Uhmm, that proprietary driver is being distributed to you isn't it? That is the issue, if that proprietary driver is a derivative work of ther kernel than it is against the GPL to distribute it to you in the first place.

I've heard this statement before, and it is *really* a stretch to say that nvidia porting their accelerated OpenGL driver to linux somehow constitutes a derivative work.

If this takes effect, linux desktop adoption will stagnate, and Linux will generally be used only in server rooms until replaced by microsoft boxes. On the desktop, linux will be used only by hobbyists or others with no requirement for good graphics performance, or possibly used by shrill extremists. It's a shame really, Linux had the potential to be a world class desktop, and gain a foothold in the market - Solaris and BSD are beginning to look like the best last hope for a non-microsoft dominated future.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:12 UTC (Thu) by moxfyre (subscriber, #13847) [Link]

I've been using Linux exclusively on my desktop for a few years, and without using proprietary graphics drivers.

The open-source NV and ATI x11 drivers support NVidia and ATI graphics cards very well, including 2D acceleration.

It's true that they don't support 3D acceleration, but frankly how many typical desktop users use 3D acceleration? I can watch DVDs, play SNES games, compile software, use OpenOffice apps, and watch video clips all without the need for 3D acceleration. Who exactly needs 3D acceleration besides gamers and CAD professionals?

Frankly, I don't think the impact of removing the proprietary NVidia and ATI drivers would be as large as you think... I for one wouldn't even notice it. I don't think it's the best choice for the kernel, but I don't think it would be the end of the world for Desktop Linux.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:21 UTC (Thu) by sbaker3 (guest, #41924) [Link]

> Who exactly needs 3D acceleration besides gamers and CAD professionals?

The next release of Ubuntu will have a compositing window manager enabled by default - which would make 3D acceleration a high priority for most desktop users.

Granted, there will be a fallback to a 2D window manager if acceleration is not available.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:35 UTC (Thu) by jbailey (subscriber, #16890) [Link]

Sure. But with any luck Ubuntu would still be able to do this with at least the Intel drivers, the Free ATI drivers, and some work out of the Nouveau project.

This would also provide incentive for people to produce those free drivers, where there's almost no incentive now.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:53 UTC (Thu) by sbaker3 (guest, #41924) [Link]

Nothing the linux community does seems to sway the minds of the video vendors one way or the other.

However I suspect that distros making it easier to include binary drivers will turn out to be a huge source of motivation to the free ATI and Nouveau hackers and as a consequence we may end up with decent free drivers much quicker than we would have otherwise.

There is nothing like polarising peoples opinions to get them into action.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 3:59 UTC (Thu) by bronson (subscriber, #4806) [Link]

What has the Linux community done to sway the minds of the video vendors? Other than reluctantly continuing to buy ATI and nvidia graphics cards, of course.

Personally, I made sure my laptop had Intel video but, as a whole, the Linux community has been a very docile bunch. Especially when it finds 2-year-old remote root exploits in its binary-only drivers.

I love this decision. Enough is enough. I can't wait to see what happens.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:14 UTC (Thu) by einstein (subscriber, #2052) [Link]

> Personally, I made sure my laptop had Intel video but, as a whole, the Linux community has been a very docile bunch.

Eh? The linux crowd is probably the most cantankerous and demanding group around. nvidia has worked hard to make available free of charge for linux users the best linux video drivers on the planet, and what do they get from the linux crowd? a kick in the teeth.

> Especially when it finds 2-year-old remote root exploits in its binary-only drivers.

Please don't spread FUD, the potential vulnerability was a few months old at most, some poor fool confused it with an X11 vulnerability from 2 years back, and you're merely repeating the error.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:51 UTC (Thu) by bronson (subscriber, #4806) [Link]

nvidia has worked hard? I don't know about that... Their Linux drivers have always been on the hairy edge of bitrot. Why don't they participate with x.org? Or the Linux kernel? How about some support channels for distros? The occasional random regression-plagued binary drop? No, I think they could work a bit harder.

I'm sorry for continuing the misinformation; I didn't continue following the story. But, it's closer to 3 months isn't it? v8762 was released 22 May, the vulnerability was released 16 Oct, and nvidia silently slipped fix into the beta v9625 of late Sept. Either way, it's too long to have a remote rooter in the wild. Binary drivers or no, I just wish ATI and nvidia would communicate more.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 8:10 UTC (Thu) by drag (subscriber, #31333) [Link]

The bug that ended up being a security threat was 2 years old.

There is a crapload of bugs that Nvidia isn't going to bother to fix and one of them ended up being a security problem that wasn't disclosed completely until a little bit ago.

If they were open source people would of:
A. fixed the bug over a year ago
B. realised the security problem almost imediately.

http://www.rapid7.com/advisories/R7-0025.jsp for details.

You see the problem is that nobody can fix this. Nvidia isn't going to bother to much about it as it's not realy a remote root. (It's possible, but not plausable.)

You have to realise about binary drivers is..

1. A lot of security problems and a lot of performance/crashing bugs are caused by drivers in Windows. It's so bad that Microsoft had to impliment their byzzantine WHQL certification system for trying to combat it. That didn't work so they changed their driver model for Vista to isolate the kernel more from buggy drivers. And it's not even protecting against bad hardware support.. it's just protecting kerenl memory space against those bad drivers

2. Propriatory driver makers for Linux are the same people that cause all sorts of problems for Windows users.
(Think: Creative, ATI)

3. Their budget for working with Linux is much less then what they have for working for Windows.

4. They don't care nearly as much about their Linux customers as their Windows customers.

Linux, due to the culture of openness and limited resources is never ever going to be able to support hardware as well as Windows does if it has to depend on propriatory drivers.

If the drivers are open source then Linux can provide much higher quality of support.

Linux _can't_ win vs Windows in the desktop market if it needs propriatory drivers. It's just setting linux up to lose.

If push comes to shove then Microsoft will just pull strings in Nvidia or ATI and there goes our drivers. They will be less featurefull then Windows, be buggier, and not support the latest hardware (sound familar?)

Binary-only kernel modules may be banned

Posted Dec 14, 2006 19:14 UTC (Thu) by emkey (subscriber, #144) [Link]

Linux _can't_ win vs Windows in the desktop market if it needs propriatory drivers. It's just setting linux up to lose.

I've been following and using open source software for over 20 years now. I've done the same with commercial software. Based on those observations I'll tell you right now you are wrong. Dangerously wrong.

If push comes to shove then Microsoft will just pull strings in Nvidia or ATI and there goes our drivers. They will be less featurefull then Windows, be buggier, and not support the latest hardware (sound familar?)

Very doubtful. Especially given the fact that Linux makes up an increasingly large part of their bottom lines. Which is of course the point. Linux must continue to gain market share against Microsoft on the desktop. If it doesn't then odds are good we'll have very little real choice as to which operating system we run on our non server systems in twenty years.

The people pushing this agenda just don't get it. Let me spell things out clearly. Open source drivers from vendors are inevitable if Linux continues to gain market share on the desktop. Doing anything to discourage increasing market share puts in danger the long term viability of Linux as a desktop operating system and reduces the odds that the major vendors will ever release open source drivers.

It really is that simple.

Binary-only kernel modules may be banned

Posted Dec 16, 2006 21:52 UTC (Sat) by grahammm (subscriber, #773) [Link]

As has been said many times before, if they were to simply release the hardware interface specification then the open source community would write the drivers. The hardware vendors would not have to spend any of their budget on Linux.

Binary-only kernel modules may be banned

Posted Dec 17, 2006 2:41 UTC (Sun) by bronson (subscriber, #4806) [Link]

This presumes that there even ARE understandable hardware specifications. Back when I was writing Mac System 7 display drivers, I had to drive over to S3, sign a boatload of NDAs, then dig through RTL with one of their ASIC guys to try to figure out how to use their colorspace-converting blit.

Proprietary? VERY. If I somehow copied those docs, I probably could have duplicated their chip in a very short amount of time.

Not everybody produces nice, bound documentation with register maps and readable descriptions. Especially when the shelf life of the product is measured in months.

If they'd just open their drivers, though, that might be enough. A few commented header files go a LONG way.

*Snort*

Posted Dec 15, 2006 2:04 UTC (Fri) by Arker (guest, #14205) [Link]

"nvidia has worked hard to make available free of charge for linux users the best linux video drivers on the planet..."

That's the most ridiculous thing I've heard all day. Nothing in that statement could be further from the truth.

Compositing window managers don't require proprietary drivers

Posted Dec 15, 2006 22:43 UTC (Fri) by GreyWizard (subscriber, #1026) [Link]

I'm using a compositing window manager on a midrange laptop running Fedora Core 6 with no proprietary drivers. Everything is reasonably snappy.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:52 UTC (Thu) by drag (subscriber, #31333) [Link]

Removing video card support is the ONLY major set back that would practically happen.

Everything else has hardware alternatives that support Linux well. Wifi cards, SATA raid controllers, etc etc.. for every closed source driver you'd loose you'd be able to find a alternative driver or alternative peice of hardware that works just as well and is open source.

But 3d acceleration is the big example were there is no alternative for in the high-end consumer and professional market.

Right now you have very alpha stage driver support for Nvidia.

You have fully open source 3D drivers for all ati cards from 7500 to x800. The r500 and r600 series cards you don't have support for.

I have a ATI 9200 in my Ibook and I have a ATI x800 256M card for my desktop. Both have full open source 2d AND 3d acceleration. Both can run Beryl and Compiz comfortabily.

The biggest problem reverse engineering people have is that the hardware is buggier then shit. These cards are rushed to market and there is a lot of flaws in the GPU and in other parts of the hardware. Driver developers working for Nvidia and ATI have the ability to get information on these bugs from the engineers that designed the hardware when they find them.

Linux reverse engineering developers do not, so even when they do everything 100% correct they can still be wrong.

Right now Linux is used in high-end visualization workstations. Stuff that people use to make movies.

Linux is very popular and those movie studios have a LOT of money to spend on hardware.

These people ARE THE ONLY REASON why Linux has 3d driver support from Nvidia and ATI.

_period_

If it wasn't for them Linux would of never had supported propriatory drivers in the first place. ATI and Nvidia never gave a shit about the Linux consumer or the Linux user, they cared about high end Unix visualization and met customer's demands for high end 3d workstation cards.

This is why ATI drivers are called fglrx. For 'FireGL', which is their wokstation cards.

Seriously. This is a big deal for ATI and Nvidia.
IF Linux developers pulled the GPL driver card on ATI or Nvidia the first company that was to end up releasing open source drivers would make a shitload of money off of Linux.

It can be ATI or Nvidia.

Or it can be S3 or Matrix or 3Dlabs, and even Intel. All those manufacturers are capable of producing high-quality 3d graphics cards. But they can't get a foothold into the market because of the dominance of ATI/Nvidia.

This would allow them to gain a foothold again by being the only company that produces high-speed graphics cards for Linux.

Also ATI has been making noise about supporting open source developers. They could do it like Intel did were they originally hired outside developers to produce open source Linux drivers under NDA.

There is a crapload of money to be made in 3d graphics in Linux, but it isn't consumer gaming cards, it's high-end cards.

Especially when you open source them you open them up for using the GPU as a secondary proccessor for faster rendering and cluster performance. Both for scientific AND graphics work.

Right now Nvidia and ATI are also in a Antitrust investigation...
http://www.extremetech.com/article2/0,1697,2066727,00.asp

So it seems that other companies are wanting to get into the game, but are being forced out.

But it can backfire and cause those movie folks to run to Windows for their support. Windows is much more capable then it used to be for this sort of thing then it used to be.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:55 UTC (Thu) by drag (subscriber, #31333) [Link]

BTW I don't think that they'll actually change anything kernel/gpl-wise

Binary-only kernel modules may be banned

Posted Dec 14, 2006 3:24 UTC (Thu) by vondo (guest, #256) [Link]

I've often used the propiertary drivers and I've never really done it for the 3D acceleration. Here's why I've used them:

1) Support a newer card than the nv driver supports
2) Get HDTV out of component outputs to feed my HDTV
3) Use DVI outputs to feed an LCD digitally

Now, for all I know, the nv driver does all of this now, but it hasn't always and the way to do it with the nvidia driver has always been very well documented.

I too doubt I will ever run a kernel that blocks my ability to do this

Binary-only kernel modules may be banned

Posted Dec 14, 2006 5:11 UTC (Thu) by drag (subscriber, #31333) [Link]

You can always just purchase hardware more wisely and avoid all the Nvidia crap.

My motherboard was fairly new when I bought it, Sata, Gigabit ethernet, 2d acceleration, 3d acceleration, power management, hardware sensors, and other onboard features were 100% functional out of the box with using pure open source drivers.(ASUS model with 945g chipset)

It's not that hard to avoid propriatory drivers. The Intel onboard stuff can do everything you described and it costs much less, is much quieter, and uses less electricity to run then some Nvidia card.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 8:11 UTC (Thu) by mcisely (subscriber, #2860) [Link]

I find that the Intel onboard stuff canNOT do everything. It will not render HD quality video via the X-video extension. SD video is fine, but up the resolution and the chip and/or driver chokes.

I'm not arguing in favor of nvidia. Far be it. I'd love to dump nvidia. But first there must be a viable replacement, and Intel isn't it. At least not yet.

-Mike

Binary-only kernel modules may be banned

Posted Dec 14, 2006 10:54 UTC (Thu) by bni (subscriber, #27103) [Link]

A radeon 9200 with free drivers connected to a HDTV by HDMI (DVI->HDMI cable) renders HDTV stuff just fine. For example h264 content performance is mainly due to having a fast dual core CPU. I am sure the result for Intel would be similar.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 14:56 UTC (Thu) by vondo (guest, #256) [Link]

Right and I could junk my component only 1080i TV and shell out another $3000 for an HDMI TV and then everything would be fine and dandy.

I'm glad your setup works for you and I would welcome decent drivers and reasonably priced hardware that works for me. But the world isn't like that. Sometimes you've got to shoehorn a linux system into an existing setup.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 11:37 UTC (Thu) by drag (subscriber, #31333) [Link]

Read the man file for the driver.

Option "LinearAlloc" "integer"
Allows more memory for the offscreen allocator. This usually helps in situations where HDTV movies are required to play but not enough offscreen memory is usually available. Set this to 6144 for upto 1920x1080 HDTV support. Default 0KB (off).

Also, I am not sure what is aviable with the GMA chipsets yet, but it can support XvMC for mpeg decoding acceleration, but if you have a fast enough CPU that shouldn't be a problem either way.

I have a GMA 950, but right now it's in storage. I remember watching elephants dream with it and I had to bump up the 'LinearAlloc' to get it to work, but I don't remember exactly how well it worked after that. I think I got it to play fine without the XvMC stuff.

Binary-only kernel modules may be banned

Posted Dec 15, 2006 0:06 UTC (Fri) by mcisely (subscriber, #2860) [Link]

I know this is getting off-topic, but a followup is briefly needed:

Strange thing. I did look at the man page, a month ago when I was trying to figure this out, and yet I missed this one. Setting LinearAlloc to 6144 indeed enables HD video.

For the record, I still don't have XvMC working. I don't think it's supported on my "Intel 82945G/GZ" (as reported in Xorg.0.log). However this is no great loss; unlike the system it replaced, the Intel E6400 Core 2 Duo I'm running seems to get along just fine using normal xvideo rendering.

Now if I can just get rid of a video noise pattern I'm getting when going through my KVM cable (a problem which didn't exist until switching to this mainboard) then I'll be perfectly happy and can finally say adios to nvidia.

Thanks.

-Mike

Binary-only kernel modules may be banned

Posted Dec 14, 2006 4:40 UTC (Thu) by mightyduck (subscriber, #23760) [Link]

Sorry, but you're dead wrong! We don't do any 3D stuff but we can't live
without the closed-source nvidia driver. Have you ever tried to get a
dual-DVI card with 1600x1200 resolution to work with the free nv driver?
Don't waste your time, it doesn't work. And our trading desks have up to
6 monitors and 2 or 3 video cards and noone is playing games there, I can
tell you that much.

And if you look at the newest ATI cards, they don't work AT ALL with the
radeon driver. You won't even get 2D acceleration without the fglrx
driver because the only working open-source driver is the vesa driver.
And unfortunately, several newer laptop models contain this stuff.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 5:13 UTC (Thu) by drag (subscriber, #31333) [Link]

hint:

You don't need to use propriatory ATI or Nvidia drivers if your not using ATI or Nvidia hardware.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 13:29 UTC (Thu) by mightyduck (subscriber, #23760) [Link]

You seem to know more than I know. Please name the vendor which makes a
dual or better (quad?) DVI video card with support for 1600x1200
resolution on all DVI outputs, 2D acceleration, and an open-source
driver. We already tried Matrox (the Parhelia and friends) and 3D Labs
(the Wildcat) and neither do they have an open-source driver nor is their
closed-source driver any usable under Linux. We don't care about 3D but
we need as much screen real estate as possible.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 14:08 UTC (Thu) by k8to (subscriber, #15413) [Link]

The obvious choice for these basic features is intel.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 14:24 UTC (Thu) by mightyduck (subscriber, #23760) [Link]

I'm not aware of any Intel video card which has the features we need. In
fact, they don't even make discrete video cards.

Believe me, I'm also sick and tired of the closed-source ATI and NVIDIA
drivers with their various bugs and misbehaviors which only get fixed at
the mercy of the vendor, but for our needs we're stuck with them. And
just forbidding them doesn't solve any of our problems. That would force
us out of Linux and back to Solaris trading desks.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 20:42 UTC (Thu) by drag (subscriber, #31333) [Link]

Ya well you don't have much choice then.

I have a ATI x800 that I have use Free software drivers for because I need 3d acceleration more then what the onboard Intel offers. I use the DRI r300 driver, which are mostly stable and give good performance.

It can do dual out. But I haven't tried it yet, but I've seen people online that successfully run that configuration.

Beleive me when I say that I've been seriously considuring getting a nvidia card because the free software drivers just aren't that fast, but it leaves a bad taste in my mouth.

Binary-only kernel modules may be banned

Posted Dec 15, 2006 0:25 UTC (Fri) by drag (subscriber, #31333) [Link]

Oh another option, probably kinda insane (like you realy want to have 4 computers to build one display)

But if you realy want MEGA displays its worth looking at.

DMX + Chromium.

Distributed multihead X will turn a cluster of machines into one big display.

Chromium will make 3d acceleration work across all of them.

http://chromium.sourceforge.net/doc/dmx.html

Binary-only kernel modules may be banned

Posted Dec 14, 2006 5:42 UTC (Thu) by markhb (guest, #1003) [Link]

Who exactly needs 3D acceleration besides gamers and CAD professionals?
  • People who want to use Google Earth and have it work halfway decently
  • People who would like to be able to use the rotating-desktop eyecandy being provided these days
I'm in the first group, but my machine is too old to support the second, apparently (unless there's some secret switch in FC6 I don't know about). I will point out that it's not about "needs," anyway, it's about desires and bling.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 10:52 UTC (Thu) by tajyrink (subscriber, #2750) [Link]

> People who want to use Google Earth and have it work halfway decently
> People who would like to be able to use the rotating-desktop eyecandy being provided these days

Yeah, but those needs don't need _high-end_ 3D performance. Any intel onboard stuff works on open source drivers and provides you that. Any ATI Radeon 7000 - X850 should provide you that with an open source 3D driver, even though the performance of the open source driver would not be 100% of the current closed source driver performance.

NVIDIA is in the "tough luck"-category, ie. if you buy hardware that does not support open source software, you will have problems at some point.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 13:11 UTC (Thu) by drag (subscriber, #31333) [Link]

A comparision of open source R300 drivers vs Closed FGLRX is aviable at:
http://www.phoronix.com/scan.php?page=article&item=56...

Very simplistic benchmarking, unfortunately.. but you get a 40-60% performance hit by going open source. (phoronix website is a bit of a ATI fanboy site sometimes, which makes life difficult to be Linux oriented I suppose)

But keep in mind that this is reverse engineered drivers, this has to be hugely difficult. As far as I am concerned this proves beyond a doubt that open source developers (or at least the guy reverse engineering this stuff!) can make 3d drivers.

But you can't do it without manufacturer assistance. At least not to the level of existing Nvidia drivers.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 17:52 UTC (Thu) by bronson (subscriber, #4806) [Link]

I believe that the "we don't own all the source" is a smoke screen. OK graphics companies, if that's true then just release the source you DO own! Let's see if the community can fill in the missing bits (I'd bet money that it can).

No, I am convinced that the real reason that manufacturers don't want to open the specs is because then all their corner-cutting will be exposed for all to see. Graphics technology tends to hover at 110% of semiconductor technology:

http://techreport.com/etc/2001q4/radeon-q3/index.x?pg=1
http://techreport.com/reviews/2003q2/geforcefx-5800ultra/...

Heck, I reluctantly wrote some "optimizations" for SuperMac ThunderII and Thunder/24 drivers in 1993 to cheat on Ziff-Davis benchmarks (look closely at those round-corner rectangles as they blit by; it was the second-to-last time I coded something against my morals). Companies have been pulling these shenanigans since day one.

The problem is, the market is set up so that companies are required to cheat like this. So it's 13 FPS slower, so what? You can't see the difference between 122 and 135 FPS! Well, that's how Anandtech readers choose what to buy. If you're 5% slower, you lose 40% of your sales.

I really hope that open source will encourage customers to not be so fickle and choose cards based based on more than absolute frame rate and artificial benchmarks.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 7:32 UTC (Thu) by amando (guest, #36597) [Link]

> Who exactly needs 3D acceleration besides gamers and CAD professionals?

Developers of graphical simulations and advanced user interfaces.
Linux has a serious need for good 3D support. The current free drivers
are simply not good enough for advanced graphical work.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 10:24 UTC (Thu) by alriddoch (guest, #2249) [Link]

> Who exactly needs 3D acceleration besides gamers and CAD professionals?

How about developers of games and professional CAD software?

My day to day use absolutely requires good 3D acceleration. Unless I can get this from Linux I will have to change to a different platform. It would be a great source of sadness to have to switch to a proprietary OS, but I would have no choice other than to abandon my career.

Binary-only kernel modules may be banned

Posted Dec 17, 2006 10:05 UTC (Sun) by rqosa (guest, #24136) [Link]

> The open-source NV and ATI x11 drivers support NVidia and ATI graphics cards very well, including 2D acceleration.

> It's true that they don't support 3D acceleration

The open-source ATI driver does support 3D acceleration. See here:

Several 3D accelerated drivers have been written to the DRI specification, including drivers for chipsets produced by ATI, Matrox, 3DFX, and Intel.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 3:16 UTC (Thu) by tjc (subscriber, #137) [Link]

If this takes effect, linux desktop adoption will stagnate, and Linux will generally be used only in server rooms until replaced by microsoft boxes. On the desktop, linux will be used only by hobbyists or others with no requirement for good graphics performance, or possibly used by shrill extremists. It's a shame really, Linux had the potential to be a world class desktop, and gain a foothold in the market - Solaris and BSD are beginning to look like the best last hope for a non-microsoft dominated future.
Your doomsday prediction seems to be based on the assumption that we all play games, or have some other need for fast 3D graphics, but many of us don't. This change could be in effect for a year or more before I even noticed it. So my prediction is much less dramatic: I think a few people might go back to dual-booting Windows, but that's about it.

Linux isn't a great gaming platform anyway, so at this point there isn't a big gaming community to defect. People can't leave it they aren't even here.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:32 UTC (Thu) by einstein (subscriber, #2052) [Link]

> Your doomsday prediction seems to be based on the assumption that we all play games, or have some other need for fast 3D graphics, but many of us don't. This change could be in effect for a year or more before I even noticed it. So my prediction is much less dramatic: I think a few people might go back to dual-booting Windows, but that's about it.

Actually, the death of linux on the desktop is not a doomsday prediction - it's sad, but life will go on, and another platform will take the place of linux. It would have been great if the linux developers could have either created drivers that people would want to use instead of the proprietary ones, or learned to work with 3rd parties like nvidia. But instead of working to address the problems, they instead are going to tell the 3rd party vendors to go take a hike, and leave the users high and dry. Not a good situation.

BTW you're mistaken in thinking that "nobody cares about good graphics anyway, except for a handful of gamers". Yeah, who wants to watch DVDs or use google earth anyway? I'll bet you also thought 640k or RAM ought to be enough for anybody, right?

> Linux isn't a great gaming platform anyway, so at this point there isn't a big gaming community to defect. People can't leave it they aren't even here.

Actually linux is a marvelous gaming platform - I've been playing hardware accelerated networked 3D FPS games on linux for years, and it absolutely rocks. The fact that you either don't play games, or choose to use a windoze peecee for all your gaming, doesn't really earn you any credibility points to talk about gaming on linux...

Binary-only kernel modules may be banned

Posted Dec 14, 2006 8:48 UTC (Thu) by kune (subscriber, #172) [Link]

I don't think that the Linux community is to blame for the situation. It's pretty damn hard to write a driver for a complex hardware, for which you don't have access to the hardware developers. Even if you have some documentation and source code available, it's incomplete, might have errors and doesn't tell you about hardware bugs. It's pretty difficult if you know that hundreds of registers are filled with some values and you have no bloody idea, what the function of 95% of those registers are.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 9:50 UTC (Thu) by seyman (subscriber, #1172) [Link]

> I don't think that the Linux community is to blame for the situation.

It's interesting to note the blame-shifting that occurs where NVidia's binary video drivers are concerned.

- The free drivers suck. This apparently isn't NVidia's fault (which is strange since they maintain it) but the kernel developers'.
- The non-free drivers aren't free. This apparently isn't NVidia's fault.
- This makes the drivers impossible to ship as part of the distribution. This is somehow the distribution's fault.
- They won't release the specs. This apparently isn't their fault.
- They badmouth the open source developement model. I have no idea why but this isn't their fault.

There has got to be a reason for the amount of support NVidia gets from their linux user crowd but I can't see it.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 10:09 UTC (Thu) by man_ls (subscriber, #15091) [Link]

But instead of working to address the problems, they instead are going to tell the 3rd party vendors to go take a hike, and leave the users high and dry.
I would say that Linux developers have given a fair amount of support and have tried to address the problems with graphics cards vendors. In fact devs have cried out loud for card specs for years, which is everything vendors would need to release. Or release their drivers under the GPL. Their decision to release binary drivers is the worst of both worlds.
The fact that you either don't play games, or choose to use a windoze peecee for all your gaming, doesn't really earn you any credibility points to talk about gaming on linux...
There are other alternatives, you know. I don't want to risk my credibility points, but I hear consoles are pretty popular these days.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 15:25 UTC (Thu) by tjc (subscriber, #137) [Link]

BTW you're mistaken in thinking that "nobody cares about good graphics anyway, except for a handful of gamers". Yeah, who wants to watch DVDs or use google earth anyway? I'll bet you also thought 640k or RAM ought to be enough for anybody, right?
You must have misread my post. I was speaking specifically about "fast 3D graphics" -- I made no mention of watching DVDs, and I sure didn't say anything about memory requirements.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:32 UTC (Thu) by Arker (guest, #14205) [Link]

I don't think there's any doubt that many distros will patch to remove this, unfortunately, so you probably won't be affected by it. At least it will give people using vanilla kernels a warning that's harder to ignore than the little 'tainted kernel' thing that most people never notice.

If your day to day work requires 3d drivers, I would suggest you might investigate whether there is properly supported hardware that meets your need (there are some good Free 3d drivers already, although they aren't for the top performing hardware) and if not, think about doing something to improve that situation.

What Nvidia and others are doing is trying to skirt the letter of the GPL. It's, at best, an exploit like Tivo uses, and in ways it's worse, since it's encouraging and expecting *other people* to violate copyright so they can keep their hands technically clean. It's also an open question whether a court would or would not hold them blameless - if Kazaa can be hit for contributory copyright infringement then Nvidia certainly should be vulnerable to that charge as well.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:59 UTC (Thu) by charris (subscriber, #13263) [Link]

If your day to day work requires 3d drivers, I would suggest you might investigate whether there is properly supported hardware that meets your need

Well, there are always Intel boxes running OSX or Windows; I'm a bit tempted by Apple myself just for the convenience. It seems to me that forbidding proprietary binary modules could make linux a niche operating system. I suppose the IP in 3d video cards will eventually be wrung out and it might make sense to make the drivers GPL at that point. But then the next cool thing will come along and only run on other systems. Linux could end up looking like a model T, crank included.

Binary-only kernel modules may be banned

Posted Dec 15, 2006 2:06 UTC (Fri) by Arker (guest, #14205) [Link]

Many video solutions are well supported under linux as well. If you buy carefully, and don't actually require the horsepower of the latest top of the line cards, you're fine.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:59 UTC (Thu) by sepreece (subscriber, #19270) [Link]

Well, it's only a copyright violation if every loadable kernel module is inherently a derivative work. I'm not a lawyer, but from what I've read, that's an undecided question. [And there's no point in debating it here, unless we've got enough IP lawyers in the readership to have an interesting debate.]

Note, too, that if your hands are "technically clean", that would presumably mean you're not infringing. Either you're infringing, and your hands are dirty, or you're not.

Whether it's polite is another question...

Binary-only kernel modules may be banned

Posted Dec 15, 2006 2:12 UTC (Fri) by Arker (guest, #14205) [Link]

From what I've seen, the vast majority of lawyers familiar with that area of the law are of the opinion that any kernel module does qualify as a derivative work of the kernel. You're correct that until there is precedent on the issue it's still an open question.

"Note, too, that if your hands are "technically clean", that would presumably mean you're not infringing. Either you're infringing, and your hands are dirty, or you're not."

I don't agree. Courts have often taken a very dim view of people who try to split hairs and comply with only the letter while blatantly violating the clear intent. So even in a legalistic sense this is not necessarily true.

In a more important sense, the community is not and shouldn't be hung up on splitting legal hairs. Even if the courts were to rule that there's no legal repurcussions from their actions, that doesn't mean they are coöperating with the community and it doesn't mean we should tolerate their behaviour.

Binary-only kernel modules may be banned

Posted Dec 15, 2006 23:00 UTC (Fri) by GreyWizard (subscriber, #1026) [Link]

Well said.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 0:06 UTC (Thu) by drag (subscriber, #31333) [Link]

I see this as definately encouraging some companies to open source drivers.

And other companies will simply stop supporting Linux altogether.

So it's a trade of.

Do you want the maximum amount of Free and Open Source'd hardware support and sacrifice access to closed source drivers?
or
Do you want the maximum amount of hardware support and sacrifice access to the source code of some drivers?

Pick one..

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:17 UTC (Thu) by jstAusr (subscriber, #27224) [Link]

I would like the one with the Free software on top please.

There's no question

Posted Dec 14, 2006 2:36 UTC (Thu) by Arker (guest, #14205) [Link]

It's only because you're misframing the question there could be any question. Once you realise that it's *impossible* to properly support linux through blobs, the answer is obvious.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 4:45 UTC (Thu) by beoba (guest, #16942) [Link]

If we wanted maximum hardware support, we'd be using Windows.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:08 UTC (Thu) by khim (subscriber, #9252) [Link]

Windows does not have "maximum hardware support". It wins on the "latest-and-greatest" but loses (big time) on totally-obsoleted-two-year-old-pieces-of-hardware...

Binary-only kernel modules may be banned

Posted Dec 14, 2006 14:10 UTC (Thu) by beoba (guest, #16942) [Link]

Oooh. That's true.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 14:14 UTC (Thu) by k8to (subscriber, #15413) [Link]

Agreed. Of course this is one of the benefits of open drivers as well.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 0:17 UTC (Thu) by louie (subscriber, #3285) [Link]

Isn't it a stretch to call that a 'conversation'? No one has responded either positively or negatively to the suggestion, as far as I can tell (certainly no one whose opinion matters)... or am I missing something?

*yawn*

Posted Dec 14, 2006 0:24 UTC (Thu) by pjhacnau (subscriber, #4223) [Link]

It was a passing comment in a much longer discussion about what device functionality should be exposed to user-space. I'm a bit disappointed that LWN proceeded to post it; the article is more sensationalism than content.

*yawn*

Posted Dec 14, 2006 1:34 UTC (Thu) by imcdnzl (subscriber, #28899) [Link]

I don't think it is sensationalist as Corbet uses words like may, if etc rather than saying it will happen.

It is newsworthy because Greg KH is promoting it and Alan Cox is supporting it. The big issue is whether Linus agrees or not. I for one hope he does as sick of binary modules (being a kernel developer).

*yawn*

Posted Dec 14, 2006 2:10 UTC (Thu) by pjhacnau (subscriber, #4223) [Link]

I've just re-read the thread. Here is the closest Greg KH comes to saying "ban binary modules" or similar.

> Again, X does this today, and does does lots of other applications.
> This is a way to do it in a sane manner, to keep people who want to do
> floating point out of the kernel, and to make some embedded people much
> happier to use Linux, gets them from being so mad at Linux because we
> keep changing the internal apis, and makes me happier as they stop
> violating my copyright by creating closed drivers in the kernel.

There's nothing new in there. Greg's position on closed drivers is well known. He's not arguing for changing of licence wording, or sticking the "GPL Only" macro on any new symbols. All he's doing here is proposing an "out" for those who insist on doing them so he can ignore them.

So, IMHO, the only *new* bit in there is another developer saying "let's just ban them outright", and Andrew Morton's response. The rest, in terms of the "allow/disallow binary modules" argument (as opposed to the technical merit of Greg's patch) is just a rehash.

So unless our esteemed Editor has some information about movements outside of this email thread, I don't think the *new* statements there warrant an article at all.

Note1: Mr Corbet may well know of other happenings; if so can we know them too?

Note2: It's not newsworthy yet. That doesn't preclude additional posts in the thread appearing which do make it worth reporting on. But I'd expect an article on it then, not now.

*yawn*

Posted Dec 14, 2006 3:14 UTC (Thu) by pjhacnau (subscriber, #4223) [Link]

OK, I somehow managed to miss Greg's other comment:

> I'll whip up such a patch in a bit to spit out kernel log messages whenever
> such a module is loaded so that people have some warning.

I still think it isn't news yet.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 1:48 UTC (Thu) by mgh (subscriber, #5696) [Link]

I thought that companies now get around this by creating a GPL (or other compat license) shim that tells the kernel that it is GPL code (which it is ) and then interfaces to the driver which is thus hidden.

Obviously this is not be in the spirit of free SW - but I don't think that this policy change is likely to have too much impact.

As Linux or more to the point GPL software grows in popularity there will be an increasing number of pressures and increasing number of counter pressures.

More relevant is the patent game - clearly this is a continuation of the "Western or Capitalist" way - I believe that many civisations could not understand ownership of land when they came in to contact with western culture - patent is ownership of ideas... We may hate it, but at the momemnt it is happening and until evolution at a state or jurisdiction level kills it off - it will be here to stay.

Too many rich vested interests for patents to be over turned. "Democracy" is a myth - no such thing; for the most part laws are bought though interest and exchanges of favours if not cash. Only a failure of patents at a profit level is likely to cause change. Maybe I am too cynical!

Binary-only kernel modules may be banned

Posted Dec 14, 2006 6:14 UTC (Thu) by khim (subscriber, #9252) [Link]

Obviously this is not be in the spirit of free SW - but I don't think that this policy change is likely to have too much impact.

Oh, but it will. Intent is very important when you are talking about legal stuff. Since your "GPL shim plus binary blob" approach was explicitly blessed many years ago for at least one blob (AFS driver) it's more-or-less clear that such approach is not totally against the intent of kernel developers. If they claim: we're sick and tired of this crap and no longer like to see it - it's totally different thing. Especially if there are will be warnings and so on. Of course embedded companies like to use three or four years old kernels and there are they can play as they wish so it'll not stop them right away...

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:11 UTC (Thu) by MisterIO (subscriber, #36192) [Link]

I really don't know if this article is more sensationalism than content,but anyway I think that this is a really important problem and all kernel developers should think twice about it.The main theme here is that you cannot go at war before knowing that you can win.I mean,developers should first try to understand if there's any possibility of success to convert those hardware companies that do not release hardware specs,i.e. they should try to understand who has more power!Well,at least if we don't want to say : "We don't have to defeat them,just to fight them".(loosely taken from Braveheart)

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:40 UTC (Thu) by Arker (guest, #14205) [Link]

IMOP you're (mis)defining success to force the answer you want.

What if it's not a war?

Posted Dec 14, 2006 4:13 UTC (Thu) by bronson (subscriber, #4806) [Link]

Maybe the kernel devs don't consider it as a zero-sum us vs. them sort of thing... If supporting fewer binary drivers (and corresponding remote root holes) makes their jobs easier, and their customers happier, then why wouldn't they do this?

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:12 UTC (Thu) by Erich_J_Ritzmann (subscriber, #39670) [Link]

Question is: will monopolist tactics work for an underdog?

In more than a dozen years Linux is still in the technical adventure space rather than a
mainstream platform. (Contrast that with the commercial success of OS X in just half of those
years.) Businesses that do not reduce the risk of immitation will not be in business very long,
that is the reality of the day. Will pissing off the businesses that supply hardware drivers in
binary improve the progress? Mightn't they decide that the Linux market is just not worth the
trouble?

Manufacturers who do not release OSS drivers will be less attractive than those who do. Let the
market decide.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:31 UTC (Thu) by moxfyre (subscriber, #13847) [Link]

In more than a dozen years Linux is still in the technical adventure space rather than a mainstream platform. (Contrast that with the commercial success of OS X in just half of those years.) Businesses that do not reduce the risk of immitation will not be in business very long, that is the reality of the day. Will pissing off the businesses that supply hardware drivers in binary improve the progress? Mightn't they decide that the Linux market is just not worth the trouble?
What a troll... if Linux isn't a "mainstream platform" then I don't know what is. Look at Netcraft and see how many web servers run Linux. Look at Google. Go to any scientific environment and see how many people are doing heavy number crunching, CAD, and writing papers under Linux. All the (admittedly unreliable) data I've seen indicate that desktop Linux use is in the same ballpark as OS X use. Linux may not be on every desktop, but it's about as mainstream as you can get these days. All manner of enterprises, universities, and governments depend on it.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:54 UTC (Thu) by Ed_L. (guest, #24287) [Link]

I wouldn't toss the "troll" word around quite so lightly. Dilutes its impact...

:-)

Binary-only kernel modules may be banned

Posted Dec 14, 2006 4:51 UTC (Thu) by beoba (guest, #16942) [Link]

It may have been intended as a verb rather than a noun.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 2:42 UTC (Thu) by dokhebi (guest, #14023) [Link]

After reading the conmments on this, the first thing I see is a negative backlash by many (or most) of the hardware vendors and a big "I Told You So." from Microsoft.

I for one depend on a mixed open source/binary driver for my WiFi card (everything is source except the HAL) and this would require I either buy a new WiFi card or a new laptop. For me it's a lose/lose propsition and I've been a big Linux support for years. How do I convince people to switch to Linux if the kernel developers start acting like little Hitlers?

Just my $0.02 worth.

Invoke Godwin's Law

Posted Dec 14, 2006 2:56 UTC (Thu) by Ed_L. (guest, #24287) [Link]

Someone had to...
:-)

Binary-only kernel modules may be banned

Posted Dec 14, 2006 3:03 UTC (Thu) by scottm (subscriber, #35657) [Link]

It sounds like you're talking about the MadWifi driver. That problem should resolve itself within the next several months once the various people working on porting the OpenBSD ar5k driver to Linux settle on something.

Just revert the patch

Posted Dec 14, 2006 4:08 UTC (Thu) by proski (subscriber, #104) [Link]

Another solution would be to install a distribution that reverts that particular change in the kernel. I think you'll have plenty of choice. If any popular distro doesn't revert that patch, there will be an alternative kernel somewhere.

I can also imagine somebody will write a "binary module enabler" - a kernel module that enables binary modules in the kernel at the run time.

Just revert the patch

Posted Dec 14, 2006 5:37 UTC (Thu) by drag (subscriber, #31333) [Link]

Probably what people will do is simply maintain the last stable release of the kernel supported their drivers and backport security patches and such to that version.

They would use that for a year or two until it became time for the next major release of the operating system then they would have to drop binary driver support.

Other options include switching out the Linux kernel for a FreeBSD one or OpenSolaris one so they can keep on using propriatory drivers if it matters that much to them.

Just revert the patch

Posted Dec 14, 2006 15:39 UTC (Thu) by proski (subscriber, #104) [Link]

Reverting one patch is much easier than backporting hundreds of them and staying with an obsolete kernel. And of course it's easier to revert a single check than to change the OS.

Accepting inconvenience to make a point is a political act. Most ordinary users won't do it. They would take the simplest approach, and that means disabling the license check.

That's why introducing a patch that inconveniences the end users is going to be a problem for the kernel wtih a potential for forking the codebase. I think Linus understands that.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 5:28 UTC (Thu) by drag (subscriber, #31333) [Link]

"little hitlers"?

Sure the people that have devoted a significant portion of their lives to making the best kernel they can possibly do within their own limitations and your demanding that they should support closed source drivers or they are 'little hitlers'.

Cute.

Buy a f-ng USB wifi dongle. It was your mistake buying something that required closed source drivers in the first place.

(You'd have my sympathy if it wasn't for the hitler crack.)

Of course I am sure you feel perfectly justified in demanding compromises of the linux kernel developers to save yourself 25 bucks.
http://www.newegg.com/Product/Product.asp?Item=N82E168333...
http://rt2x00.serialmonkey.com/wiki/index.php?title=Main_...
http://ralink.rapla.net/

People have such a high idea of entitlement that it makes me sick sometimes.

Binary-only kernel modules may be banned

Posted Dec 14, 2006 10:41 UTC (Thu) by grouch (subscriber, #27289) [Link]

All you kumbaya zealots are alike! You want everybody to just toss their valuable assets in the communal stew pot and everything will be peace and love-beads forever!

I don't like that vendor. Get me another link or I'll taunt you again and I won't install [what's your favorite distro?]. Tell that Torvands joker I'm not downloading any more of his stuff until he fixes that driver for my old scsi card, too. It worked fine in '89.

Embedded systems will be the losers

Posted Dec 14, 2006 5:45 UTC (Thu) by madscientist (subscriber, #16861) [Link]

Everyone is talking about whether their desktop will support 3D graphics and WiFi cards, but you're missing a bigger problem at the other end of the scale: embedded systems. There have been a lot of articles recently about how Linux is making major inroads as the OS of choice going _down_ the scale, as well as up. Companies like Wind River have started to bet the farm that Linux will take over as the embedded OS. Many of these embedded devices have special, custom hardware that requires unique kernel module support. None of this code would ever be used or useful anywhere except on these dedicated hardware boards and would never be contributed to the Linux kernel proper, and at the same time often it contains "secret sauce" that these companies rely on to differentiate themselves in what is often a razor-thin margin environment, and/or to avoid giving competitors an advantage.

I'm not saying this is a good enough reason to not make this change. I'm just pointing out that the desktop 3D graphics folks are not anywhere close to the only people to be impacted by this.

Embedded systems will be the losers

Posted Dec 14, 2006 9:31 UTC (Thu) by electronghost (guest, #42218) [Link]

This is correct. In particular, anyone who writes a driver for an SDIO
device has to sign an NDA to see the SDIO spec which basically prevents
them from releasing the driver source. The whole thing seems pretty much
designed to prevent the use of free software with mobile phones &c

(Note: SDIO is not the same as SD-memory, which portion of the spec *is*
open)

Or maybe the winners

Posted Dec 14, 2006 12:03 UTC (Thu) by man_ls (subscriber, #15091) [Link]

Proprietary Unices also claimed to have "unique advantages" in their closedness; now most vendors have embraced Linux, and the rest have gone free software or died.

Now all embedded vendors claim to have proprietary advantages, but most of them offer more or less the same stuff (like in wifi chips). Maybe they can start cooperating together instead.

Or maybe the winners

Posted Dec 14, 2006 12:47 UTC (Thu) by madscientist (subscriber, #16861) [Link]

No, I'm not talking about supporting "COTS" components like wifi chips, etc. I'm talking about custom asics or fpgas that are produced specifically for a given product. These things are often handled through a bunch of random ioctls with little to no standardization, etc. and they provide very specific capabilities that would never be useful without those specific custom hardware components.

Plus, you're talking about software: software is completely different than hardware. An OS having "unique advantages" is still easily applicable to lots of other people. Hardware having "unique advantages" is useful to no one except other people who own that particular hardware.

Nevertheless, I'm not saying at all that Linux shouldn't go this way. There would be a lot of advantages in a lot of areas, I think. But, I do believe a lot of the embedded market would move to another OS. It's simply easier for them to do that in many cases than to open up their drivers. And maybe that's fine too.

Another example

Posted Dec 14, 2006 15:27 UTC (Thu) by man_ls (subscriber, #15091) [Link]

Hmmm true, my example may be a little contrived.

Then think about workstation vendors 25 years ago: Hercules, Apollo... They all claimed to have proprietary advantages with their hardware + software combinations. Then Sun came along with their standard, open platform (based on standard hardware and *BSD Unix), and swept all of them away; in the process creating a new market for cheap, general purpose workstations. HP et al followed suit. There was a very nice account written by a Sun executive, but I cannot find it right now, sorry.

Linus has spoken

Posted Dec 14, 2006 6:02 UTC (Thu) by huaz (guest, #10168) [Link]

http://lkml.org/lkml/2006/12/13/370

Highlight:

[Because] I think it's stupid. So use somebody else than me to push your
political agendas, please.

Linus has spoken

Posted Dec 14, 2006 9:43 UTC (Thu) by gnb (subscriber, #5132) [Link]

That's an overly terse summary: he hasn't said that he'll block this
move, just that he personally isn't happy with it.

Linus has spoken

Posted Dec 14, 2006 11:10 UTC (Thu) by grouch (subscriber, #27289) [Link]

I think he makes a very good argument. Let them do the coding and let the rest of us nag the manufacturers. The distributors have managed to enlighten some manufacturers about the benefits of having their drivers in the main-line kernel. We have more influence with our wallets than many people seem to think.

I particularly like this part:

There's a big difference between "copy" and "use". It's exatcly the same issue whether it's music or code. You can't re-distribute other peoples music (becuase it's _their_ copyright), but they shouldn't put limits on how you personally _use_ it (because it's _your_ life).

Same goes for code. Copyright is about _distribution_, not about use. We shouldn't limit how people use the code.

-- Linus Torvalds

nVidia doesn't distribute the tainted module; they undeniably encourage its use. Their actions may be infringing or it may be contributing to infringement. It seems to be in the gray area Mr. Torvalds addresses.

I just wish he would take another look at what TiVo does -- distributing GPL code that they then prevent users from using within the permissions granted by the coders when they chose the GPL.

Linus has spoken

Posted Dec 18, 2006 21:40 UTC (Mon) by Arker (guest, #14205) [Link]

That's funny, I thought he was way off.

He's talking about law. The move would not have been a legal move. He's completely off-base. It wouldn't change the legal situation at all. It *would* require that someone consciously patch the code to allow binary driver use - that patching would still be perfectly legal, and trivial, but it would ensure a little more conscious effort than is required to ignore 'tainted kernel' warnings is all.

Greg just withdrew the whole thing

Posted Dec 14, 2006 9:43 UTC (Thu) by linus (subscriber, #26348) [Link]

http://article.gmane.org/gmane.linux.kernel/475890

Greg just withdrew the whole thing

Posted Dec 14, 2006 11:12 UTC (Thu) by tajyrink (subscriber, #2750) [Link]

Yes, read that post... those are wise words. Like a lot of us, he would like the problem to disappear - and the problem is far bigger than "two tiny video drivers" (NVIDIA/ATI) - but it's not the best way to do it this way.

I like the way he describes managers, users (those that are always ready to defend their NVIDIA drivers etc.), customers and distributions.

Greg just withdrew the whole thing

Posted Dec 14, 2006 11:16 UTC (Thu) by coriordan (guest, #7544) [Link]

I got the impression that GHK withdrew the particular implementation. The general idea hasn't been withdrawn, has it?

Greg just withdrew the whole thing

Posted Dec 14, 2006 11:51 UTC (Thu) by linus (subscriber, #26348) [Link]

The general idea of refusing binary module loading, which is the subject at hand, was withdrawn since any licence violation happens at distribution time, not module loading time.

Greg just withdrew the whole thing

Posted Dec 14, 2006 12:56 UTC (Thu) by coriordan (guest, #7544) [Link]

Yes, but it seems there was some support for the position that life would be better without proprietary drivers (because it would help those writing free drivers).

The idea of making the kernel refuse to load the drivers has been withdrawn, but maybe another solution is possible such as publicly stating that proprietary drivers are derived works, and giving the public 12 months prior warning of this position.

Linus has said that he doesn't like copyright law stretching that way, but he also seems open to being convinced that copyright law does stretch that way, and that it's useful that it stretches that way.

Greg just withdrew the whole thing

Posted Dec 14, 2006 19:22 UTC (Thu) by jonabbey (subscriber, #2736) [Link]

Notice who you're responding to? ;-)

The problem with this position is...

Posted Dec 15, 2006 8:57 UTC (Fri) by hummassa (subscriber, #307) [Link]

copyright law does not stretch that way.
Derivative works, as I have stated many times, are those selected by the test "abstraction, filtration, comparison". If you say "I'm licensing this under the GPL but I consider any linking object's source as a derivative work" you are adding a restriction over the GPL terms (*), and the GPL forbids that (in section 6: "You may not impose any further restrictions on the recipients' exercise of the rights granted herein").
(*) because the GPL terms refer to the copyright law, not to your new, redefined "derivative works".

Motivations outside copyright

Posted Dec 15, 2006 17:03 UTC (Fri) by man_ls (subscriber, #15091) [Link]

Since when is kernel development motivated solely by copyright law? Are GPL_ONLY symbols governed by copyright law? I would assume they aren't, since they change over time while the law (and the international treaties it is based upon) remains the same.

Motivations outside copyright

Posted Dec 17, 2006 14:17 UTC (Sun) by hummassa (subscriber, #307) [Link]

GPL_ONLY symbols are AFAICT a "declaration of intent". They mean "if you
link to this symbol, then we (the kernel developers in genereal) think you
are thinkering too deep with the linux internals, so your module OUGHT to
be a derivative work of the kernel (and consequentially must be licensed
under terms compatible with the GPLv2)."

Motivations outside copyright

Posted Dec 17, 2006 14:29 UTC (Sun) by man_ls (subscriber, #15091) [Link]

Where is copyright law in that "declaration of intent"? Where is "abstraction, filtration, comparison"? Paraphrasing yourself up in this thread:
If you say "I'm licensing this under the GPL but I consider any linked module that uses this symbol as a derivative work" you are adding a restriction over the GPL terms (*), and the GPL forbids that (in section 6: [...])
Note that the GPL_ONLY mechanism doesn't just display a warning (as would be expected from a "declaration of intent"); it effectively prevents your use of the symbol at runtime, and therefore it might be argued that it constitutes an "effective protection measure" against copyright violations, as stated in the DMCA and the equivalent EU directive. Spooky.

I think we are having a communication problem, ...

Posted Dec 18, 2006 11:43 UTC (Mon) by hummassa (subscriber, #307) [Link]

And, as English is not my mother tongue, I'll try to sum it up
(apologizing for the loooong post):

Initially, coriordan has said: """The idea of making the kernel refuse to
load the drivers has been withdrawn, but maybe another solution is
possible such as publicly stating that proprietary drivers are derived
works, and giving the public 12 months prior warning of this position.

Linus has said that he doesn't like copyright law stretching that way, but
he also seems open to being convinced that copyright law does stretch that
way, and that it's useful that it stretches that way"""

In fewer words: "I suggest kernel developers make a joint statement saying
that they consider anything linking to the kernel or loaded in kernelspace
as a derivative work of Linux"

And I responded to it: """copyright law does not stretch that way.
Derivative works, as I have stated many times, are those selected by the
test "abstraction, filtration, comparison". If you say "I'm licensing this
under the GPL but I consider any linking object's source as a derivative
work" you are adding a restriction over the GPL terms (*), and the GPL
forbids that (in section 6: "You may not impose any further restrictions
on the recipients' exercise of the rights granted herein")."""

In (not really) fewer words: "they cannot do that, because [1] they can't
redefine what is or is not a derivative work and [2] if they do (in the
context of the kernel license) the kernel becomes undistributable because
it will be licensed GPLv2 + additional restriction (considering things
that are _not_ derivative works as if they were)"

You: "Since when is kernel development motivated solely by copyright law?"

I did not respond -- it never was motivated by copyright law, but GPL_ONLY
symbols are a clever hack that make _use_ of copyright law.

You: "Are GPL_ONLY symbols governed by copyright law?"

Me: """GPL_ONLY symbols are AFAICT a "declaration of intent". They mean
"if you link to this symbol, then we (the kernel developers in genereal)
think you are thinkering too deep with the linux internals, so your
module OUGHT to be a derivative work of the kernel (and consequentially
must be licensed under terms compatible with the GPLv2)."""

I.e., the GPL_SYMBOLS in the kernel are similar to the Copyright (C)
assingments: they are declarations contained in the text of the kernel,
for copyright law purposes.

You: "I would assume they aren't, since they change over time while the
law (and the international treaties it is based upon) remains the same"

They change over time because the definition that the kernel developers
have of "this and this symbols are part of an intimate part of the kernel,
so if people use this they are probably developing a derivative work"
change. But this has nothing to do with changing the copyright law. It's
more akin to re-licensing a part of the kernel.

In the parent post, you said: """Where is copyright law in that
"declaration of intent"? Where is "abstraction, filtration,
comparison"?"""

I hope I have stated clearly that the GPL_ONLY symbol declaration is for
_purposes_ of copyright, exactly to give _some_ clue for the people that
are applying "abstraction, filtration, comparison" over the kernel that
things that use those symbols probably should _not_ be filtered. That is
AFAIK (and I know a little bit about this) the extent of the GPL_ONLY
declarations.

Instead of writing:
EXPORT_SYMBOL_GPL(cascade_irq);

The kernel developer could have written:
/* Copyright (C) Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
** CAVEAT EMPTOR:
** If you use the symbol cascade_irq, then you are probably making a
** derivative work of this file. If this is the case, you must license
** your work under the GPL if you ever distribute it. */

Things above have the exact same legal value AFAICT.

Now, you raised the DMCA thing: """Note that the GPL_ONLY mechanism
doesn't just display a warning (as would be expected from a "declaration
of intent"); it effectively prevents your use of the symbol at runtime,
and therefore it might be argued that it constitutes an "effective
protection measure" against copyright violations, as stated in the DMCA
and the equivalent EU directive. Spooky."""

To this, I have to comment:

1. The DMCA is not only spooky, but downright evil.

2. Notwithstanding that, the GPL_ONLY symbols as "effective measure" would
not fly, because it is enough that you declare your module as GPL falsely
to the the GPL_ONLY mechanism (remember the "GPL\0 something else" trick?)
or that you compile a kernel where the GPL_ONLY mechanism is disabled.

2a. Notice that a kernel where the GPL_ONLY mechanism is disabled is a
valid, legal derivative work of the kernel ... as long as it is
distributed under the terms of the GPLv2. _NOTHING_ (legal) stops a distro
from distributing such a kernel. They just don't because it's easier for
support purposes to know if there is a non-GPLd module tainting the
kernel...

2b. Notice further, that as the kernel (via GPLv2) expressely allows for
the licensee to make any kind of derivative work (modulo the exceptions on
the GPL section [2]) including those circumventing GPL_ONLY restrictions,
this is /de/ /facto/ a waiver on the "effective measures" thing.

Certainly a communication problem

Posted Dec 18, 2006 23:40 UTC (Mon) by man_ls (subscriber, #15091) [Link]

And, as English is not my mother tongue, I'll try to sum it up (apologizing for the loooong post):
English is not my mother tongue either, and no need to apologize; we are here to understand these things better, and if someone is not interested she is free to skip the discussion.
GPL_ONLY symbols are a clever hack that make _use_ of copyright law. [...] I.e., the GPL_SYMBOLS in the kernel are similar to the Copyright (C) assingments: they are declarations contained in the text of the kernel, for copyright law purposes.
If you say so. I don't see anywhere in copyright law the meaning of GPL_ONLY symbols, while the (C) assignments are clearly regulated in title 17, 401.
I hope I have stated clearly that the GPL_ONLY symbol declaration is for _purposes_ of copyright, exactly to give _some_ clue for the people that are applying "abstraction, filtration, comparison" over the kernel that things that use those symbols probably should _not_ be filtered. That is AFAIK (and I know a little bit about this) the extent of the GPL_ONLY declarations.
That does not seem a valid thing to do; GPL_ONLY symbols belong in modules with GPL license, and this in turn is required only for derivative works of the kernel -- as you so explicitly stated, you cannot place additional restrictions on distribution if your code is to be GPL.

If, however, you just want those symbols not to be filtered, then the result might not be a derivative work; the kernel should run an "abstraction, filtration, comparison" test right away and decide that on the fly, and if the test is negative load the poor module. I'm afraid that is not how it works.

The kernel developer could have written:
/* Copyright (C) Copyright (C) 2005 Yoichi Yuasa
** CAVEAT EMPTOR:
** If you use the symbol cascade_irq, then you are probably making a
** derivative work of this file. If this is the case, you must license
** your work under the GPL if you ever distribute it. */
This statement would have no effect on loading the module, but declaring the symbol GPL_ONLY would. So it is hardly the same, even from a legal point of view -- see below.
2. Notwithstanding that, the GPL_ONLY symbols as "effective measure" would not fly, because it is enough that you declare your module as GPL falsely to the the GPL_ONLY mechanism (remember the "GPL\0 something else" trick?) or that you compile a kernel where the GPL_ONLY mechanism is disabled.
Those would be circumvention acts. Title 17, 1201 says:
No person shall circumvent a technological measure that effectively controls access to a work protected under this title. [...] a technological measure “effectively controls access to a work” if the measure, in the ordinary course of its operation, requires the application of information, or a process or a treatment, with the authority of the copyright owner, to gain access to the work.
It would seem to be the case with GPL_ONLY symbols, since modules have to declare their license at runtime and the mechanism prevents "access to the work" to infringing modules.
2b. Notice further, that as the kernel (via GPLv2) expressely allows for the licensee to make any kind of derivative work (modulo the exceptions on the GPL section [2]) including those circumventing GPL_ONLY restrictions, this is /de/ /facto/ a waiver on the "effective measures" thing.
If you can in fact waive such a thing. Software licenses cannot allow illegal things; if Microsoft's EULA said "Microsoft can silently kill you and not go to jail", this clause is invalid. Very different from the wording in GPLv3, which states that the licensed code cannot be considered an "effective protection measure". It is not clear that you can change the definition of a law in a license, but it is anyway different from our case.

Note that I didn't say that GPL_ONLY is an "effective protection measure"; just that it can be argued to be. The distinction is not bizantine in this case; you can invoke the DMCA even if it is later proved to be invalid, causing lots of grief in the process.

As a conclusion to this (too lengthy) message, I would say that the kernel provides for use restrictions where they like, not governed by copyright law.

If you are right about the DMCA,

Posted Dec 19, 2006 8:33 UTC (Tue) by hummassa (subscriber, #307) [Link]

Then it is far more evil then I initially thought of it... because it can
forbid certain modifications to GPL'd code that the GPL itself would
allow!! (like removing the GPL_ONLY loading mechanism from the kernel)
But:

> a technological measure "effectively controls access to a work" if the
> measure, in the ordinary course of its operation, requires the
> application of information, or a process or a treatment, with the
> authority of the copyright owner, to gain access to the work.

I don't know if the GPL_ONLY mechanism would need "in the course of its
operation a process or treatment with the authority of the copyright
owner" and, more, the copyright owner of the module being loaded _is_ the
person that is putting MODULE_LICENSE("GPL\0 I don't like it") on it. It's
equivalent to what DVD Jon is doing nowadays: he licenses a program that
encrypts your .aac files so they can be read only on the authorized iPods.

I obviouly agree with the rest of your post, with this additional remark:

> If, however, you just want those symbols not to be filtered, then the
> result might not be a derivative work; the kernel should run
> an "abstraction, filtration, comparison" test right away and decide that
> on the fly, and if the test is negative load the poor module. I'm afraid
> that is not how it works.

Yup. I don't know of any program that can do
the "abstraction/filtration/comparison" test :-)

But one must notice, both the existence of [1] a non-derivative of the
kernel work that uses a GPL_ONLY symbol and [2] a derivative work that
uses no GPL_ONLY symbols are completely possible. That's why I said that
GPL_ONLY symbols are only hints... for the technically-savvy
lawyer/paralegal that is verifying if something is or not a derivative
work of the kernel.

That being said, I am pretty positively sure that, as an example, the
nvidia binary driver is not a derivative work of the kernel, nor can the
kernel devs "declare" it to be a derivative work of the kernel (without
making the kernel undistributable), nor can they make anything Effective
(as opposed to "effective" as per USC 17, 1201 in your interpretation)
that would prevent forever the loading of the nvidia binary driver.

Greg just withdrew the whole thing

Posted Dec 14, 2006 22:37 UTC (Thu) by Ross (subscriber, #4065) [Link]

But it could be disallowed in a technical sense even without the DMCA backing it up legally. People could work around it, but not without patching. Not that I necessarily advocate doing that...

Greg should reimplement and resubmit...

Posted Dec 16, 2006 5:07 UTC (Sat) by tgall (subscriber, #217) [Link]

I wouldn't think this is a new idea, but none the less I'll post it and really it should probably go on lkml but it's late and I'm tired and well this is where i'm posting it.

What seems to be really desired is a system that kicks in at distribution time and is constructed in such a way that all kernel modules are GPL yet have such a low barrier of entry that anyone can build modules. Simple.

Why not include with the kernel a system for building kernel modules which attaches to every kernel module built a small piece of GPL code. Central to the core kernel which loads the module which executes the GPL code and would otherwise not work without it.

The person in their basement is not affected. Those that would distribute binary kernel modules would not longer be able to d