Linux

Solving the open source vs. proprietary driver debate in the Linux kernel

The Linux Driver Project seeks to close the gap between purists who don't want proprietary code from device drivers embedded into the Linux kernel and the pragmatists who don't want users to be limited in their hardware choices.

One long-running controversy in the open source community has to do with device drivers and whether binary modules (proprietary code provided by device manufacturers, such as Nvidia) should be allowed within the Linux kernel. Purists believe that including these closed-source driver modules violates the open source General Public License (GPL). Some kernel contributors have even called for an outright ban of these binary modules, which has met with resistance from the more practical-minded in the Linux community, notably by Linus Torvalds himself, who reportedly called it both "shortsighted" and "stupid."

Obviously, limiting users of the Linux kernel only to the open source drivers that are available is not preferable. Linux aficionados want to use any hardware they darn well please, whether or not they have to use a closed-source driver to support it.

Riding into the breach between the purists and pragmatic, the Linux Driver Project launched in early 2007, headed up by Greg Kroah-Hartman. The LDP proposes a compromise, offering to device manufacturers:

...a group of Linux kernel developers (over 200 strong) and project managers (over 10) that develop and maintain Linux kernel drivers. We work with the manufacturers of the specific device to specify, develop, submit to the main kernel, and maintain the kernel drivers. We are willing and able to sign NDAs with companies if they wish to keep their specifications closed, as long as we are able to create a proper GPLv2 Linux kernel driver as an end result.

I read about this ongoing project in an interesting article from IT Pro in the UK, whose author Richard Hillesley makes the argument: "Open source drivers will become an imperative, rather than a choice, for device manufacturers who want to break into new markets and extend their user base." Hillesley makes his argument for why manufacturers should drop their resistance to open source drivers (or at least, take advantage of the LDP's offer) and reap the benefits of better maintenance, support, and the distributed costs of development.

About

Selena has been at TechRepublic since 2002. She is currently a Senior Editor with a background in technical writing, editing, and research. She edits Data Center, Linux and Open Source, Apple in the Enterprise, The Enterprise Cloud, Web Designer, and...

19 comments
lastchip
lastchip

I've a really simplistic view on life (some would say I'm just plain simple!) and like many others, I just want things to work. Life is too short to be spending hours trying to make a piece of hardware work on any system, and although Windows is the most popular, it is not totally exempt in that department either. The manufacturers should realise two important things: 1. Linux is not going to disappear over night, and 2. The developers mentioned aren't a bunch of script kiddies. They are professional IT developers that happen to enjoy writing this sort of code and are *very* unlikely to compromise any "trade secrets". Manufacturers need to wake up and smell the coffee. For example, HP has been working hard in co-development with the community to provide drivers for their printers. So guess who's printers I now recommend to my small (but growing) band of Linux clients? Those manufacturers that fail to adapt to a changing market are doomed to failure. It's as simple as that. I really hope that all manufacturers will look seriously at this compromise, embrace it and make it an opportunity, to expand their business. If they want to go further and open up the source code; well that's the icing on the cake.

Jaqui
Jaqui

to use open source drivers, but I'll take any driver that will power my hardware over no driver.

Selena Frye
Selena Frye

I've definitely found this to be true. What do you think of the Linux Driver Project? Do you think vendors like Nvidia will finally knuckle under to pressure to provide open source drivers?

Neon Samurai
Neon Samurai

I think that's the printer/scanner I have at home that spends most of it's time turned off. I'd love to get it working outside of my Windows boot and VM but no luck yet. (Edit): meant AIO 810, not AIO 180.. not at home to look at the label right now.

Peconet Tietokoneet-217038187993258194678069903632
Peconet Tietokoneet-217038187993258194678069903632

Windows is a "sign on the dotted line to use" type of software. With Linux you can do your own thing, like writing your own Kernel if you want to or writing your own drivers. Yes we all want a "get up and go" sort of software, but in the mean time if you get used to writing the code it gets easier. Things like coding has to be learned the hard way. How do you think Linux can to be as it is today?. Books are also a good point for reference on coding. Life is different, life is Linux. :)

Peconet Tietokoneet-217038187993258194678069903632
Peconet Tietokoneet-217038187993258194678069903632

I think Linux is a very good operating system. At least you have the freedom to change drivers or add on/ special instructions where you can not in the Windows environment (i mean changing the Kernel code here). To really understand Linux is to use it and do the code bit to truly understand the in's and out's. :) Plus you will not get anyone knocking on your door saying you have changed their code.

Jaqui
Jaqui

NVidia does supply open source drivers. they are only about 95% of the proprietary drivers NVidia also makes for linux. :D I've found that for my own needs, the open source NVidia drivers work just fine, the extra bit of functionality provided by the proprietary drivers isn't needed. and yes, it's NVidia's own developers that put the open source drivers out, copyrighted to NVidia.

Michael Kassner
Michael Kassner

I didn't know this type of controversy existed. Being cynical, I would suggest the answer will be found in the cliche "follow the money."

rmlounsbury
rmlounsbury

Drivers are way to painful on Linux. Especially when your only option is to compile from source which makes the entire process unnecessarily long and painful. My best example of incredibly bad Linux driver writing is VIA. I have an HP MiniNote 2133 which is VIA everything and their drivers are horrible.

lastchip
lastchip

Can't find much about an 810. In fact, the Dell AIO 810 is more prominent - isn't that is it? If it is HP, you could try the HPLIP drivers (if you haven't already), but beyond that, I'm afraid I'm not much help to you.

lastchip
lastchip

Having used Linux for the last ten years (on and off), but only seriously in the last two, I understand fully the implications of using Linux over Windows. However, the world is moving on. Since Microsoft (arguably) dropped is biggest clanger to date with Vista and the Asus Eee taking the market by storm, this is a golden opportunity for Linux to become more mainstream. More people than ever have now heard of Linux, something inconceivable a couple of years ago. But in order for that to become a reality, hardware (particularly peripherals) have to become easier to connect and use. This inevitably means Linux drivers freely available and not having to hunt down some obscure driver that only three people in the world know about. In other words, just as Windows drivers are part of the package, so should Linux drivers also be. I'm not criticising Linux at all. Debian is now my main computer operating system and Windows has taken a very firm back seat, but I feel that this initiative has the potential to be a win, win for everyone.

Jaqui
Jaqui

isn't important for most end users though. they just want to have their hardware work. they don't care if it is a proprietary driver or open source driver. it's the only thing I agree with most end users on. :D For those who do want to really know the operating system, yes, getting into the code is the best way, and you cannot do that with a proprietary operating system. sure, reading spcs and apis can give you some knowledge, but mucking around in the code and breaking things, then fixing them is how you are really going to learn it.

Neon Samurai
Neon Samurai

GPU, combined printer/scanners, VIA.. there are some areas where a very large synthetically imposed issue exists. I say synthetically because there are many ways vendors can gain hardware support on FOSS platforms from writing there own kernel modules through the spectrum to providing interface specs and letting hardware support apear in the kernel with no expense in there own budgets. In the end, the manufacturers can only benefit from a larger potential consumer base. Even the "but our competition will see how we write drivers" falls flat on it's face when serously considered: a. if your competition is waiting for you to release hardware so they can copy it by seeing something in your drivers, they are already way, way, behind. b. providing a generic driver interface will easily hide any proprietary crap they claim the driver would reveal. c. providing driver specs and allowing other's to build support into various OS kernels only opens one up to a larger market while saving that development expense to put back into making better hardware; what there business specialty is supposed to be after all. d. A manufacturer's fifty or a hundred developer team limited by budget and deadlines while motivated by a paycheque has far less a chance of producing what a hundred or thousand self motivated developers with a personal interest in seeing the driver mature. e. when a manufacturer looses interest in the hardware, the driver development is usually stopped also. In a community, that driver will continue to be developed and refined as long as the hardware component is in use (much longer than it's on retail shops). I've heard of a few hardware makers that have opened up drivers and the results have been very beneficial to them and there customers. I haven't yet heard a case where the outcome was negative though I'm open to hearing of such cases. But the issue remains. Bleeding edge consumer hardware like GPU and gaming hardware get Windows drivers first and maybe get drivers for other platforms. As if the GPU or game controller is only going to be used with Windows. I have a feedback flightstick sitting beside my mouse and technical flight sims for both Windows and Linux based OS. The kernel devs have there own internal debates mentioned in the article. As an end user, I'd prefer a community developed driver once testing shows me that it is the better choice but I'll use a binary blob if that's what it takes to get functionality out of my hardware until then. nVidia continues to claim there is no hope of seeing the source or specs. If they can make a driver better than community development then fine. ATI's closed binary was crap compared to the community (20's FPS rate versus community running 3D at full FPS rate though without all the potential features active). Now, I am watching the ATI drivers with AMD being open about them now and if the board is better next system upgrade I'll switch back; last buy, it wasn't. In general, the amount of hardware supported by the kernel and X server is staggering compared too other platforms. The kernel ships with support for R/C control and receiver radios if one wants to make use of it. The bleeding edge blinking lights remains an issue as long as manufacturers imposed synthetic limitations by not deciding to develop or allow development of support for there hardware. Now, I'm going to go start my stopwatch and see how long it takes someone to come in slinging mud.

Neon Samurai
Neon Samurai

It is the AIO 810 printer/scanner. Nice looking bit of hardware though the Windows drivers and overdone print progress graphics seem more like novelty addon software that the actual manufacturer's drivers. I'll have to give the HPLIP driver a try though if it's in the CUPS list. If it works, I won't be limited to printing from a Windows VM or hard boot and having a bootable Windows becomes a step more voluntary.

Neon Samurai
Neon Samurai

That line at the end may have been a clue worth investigating further. I confuse me too sometimes though. ;)

Neon Samurai
Neon Samurai

.. but realisticly, the best we can hope for any time soon is true modular design as promised in Win7.. we'll see though. I see no reason why it will be my primary OS outside of work imposed use in future.

Peconet Tietokoneet-217038187993258194678069903632
Peconet Tietokoneet-217038187993258194678069903632

Linux is slowly becoming mainstream and more easy to apply than it was. That is what i like about Linux you can change the system to suite your needs, where as in Windows your are held to the EULA. To change the way Windows works Microsoft needs to open up its coding then we will see a good difference not only in speed but reliability also. But that will never be. Ahh such as life. :) Happy coding.

Neon Samurai
Neon Samurai

the draketool used to configure X detects my ATI or Nvidia GPU. It then tells me there is a community and closed source driver that will work and asks which I want to use. Read the brief description then confirm that one wants the closed source driver installed.. tada.. It must be about the same with other distros these days. I know Debian and Ubuntu both have grui apps to install the ATI and nVidia X support.

Editor's Picks