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: