MadWifi moves away from binary-only HAL in favor of ath5k
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, 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 MadWifi, the proprietary "Hardware Abstraction Layer" (HAL) 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, 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), with the help of Atheros, performed a thorough code review and concluded "that OpenHAL does not infringe copyrights held by Atheros". 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), 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 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.
-- The MadWifi Team