MadWifi developers move to ath5k
From: | "Michael Renzmann" <mrenzmann-AT-madwifi.org> | |
To: | madwifi-users-AT-lists.sourceforge.net, madwifi-devel-AT-lists.sourceforge.net | |
Subject: | [ANNOUNCE] MadWifi project moves away from binary-only HAL in favor of ath5k | |
Date: | Thu, 20 Sep 2007 16:58:24 +0200 (CEST) | |
Message-ID: | <2312.194.45.26.221.1190300304.squirrel@webmail.madwifi.org> |
Hi all. We, the MadWifi team, announce our decision to move away from the binary-only HAL and change the focus of our future development towards ath5k [1], a completely free (as in freedom) driver which will eventually become an integral part of the Linux kernel. We encourage all interested developers to join us and contribute to our efforts. For those who are not familiar with the concept, the proprietary "Hardware Abstraction Layer" (HAL) [2] was designed as compromise to allow at least one Free and Open Source Software (FOSS) wireless driver component. Unlike many other wireless devices Atheros chipsets can use a wide range of frequencies and the host software can control many aspects of the radio. Regulatory agencies all over the world have laws which restrict the use of the wireless spectrum to certain frequency bands under specific transmission power levels. These laws drive wireless manufacturers to come up with solutions to enforce compliance with the wide array of regulatory agencies. The binary HAL is a wrapper around all chipset registers, and all direct hardware access is routed through it. This approach ensures that non-compliant settings are not applied to the radio, while allowing the open source part of the driver to interact with the chipset in a permissive manner. We understand Atheros' reasons for introducing the HAL and distributing it in binary form only, and we supported it. But this decision forced us to deal with a black box that we could neither fix nor fully understand - a major issue for a free software project. This prevented MadWifi from appearing in many Linux distributions. Because of the proprietary HAL and since the MadWifi driver also did not make use of the new mac80211 layer in Linux it has been impossible for it to become part of the Linux kernel. It's also been clear to us that the "security through obscurity" approach won't work to protect the hardware against unlawful use. Regardless, we kept working on MadWifi as no acceptable alternative existed. This situation has changed. A driver for Atheros wireless cards is available in OpenBSD that talks directly to the hardware, based on reverse engineering efforts done by Reyk Floeter. Relevant parts of the driver have been ported to Linux by Nick Kossifidis to start OpenHAL [3], a free (as in freedom) replacement of the proprietary HAL. Claims that the OpenBSD driver (and thus also OpenHAL) contains stolen code slowed down the OpenHAL efforts but finally could be voided. The Software Freedom Law Center (SFLC) [4], with the help of Atheros, performed a thorough code review and concluded "that OpenHAL does not infringe copyrights held by Atheros" [5]. In other words, the way is clear now for the inclusion of an OpenHAL-based driver into the Linux kernel. Another important development is the work on a "central regulatory domain agent". It aims to ensure compliance with the regulatory constraints and rules based on the current location of the user. The agent and its integration with the kernel will allow wireless LAN drivers to enforce local regulations without requiring non-free software for that task. This work will soon be published for merging with the upstream kernel. We now see a road to move away from the binary-only HAL; it's no comfortable road, however, and thus requires full concentration of our resources to finally reach the ultimate goal of getting a free driver for Atheros devices into the Linux kernel. This free driver is called ath5k, and the work on it has already been started. We are also in contact with Atheros to encourage them to support these efforts. To underline our decision and commitment to ath5k we now declare MadWifi "legacy.". In the long run ath5k will replace the MadWifi driver. For the time being MadWifi will still be supported, bugs will get fixed and HAL updates will be applied where possible. But it becomes unlikely that we'll see new features or go through major changes on that codebase. The only exception to this is the work spent on improved support for Dynamic Frequency Selection (DFS) [6], which is used for avoiding interference with radars. Users who need stable and solid WLAN support for their Linux computers should stick with MadWifi for now. Interested parties are welcome to try ath5k and any constructive feedback is highly appreciated. We encourage developers to contribute [7] to the free driver efforts - it's still a long way before we reach the goal of a truly free Atheros driver for Linux, and every helping hand is welcome. If you have any questions, feel free to ask. Thanks for listening. -- The MadWifi Team Links: [1] http://madwifi.org/wiki/About/ath5k [2] http://madwifi.org/wiki/About/HAL [3] http://madwifi.org/wiki/About/OpenHAL [4] http://softwarefreedom.org/ [5] http://www.softwarefreedom.org/news/2007/jul/31/openhal/ [6] http://en.wikipedia.org/wiki/IEEE_802.11h#DFS_Dynamic_Fre... [7] http://linuxwireless.org/en/users/Drivers/ath5k#Hackingath5k ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Posted Sep 20, 2007 15:27 UTC (Thu)
by coriordan (guest, #7544)
[Link] (11 responses)
Posted Sep 20, 2007 17:17 UTC (Thu)
by proski (subscriber, #104)
[Link] (10 responses)
I don't know, maybe they are crying now :)
Posted Sep 20, 2007 17:47 UTC (Thu)
by JoeBuck (subscriber, #2330)
[Link] (8 responses)
Still, there's a problem in the strict GNUist attitude toward firmware. While I respect their principles, they argue that a device that allows firmware to be loaded is somehow "less free" than a device whose firmware is in ROM and is therefore cannot be updated, if the firmware is not free software. It seems to me that the reverse is true, since there is hope that someday the device can be loaded with free software (e.g. by a project like RockBox or the like).
Posted Sep 20, 2007 18:07 UTC (Thu)
by epa (subscriber, #39769)
[Link] (7 responses)
Posted Sep 21, 2007 2:48 UTC (Fri)
by gdt (subscriber, #6284)
[Link] (4 responses)
I reserve my opinion because we haven't seen the obstacles a vendor who did choose to do the Right Thing would face. For example, how long would it take to get the code for the proprietary "CPU" into the gcc tool chain? I can quite understand why a vendor might choose not to be the first one down that path.
Posted Sep 21, 2007 6:19 UTC (Fri)
by JoeBuck (subscriber, #2330)
[Link] (2 responses)
Posted Sep 27, 2007 18:29 UTC (Thu)
by iabervon (subscriber, #722)
[Link] (1 responses)
Posted Sep 27, 2007 19:38 UTC (Thu)
by zlynx (guest, #2285)
[Link]
You know the saying that C is portable assembly. Well, a good assembler makes it as easy to write as C, it just isn't portable.
Posted Sep 27, 2007 20:06 UTC (Thu)
by moxfyre (guest, #13847)
[Link]
But that's not necessary. All they really need to do to be Linux-friendly is release the source code under GPL in *some form*. Maybe it's assembler code. Maybe it's C code. SDCC is a Free software compiler targeting 8-bit microcontroller architectures, including 8051, Z80, and even PIC (which has the worst instruction set imaginable for C compilers). GCC is aimed at 32/64-bit architectures, and I think that SDCC is a REALLY valuable complement to it for the low-end embedded space.
When hardware vendors provide basic device information and initial code, the Free software community can usually run with it. For example, Linksys released the code for its Linux-based routers... and now there are several polished and powerful distros for those routers. ATI has just released programming information--not even code, really--for their GPUs, and suddenly there's a veritable blizzard of open-source display driver development.
As Greg K-H pointed out, "if you release specs, the Linux community will produce drivers"... often, they'll be better than the proprietary drivers!
Posted Sep 21, 2007 6:11 UTC (Fri)
by JoeBuck (subscriber, #2330)
[Link] (1 responses)
You are asking for equally bad treatment, subtracting a capability if that capability is only useful to a proprietary software developer.
Free firmware would be great, but replaceable firmware beats a device that cannot be fixed at all if it has a flaw.
Posted Sep 21, 2007 13:59 UTC (Fri)
by epa (subscriber, #39769)
[Link]
This 'all or nothing' rule is characteristic of the GPL (version 1 applied it to copyright, v2 to patent licences, and v3 to allowing updated versions to run). I think it has had some success in getting more free software and is worth continuing.
Bad analogy time: in many countries with forest fires it is illegal to build on land that has been cleared by burning, even if the fire was entirely natural. Clearly in any individual case this benefits nobody - it would be better to use the land rather than waste it. But as a general rule it helps to discourage people from starting fires deliberately.
Posted Sep 23, 2007 18:33 UTC (Sun)
by man_ls (guest, #15091)
[Link]
A free distribution makes users aware of the problems with implementations of public standards, patented algorithms, closed hardware, programs protected by lame secrets and other similar weird stuff. When using proprietary systems, those same users are not aware of any of that; when their freeware CD recording software says they cannot do an operation unless they purchase the full version, those people think it is just a problem of investing money. When using free distributions with proprietary bits, those problems are similarly swept under the carpet.
Yes, it is sometimes a pain in the groins to use them, but free distributions make us aware of how bad the state of some things really is.
Posted Sep 21, 2007 1:32 UTC (Fri)
by jkowing (subscriber, #5172)
[Link]
Posted Sep 21, 2007 19:19 UTC (Fri)
by alan_carr (guest, #47522)
[Link] (3 responses)
I used to work for a company doing GSM basestation design, and even *code releases* that had anything to do with the radio/baseband layer had to be approved again by the regulatory agency before release. Of course, a lot of this is to generate a cash cow, but of course it pretty much guarantees compliance and interoperability.
I just wonder how Dell will ship a laptop with an open WLAN driver with the FCC as it is today. What's worse is that the FCC sets no clear boundary for dividing where controls are and what exactly they need to be. Just that they ruled the user shouldn't be able to modify these settings. I mean, somebody could reverse assemble the binary driver and make hacks technically... so where do you draw the damn line... oh well... /vent off :D
-Alan
Posted Sep 22, 2007 8:16 UTC (Sat)
by drag (guest, #31333)
[Link] (2 responses)
The trouble is that the FCC is given any authority in the first place.
Posted Sep 27, 2007 9:18 UTC (Thu)
by jamesh (guest, #1159)
[Link] (1 responses)
That said, it would be better if they handled compliance by going after offenders rather than trying to make sure all devices are incapable of transmitting non-compliant signals.
For a start, it makes those devices useless to people who have paid to use non-public spectrum.
Posted Sep 27, 2007 11:06 UTC (Thu)
by Los__D (guest, #15263)
[Link]
It's not like everyone stabs each other, even though kitchen knifes doesn't have a "no human flesh" regulatory daemon.
Great. The gNewSense folks should be happy with this.MadWifi developers move to ath5k
I would not care too much about gNewSense. Sometimes they do illogical things. For instance, they removed Atmel USB driver, which uses firmware that can be freely distributed by anyone (as long as it's unchanged), yet they left spectrum_cs, which relies on firmware extracted from Windows drivers and has no license (and thus cannot be legally distributed).
gNewSense
My guess is that the inclusion of spectrum_cs is a bug.
gNewSense
I think the idea is of equal treatment: if the manufacturer can create firmware updates and distribute them, then owners of the device should also be able to change the firmware and share it with others. The same principle applies to Tivo.gNewSense
gNewSense
Oh, come on. It's standard practice for vendors of new CPU architectures to work on a gcc port very early, and the gcc team is happy to cooperate with such efforts, and offer assistance (or point people to qualified consultants who will do the port for pay). You wouldn't be first down a path, you'd be on a well-travelled road.
gcc ports
A lot of microcontrollers embedded in existing devices use architectures that GCC doesn't support. A lot of them actually use an architecture that's been around for 27 years and has never gotten a GCC port: the 8051. GCC also doesn't support PIC microcontrollers. Then there are FPGA-based systems, which need an entirely different firmware design. In fact, most embedded platforms that GCC targets will have embedded flash, meaning that firmware wouldn't be part of drivers anyway; the hardware would come with a version installed, and any changes would be released by the vendor as a download that users can install at their leisure.gcc ports
Many of these microcontrollers really are micro. When a programmer only has a few KB of instruction space, he does not want to write code in C. Assembly is the only way to go, and it isn't so bad.gcc ports
Doing the "Right Thing" doesn't necessarily mean that the vendor has to do all the extra work. Sure, it'd be nice if device vendors would release firmware source code that could be modified and rebuilt with the standard toolchain.gNewSense
The "equal treatment" argument reminds me of the joke about the Russian peasant back in the Soviet days, who contacted his local Party official and complained: "My neighbor has two cows, and I only have one. Kill one of my neighbor's cows!"
equal treatment, or equally bad treatment
You are right that in any individual case it is better to have a device that someone can upgrade rather than enforce equally bad treatment on everyone. However, applying the rule of equal treatment to all cases creates an incentive for device makers to do the right thing, if their choice is between making the firmware updatable by the device's owner or not at all.equal treatment, or equally bad treatment
gNewSense
I would not care too much about gNewSense.
Well, I think we need people to publish a completely free distro like gNewSense, just as we need Stallman to keep a non-negotiable stance about freedom. And I would say, the larger the number of free distributions, the larger the benefit for us all (even for those who don't use them).
Wow! I just had to say how impressed I am by the manner in which they have expressed this change in direction. It is a very articulate and reasoned statement, and - agree with it or not - it reflects a high sense of professionalism upon the Wifi team! It really is great to see that in the open source community. MadWifi developers move to ath5k
One of the things that has bothered me is the whole mess with the FCC's declaration of requiring security through obscurity (closed source). I mean, someone is going to bring up this FUD where can you even ship a driver that has access to radio parameters... hopefully in the documentation somewhere they state things like parameters controller RF pieces are for the most part restricted to the user (channel selection being the exception).MadWifi developers move to ath5k
Anybody can make any radio break regulatory compliance. It's not difficult. Give a guy some tin foil and a soldering gun and I expect that they can find a way to f-k up somebody else's signal even if the drivers for a radio are closed source and use every anti-debugging, anti-reverse engineering trick in the book.MadWifi developers move to ath5k
Well, for a limited resource like radio spectrum it makes sense to have some controls on its use or people would just go ahead and jam other people's signals.MadWifi developers move to ath5k
Wouldn't it make more sense to regulate it by simple LAW?MadWifi developers move to ath5k