|
|
Subscribe / Log in / New account

Toward a free Atheros driver

The Atheros family of wireless chipsets finds its way into a number of network adapters and laptop systems. It is a flexible and capable device, with one little limitation: there is no free Linux driver available. Linux support can be had via the freely-downloadable MadWifi driver, but, at the core of that driver, there is a binary-only "hardware access layer" (HAL) module which does much of the real work. This module has all of the problems associated with proprietary drivers: it cannot be audited or fixed, it cannot be improved, it is only available for the kernel versions and architectures supported by the manufacturer, etc. But, for Linux users, the choices are MadWifi or nothing.

A free Atheros HAL module called "ar5k," written by Reyk Floeter, has been in circulation for a couple of years; OpenBSD uses it. But this code has long been followed by allegations that it was improperly developed and potentially subject to copyright claims by Atheros. In the current climate, nobody wants to risk bringing possibly tainted code into the kernel; the potential consequences are just too severe. So, while the desire to support Atheros devices in Linux remains strong, the existing HAL has not been considered and little work has been done to bring that about.

Except that, as it turns out, work has been quietly happening in an unexpected place. The Software Freedom Law Center was asked by the ar5k developers to look at the development history of the code and come up with a pronouncement on whether it was legitimate (from a copyright law perspective) or not. On November 14, the SFLC produced its answer:

SFLC has made independent inquiries with the OpenBSD team regarding the development history of ar5k source. The responses received provide a reasonable basis for SFLC to believe that the OpenBSD developers who worked on ar5k did not misappropriate code, and that the ar5k implementation is OpenBSD's original copyrighted work.

This finding should clear the way for the entry of the free Atheros HAL into the Linux kernel - eventually. But there are a couple of problems which need to be overcome first.

One of those is the general level of upheaval in the Linux wireless subsystem. The developers still intend to move over to the Devicescape stack and to get that code into the mainline, but there is still work to be done in that area. But a new wireless driver which does not work with Devicescape will have a harder path into the kernel. There is an effort to move MadWifi over to Devicescape (it's called "DadWifi"), so that might be the quickest path for Atheros support to get into the kernel.

The other problem, however, is that code based on the HAL concept tends to be unpopular at best. A HAL is typically seen as an unnecessary abstraction layer between the driver and the hardware which serves to obscure what's really going on while adding no real value of its own. So developers who propose HAL-based drivers are usually told to go away and come back once the HAL is gone. There is no real reason to expect things to happen differently this time around.

But, even if it can't be used directly, the ar5k code is now fair game for reference and eventual adaptation into a Linux driver. There are enough developers out there with an interest in making Atheros adapters work that the chances of this work getting done in the (relatively) near future are relatively good. The list of devices which are not supported by Linux is about to get shorter.

Index entries for this article
KernelDevicescape stack
KernelNetworking/Wireless


to post comments

HAL-free Atheros

Posted Nov 16, 2006 9:32 UTC (Thu) by zdzichu (subscriber, #17118) [Link]

And what happened to HAL-free Linux Atheros driver developed by Mateusz Berezecki? It was available at ath-driver.org, which seems dead.

Toward a free Atheros driver

Posted Nov 16, 2006 18:22 UTC (Thu) by thyrsus (guest, #21004) [Link] (5 responses)

I have read that the atheros hardware is capable of violating FCC legal requirements; that revealing how the thing actually works would make someone (manufacturers?) liable for any mischief the device caused; and that this was one of the reasons for the binary obfuscation. Could someone point me toward an authoritative discussion of the matter?

Toward a free Atheros driver

Posted Nov 17, 2006 22:29 UTC (Fri) by brouhaha (subscriber, #1698) [Link] (2 responses)

If someone modified the code such that the device violated part 15, the party that modified the code in that manner would be the legally responsible party. No one else would be liable unless it could be shown that they "induced" the violation.

IANAL, though, so YMMV.

Toward a free Atheros driver

Posted Nov 19, 2006 20:51 UTC (Sun) by Baylink (guest, #755) [Link] (1 responses)

I'm not a lawyer either... but I was a ham. The issue is Part 15 type acceptance. In the case of a software-controlled radio, the firmware that controls the card would be part of the type-accepted unit -- and whatever part of that might run on the host PC would thereby *also* be part of it.

No, this is not authoritative with citations, either, but hopefully, it at least clarifies what people are asserting is the issue.

Toward a free Atheros driver

Posted Nov 19, 2006 21:40 UTC (Sun) by brouhaha (subscriber, #1698) [Link]

Sure, but if Atheros ships a Windows driver with the card, and the combination has part 15 type acceptance, that doesn't make them liable if someone else writes different software for it.

Atheros' claim that this is why they can't publish the documentation on their chipset doesn't wash either. There's a long history of people modifying radios to operate outside factory spec, either in compliance with the regulations or not. The fact that schematics of radios and documentation on the circuitry was published by the manufacturer of the radio didn't make them liable for the third-party modifications.

Toward a free Atheros driver

Posted Nov 23, 2006 12:41 UTC (Thu) by simonckenyon (guest, #41836) [Link] (1 responses)

The HAL enforces the FCC rules. This was the reason for its creation in the first instance. The author has a good track record when it comes to "free" software, so would not have done it this way unless there was no alternative.

Toward a free Atheros driver

Posted Jul 21, 2007 5:28 UTC (Sat) by rasp (guest, #46357) [Link]

But that is like shooting the messenger alas there's no way of preventing
people stabbing each other with the likes of kitchen knives.
For instance (at least in germany) it is legal to _buy_ HAM Radio equipment, but it is illegal to _operate_ it without a license....
(Just my 2 Pfennig :-) )

Toward a free Atheros driver

Posted Aug 2, 2008 1:36 UTC (Sat) by asdf (guest, #53220) [Link]

I think it's better to look at how the binary HAL is actually being used, rather than have
some baseless faith in an orderly and just authoritarian world and become appologists working
backwards from rules to warm comforting motivations.

http://www.dd-wrt.com/shop/catalog/product_info.php?produ...

The DDwrt project has bought access to source code under NDA from Atheros, and is now selling
``unlock codes'' to disable checks DDwrt has compiled into their binary HAL.

You can bicker all you like about whether assisting people to transmit on unauthorized bands
puts DDwrt developers and their children and children's children into mortal danger from duh
LAW, but I don't really care.  It is a DRM scheme.  If it weren't for the binary HAL, the GPL
would make it impossible for DDwrt to lock us out of the hardware we buy, and then sell us
back some slightly less limited access into it.  The tiny binary piece we have allowed to
creep into otherwise GPL'ed DDwrt enables this scheme.

Other ways that the Atheros HAL is used are, like the Intel wireless blob, to protect
algorithms that Atheros thinks give them a competitive advantage, like rate adaptation.  I've
heard rumors also that the NDISwrapper drivers for certain cards do much better than the
open-source drivers on congested networks, so there may be some congestion cleverness built
into the Atheros HAL, too.

Also, since the open source world is forced to use the HAL by lack of documentation, and by
enticing all of its lead developers to sign Atheros NDA's lockingn their friends out of the
project, the open source world is forced to accept whatever second-rate crap HAL it's handed
under a redistributable license, so Leffler can use Linux as an army of captive beta testers
for the HALs his employer, Atheros, would like to put into the next stepping of binary
drivers.

Finally, the HAL source itself is something Atheros can sell to make money.

These are ways that the binary HAL is actually being used.  so make as many excuses as you
like about what it's ``for'', but that is all just a dream.  Here is the fact of how it's
actually used.

I use free software for a reason, and find this disgusting.  Argue all you like to defend
Atheros's ``interest'' or decide who is a good/bad person/company, it's still simply
disgusting to live as a geek in such a restrictive, exploitive, back-stabbing environment as
Atheros and DDwrt have together created.

I'm using OpenBSD and RaLink now.  I will probably end up buying an Atheros chip, and using
DDwrt's HAL, simply because I know of nothing else available that is even close to working on
a (mostly) open-source OS for 802.11a.  Does this make me a hypocrite and invalidate
everything I've said?  Does the lack of competition make continuing to tolarate Leffler,
DDwrt, and the closed HAL right, desireable, or excuseable?  It does not, no more than the
nonexistence of Linux made the lack of free operating systems right, desireable, or excuseable
to the generation of students before my own.


Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds