At The End of 2006, Linux Still Lacks Wireless Drivers

This isn't news for anyone running Linux, of course. The problem is that many hardware manufacturers simply don't support Linux, or if they do, they don't do it in a very open manner. 'The battle for wireless network drivers' covers this in the context of wireless drivers:

...Unrestricted redistribution of firmware files is satisfactory for some open source operating system projects like OpenBSD, FreeBSD, and many varieties of GNU/Linux, but others like Fedora Core and Debian demand an entirely free software environment, so redistribution of the firmware without the ability to modify and distribute the source code is prohibited. The standard response to this from the Free Software Foundation is to reverse-engineer the device and provide free firmware. So even though it is very difficult -- almost impossible -- to do it in the absence of documentation, could such firmware eventually be reverse-engineered? The development team that works on the OpenBSD operating system has a lot of experience with reverse-engineering, but both project leader Theo de Raadt and OpenBSD network driver programmer Jonathan Gray agree that such work would be impractical. Of reverse-engineering firmware and the hardware that it runs on, de Raadt told me, "We can sometimes reverse-engineer how to talk to a device... some are worse than others... but imagine reverse engineering the firmware of 300-400 devices on the market today! Behind their little ARM/MIPS buses, they are a no man's land of undocumented-ness and bugs; hundreds and hundreds of bugs created almost all by the realities of 'time-to-market pressures.'" The issue, in other words, is made worse by hastily-designed hardware that doesn't work as it should, and requires specific workarounds in the firmware and/or driver. Sometimes manufacturers provide patches or documentation for driver programmers; sometimes they don't.

So instead of lobbying for documentation to write open source firmware, de Raadt would prefer to simply have the right to freely distribute necessary proprietary firmware files with his operating system, along with correct firmware interface documentation so that a driver can be created, and information from the manufacturer regarding bug workarounds. Many network chip manufacturers stubbornly refuse to grant these requests, however. Theo de Raadt told me in an email, "Our efforts to do more wireless involves a few approaches. We reverse-engineer what we can. We borrow from other people's reverse-engineering lessons where we can, for instance, prism54.org is a Linux team, but their reverse-engineer work has resulted in knowledge which we can obviously use to write a BSD driver. And finally, we dialogue directly with vendors to get more free access to documentation, early access to hardware, or firmware distribution rights (sometimes there is just no other way). Some vendors (in particular Ralink or Realtek) will even give us hardware before it goes on sale. Some give us documentation, some give us code. But largely a lot of American vendors are still stupidly resisting giving anything. In any case, all these efforts together now mean that we have more wireless support in OpenBSD than all the Linux distributions. Maybe even combined!"...

Jem Matzan dug in - and tried contacting manufacturers. A few responded, the rest seemed to outsource the author to the dog-and-pony-show department. If you're using Linux (especially in a portable piece of hardware), this article is a must read.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Easily link to terms in various wikis. For help, see <a href="/interwiki/3">interwiki</a>.

More information about formatting options

CAPTCHA
Sorry, but you are required to have some math knowledge to use the internet.
6 + 10 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Syndicate content