Dec 30

Allison Randal

Allison Randal

To binary or not to binary, that is the question

The Ubuntu developers are in the process of deciding whether to enable binary-only drivers by default in their installation process, under certain limited circumstances. This decision process has prompted the latest wave in a conversation that's nearly as old as Linux itself. Some see this step as a compromise on the principles of freedom, and point out the numerous practical problems with binary drivers: lack of portability, dependence on the vendor to fix security flaws, dependence on the vendor to continue supporting your hardware, etc. Others take a pragmatic perspective, draw the line that Ubuntu will not cross, or point out that Ubuntu developers also care about the principles of freedom and intend to educate their users on the reasons for choosing open source drivers and hardware vendors that offer open source drivers.

Ultimately the question boils down to "What action is most likely to get us what we want?" Both the pro-binarists and the anti-binarists want more open source drivers, and both want more Linux users.

Does the use of binary drivers hinder the development of non-vendor open source drivers? That's a common argument, and certainly avoiding binary drivers has been beneficial in communities like OpenBSD. But the target audience of easy access to binary drivers is specifically users that don't have the technical skill to install binary drivers or work around feature limitations of alternative drivers. This audience isn't able to contribute to driver development, and many can't even submit bug reports, so installing binary drivers for these users doesn't take significant resources away from open source driver development. More importanly, the biggest obstacle to non-vendor open source drivers isn't limited developer resources (open source developers come and go as they please, with complex layers of motivations that could fill an entire book). The biggest obstacle, even for OpenBSD, is lack of access to detailed hardware specifications.

Does refusing to use binary drivers encourage companies like Nvidia and ATI to release their driver code as open source or release hardware specifications? They don't seem to have noticed. What would get their attention? You would expect that long-standing security flaws in the binary drivers would get their attention, but they haven't. You would expect that offers by the Linux kernel developers to help improve the drivers (and the significant improvements these developers have made on other open source drivers) would get their attention, but they haven't. There have recently been some conversations around the idea that binary drivers are a copyright infringement on the Linux kernel. I really don't know if they'd be able to prove such a case in the courts (the law is generally varying slippery shades of grey rather than black-and-white), but if they did, I expect that hardware vendors would still find ways to satisfy the letter of the law without actually releasing their core code as open source.

One thing that does catch the attention of pretty much any company is money. Money and market share. Nvidia and ATI don't care if people use the binary drivers or the open source drivers. They don't care if people buy the card and stick it on a shelf unopened, as long as they buy the card. The percentage of people individually buying a video card is small--a drop in the bucket of the overall market share--so not really worth their attention. Most people purchase a pre-built machine from one of the big desktop vendors: IBM/Lenovo, Dell, Gateway, etc. One of those vendors would have the purchasing power to make Nvidia/ATI stand up and take notice. But then, none of these big vendors supports Linux on the desktop in a significant way, so they don't have any motivation to demand open source versions of the drivers.

What would it take to make money and market share work for us in getting the vendor-released open source drivers we want? We would need a strong partnership between a Linux distributor and a big desktop vendor, enough sales of Linux desktops to be significant to the desktop vendor's bottom line, and a chain of market demand for open source drivers from distributor, to desktop vendor, to hardware vendor. If Ubuntu continues to gain users at the current rate, continues to make Linux easy and fun to use, in a few years Canonical could be in a position to make this scenario a reality. Imagine a joint project between, say, IBM, Canonical, and Nvidia/ATI to release their drivers as open source. That would be a powerful force of change.

Is enabling binary-only drivers by default universally good? No, and I'm glad that Debian, Fedora, etc. will continue to take the hard line. Is enabling binary-only drivers by default universally bad? No, it's guaranteed to pull in some users who wouldn't otherwise try Linux, and may ultimately give Linux a new kind of leverage.

Sometimes it's most effective to hit a problem from every possible angle. The fact that individual distributions of Linux can take different tactics that fit their goals and priorities is one of the great strengths of the open source community.

tags: open source  | comments: 19   | Sphere It

Previous  |  Next

0 TrackBacks

TrackBack URL for this entry:

Comments: 19

  John [12.30.06 05:29 AM]

the way i see it, as long as Ubuntu / Novell etc abide by the letter of the GPL and other licences they should do waht they can to achieve their goals.

obviously they'll have to weigh up the costs and benefits - e.g. in ubuntu's case will we alienate the community, will be attract more newbs and so on.

FOSS is a free market, vendors should be encouraged to follow their own visions, the market will decide whether they are right or wrong in the long run.

  Steve Loughran [12.30.06 07:16 AM]

This is a real troublesome area. I like my proprietary nvidia driver, though if I were to buy my own PC I'd spec ATI.

What I really dont like is hardware hidden under NDA. I wasted yesterday trying to turn an old laptop into a DVD player for the living room, but the tv-out controller is partly NDA-covered and there is no sourced driver. I've seen this before in laptop parts, the OEM takes the lowest cost mainboard design from the Taiwanese ODM (Quanta, compal usually) and doesnt care about the details as long as it works on Windows.

If big corporate customers go linux on the laptop, and sales of 10K laptops are seen to go because laptop features dont work on linux, then the problem gets fixed. Otherwise, nothing is going to happen. Making it easy to bundle binary stuff is a short term solution.


  frits [12.30.06 10:16 AM]

This will lead to Ubuntu gaining market share, but i can't see why any vendor would open source their drivers if the Linux distributions include the closed source ones anyway.

Once Ubuntu includes the binary drivers, there's no way back.

  Allison Randal [12.30.06 10:40 AM]

What I really dont like is hardware hidden under NDA.

The open hardware movement is just as important as open source, and doesn't get nearly enough attention.

If big corporate customers go linux on the laptop, and sales of 10K laptops are seen to go because laptop features dont work on linux, then the problem gets fixed. Otherwise, nothing is going to happen. Making it easy to bundle binary stuff is a short term solution.

I agree. Hopefully in this case the short term solution will help kick us toward the long term solution by increasing the sales of Linux desktops and laptops.

  Allison Randal [12.30.06 11:00 AM]

This will lead to Ubuntu gaining market share, but i can't see why any vendor would open source their drivers if the Linux distributions include the closed source ones anyway.

The hardware vendors don't care what the Linux distributions do, it's as simple as that. And they're not going to care until the lack of open source drivers directly threatens their profits in a big way.

Once Ubuntu includes the binary drivers, there's no way back.

No way back from what? People already use binary drivers. The only change is giving non-technical users access to the same features that Linux gurus already have.

  shane [12.30.06 04:06 PM]

Let Feisty install with the open source drivers, then have a customization dialog on first boot (and also some config checkbox somewhere for later) that says there are more powerful, but proprietary, drivers available and the user can click �install now� to download and install (explaining why its not installed by default).

Right next to it, put a button that sends an email to the detected hardware vendor complaining about this extra step. Then, vendors will see just how many customers it does affect and act; by Ubuntu doing it for the end user without interaction, there will be no market backlash or incentive to open up.

Maybe by the time Wacky Walloby (or whatever the next next Ubuntu will be) is being prepared, the vendors will have gotten the message and this will be irrelevant, but right now it is not the right move. Ubuntu is getting very popular, this is the time to use that install base to actively petition the hardware vendors to recognize their needs as a market, not cave-in to hardware vendors who are ignoring their customers.

  David Nielsen [12.30.06 07:11 PM]

Thank for this opinion piece, being on the staunce no proprietary drivers front (all drivers being compiled really are binaries so proprietary seems more fitting for the purpose of debate) I've seen a lot of flak lately for holding that same position.

I have mostly been taken aback at Ubuntu' unwillingness to fund and support development of free alternatives so they aren't even trying to make a path out for their users, they leave that to other people to do.

As a response I started a pledge driver to thank the developers of the Nouveau nVidia replacement driver for taking on this major task (clicking my name will take you there). I figured that amongst the many freedom loving users of free platforms there would be a 1000 people willing to give 10$ to show their support of the path that after all got us where we are today. To date nearly half that has signed up with the pledge drive closing on the same day as the Feisty feature freeze (8th of Feburary) interested parties still have time to sign up.

I think we do need to remember where we came from, we have seen far worse functionality gaps in the past and have always made up so I fail to see why we can't do so now and reap all the benefits of free drivers. History also shows us that once we reach a certain level of functionality the vendors are likely to work with us, even nvidia has done so in the past (the forcedeth driver).

  Alan Campbell [12.31.06 06:41 AM]

This problem (closed proprietary hardware) is long overdue for fixing. It affects things like printers, Canon for example, not just internal bits of the PC. We really need to educate the manufacturers that Linux is on somewhere near 10% of desktops now, and increasing, and that if they don't want to lose that amount of sales to their competitors, they need to think about doing the right thing.

At one time, before Windoze, most items of hardware came with a comprehensive manual that described how to program the thing. Somewhere I still have the manual for my first SVGA card, and an early printer. Writing drivers from the contents of these manuals would have been trivially simple. I even remember WordPerfect for DOS, probably either 4.2 or 5.0, had a program which asked a lot of questions about control codes etc, easily answered from the manual, and then churned out a custom driver that worked perfectly, for a new and hitherto unknown printer that we acquired. That is how it should be, given the interface info. Generating a customised graphics driver is conceptually not very different, albeit more complex.

Now, the correct, and low-cost place to publish this info is on the web. Saves trees, for a start, and most users will not need it.

But they seem to be driven by the fear that disclosure of the interfaces (not the innards, just the interfaces) will help their competitors to gain commercial advantage. But it just is not so. Only serious competitors like ATI would have sufficient resources to reverse engineer an Nvidia card, and I doubt that they would have time to do so, being busy developing their own products. The average hacker, or all but the very largest Chinese plagiarists, would not have the resources to reverse engineer a chipset from its interface specification, so why bother to keep it secret. Publish it, and let people write reliable drivers, so you sell more hardware, not less.

The early acceptance of Unix in scientific andengineering circles was partly because the kernel API was completely open to public view, so absolutely anyone could write a program, without needing to see inside the kernel. (Source was is the main reason why the PC gained market share. Same for early network cards, and lots of other things.The entire PC industry was founded on openness, such that anyone could get the in available, at a not unreasonable cost, but most people did not need it.)

The same applied to early PC hardware, the spec was in the IBM Advanced Technical Reference Manual, as I think it was called, available at modest cost, and thatformation to add a new piece of hardware, or a driver. (I did design a specialised expansion card many years ago, using publicly available information, and it, and its driver, worked.)

Hardware designers used to delight in the voluminous data sheets provided by Intel, AMD, Texas, Motorola etc which made it bvery easy to design their peripherals into systems, unlike most of today's motherboard chipsets.

Returning to openness of the interfaces will benefit everyone, boost hardware sales, and generally help an industry that is somewhat stagnant at the moment. But it is up to the hardware manufacturers, Nvidia and the rest.

It is great to fund developers to to what they are best at, which is to develop. But it is far better to persuade manufacturers to publish their interface specifications. But maybe the EU could help here, after all they are forcing Gates to publish his network interfaces, a step in the right direction. I think that as well as sending money to the developers, we should be lobbying politicians everywhere, to get a level playing field for all.

  Ian Darwin [01.01.07 10:38 AM]

Every time you install a binary-only driver, you prove hardware vendors' belief that they can get by without showing us how poorly written their drivers are. Alan Campbell's call for legislation is silly - if you don't want closed-source software, just don't buy the hardware it depends upon. A journey of a thousand miles begins with a single step.

  Allison Randal [01.01.07 03:29 PM]

Alan Campbell's call for legislation is silly...

Legislation can help, but it's only likely to be enforced against a few gross offenders, while others will continue to skirt around the edges as they always have.

At one time, before Windoze, most items of hardware came with a comprehensive manual that described how to program the thing.

I'd be happiest if the vendors released both hardware specs and open source drivers. Just the hardware specs would be enough to allow non-vendor open source drivers to be as good as (likely better than) the binary-only drivers. I suspect, though, that we're more likely to get vendor-released open source drivers than we are to get full hardware specs, because the hardware vendors will think of it as giving away less "business critical" information.

Only serious competitors like ATI would have sufficient resources to reverse engineer an Nvidia card, and I doubt that they would have time to do so, being busy developing their own products.

I'm sure they're doing exactly that, just like the major car manufacturers have departments dedicated to taking apart competitors' cars to see what makes them tick. You might get somewhere with an argument that the competitors are already deconstructing each other's cards, so the hardware vendors might as well publish the specifications and rely on patents to protect their innovations. (I hate patents, but they do have the advantage of requiring the inventor to publish partial specs, which allows others to assimilate the ideas and innovate further, even if they can't directly copy.) Of course, making that happen would require a set of high-level deals between some large companies. But then, many of these companies already have patent cross-licensing deals in place, so it might just be an extension of existing agreements.

  mario [01.02.07 06:19 AM]

Thanks for this rather insighful post.

Personally I believe, a default installation of binary drivers is a bad idea. An informative prompt and leaving (newbie) users the CHOICE to install them however, would be a rather smart move - if Ubuntu takes it. Informed users (and lots of them) can have a much bigger impact on hardware vendors, than a non-existant userbase.

  Dan [01.02.07 06:20 AM]

My idea of a compromise would be Ubuntu et al to flag up -- on first after installed boot prehaps? that there are other drivers available but they are proprietary drivers and therefore the quality of them can't be guaranteed... Think how Windows does it with Signed and unsigned drivers. Obviously my big assumption is a working network driver to download the proprietary drivers from the net.

  Dennis Linnell [01.02.07 08:25 AM]

Thank you, Allison, for writing a well reasoned and balanced assessment of the binary drivers issue. After reading your piece yesterday, I contemplated contributing to the discussion, but practical considerations intervened, and instead I spent the time installing Ubuntu 6.10. As pure coincidence, a poor initial impression of the open source video driver for NVidia presented itself as a real eye opener.

Without getting into the nitty-gritty, within minutes after completing the install (including all 82 semi-automatically downloaded updates), I ran into two significant bugs, one of which crashed X Windows. Research showed that both bugs in the open source video driver have remained unpatched for months. The binary driver resolved the problems, introduced no obvious new bugs, and ran subjectively quicker than its open source counterpart.

Clearly Grandma will have a tough time using Ubuntu as long as so many such problems remain. She doesn't care whether the hardware is open and neither do most consumers. I'd prefer she use open source drivers, but she would rather have a computer that just works. To build market share, distributors must deliver software to the mass market that meets the 'good enough for Grandma' quality standard straight out of the box.

I doubt that blaming problems on the lack of hardware specs is productive. We need organized effort and ingenuity to get problems fixed. The key is to acknowledge short term realities, make pragmatic business decisions, and get on with building market share. Once the market is in place, hardware vendors will follow. What's needed is a healthy dialog on pragmatism, and thanks to Mark Shuttleworth's leadership and your writing, we're getting it.

  chromatic [01.02.07 11:19 AM]

@Dennis, I greatly hope that you report the significant details of your two bugs with the nv driver ("Yes, still occurring; here is the information from my system"). Otherwise, you've inadvertently supported my wry belief that the existence of the binary blob actively harms development of the free driver.

  hondaman [01.02.07 04:35 PM]

Linspire was hung out to dry by the community for doing exactly the same thing. If Ubuntu gets away with it, it will be a shame.

And I have no problems at all with closed source drivers. I care if it works. In the end, thats all that matters.

  JamesL [01.02.07 05:25 PM]


I have to say my experience has been the opposite of yours. I can run my Ubuntu system with the Open Source nVidia drivers quite nicely, with no problems at all, other than possibly missing out on some "eye candy", which I usually disable within a few days anyway.

But *each and every time* I've tried installing the proprietary nVidia drivers under Ubuntu 6.06 or 6.10 (various nVidia versions), it will screw my system up *so much* that I have to wipe out my installation and install from scratch. No amount of uninstalling, restoring old xorg.conf files, etc. will bring the system back from the sheer state of destruction the proprietary nVidia drivers will inflict upon my system.

  gerry_g [01.03.07 09:39 AM]

One thing only partly addressed is potential mainstream users versus compiling for kernel or X changes.

Mainstream users could care less where the driver or library comes from as long as it works. Mainstream users are not into recompiling drivers every time there is a kernel or X change.

I know a driver API is heresy in this world, it sure is one thing MS did fairly well. Binary drivers (whatever the source) tend to at least work for a few years. Example many 2K unsigned drivers work fine in XP.

  chromatic [01.03.07 11:19 AM]

@gerry, interesting thought, however: if a stable driver ABI is so good, why does Linux support far more devices than Solaris? (I've heard that Linux supports more devices than Windows.)

  gerry_g [01.03.07 01:35 PM]

@chromatic - How many PC's really run Solaris, how long has it been free?

As far as Linux supporting more devices, how about wi-fi, new graphics...?

Interesting thoughts

Post A Comment:

 (please be patient, comments may take awhile to post)

Type the characters you see in the picture above.