MadWifi is short for Multiband Atheros Driver for Wireless Fidelity. In other words: it is a Linux kernel device driver for Atheros-based Wireless LAN devices. The driver works such that your WLAN card will appear as a normal network interface in the system. Additionally there is support for the Wireless Extensions API. This allows you to configure most aspects of the device using common wireless tools (ifconfig, iwconfig and friends).
This driver is provided under a dual license, three-clause BSD and GPL v2. The binary HAL, however, is distributed under a proprietary license and as closed-source only and thus will taint the kernel.
MadWifi is one of the most advanced drivers for WLAN devices on for Linux today, with a wide set of features.
MadWifi supports PCI, MiniPCI and Cardbus devices, USB devices are not yet supported.
Almost all of the currently available Atheros WLAN chipsets are supported, including the "System on Chip" designs. The compatibility list provides information about devices that users reported (mis)success for.
The following operational modes are supported:
- Station, a.k.a. infrastructure or managed. This device acting as typical WLAN client station. This is the default mode if not otherwise specified.
- Access Point, a.k.a. master. This device acts as the Access Point for other WLAN client stations.
- Ad-hoc. a.k.a. IBSS mode. This device is in a peer-to-peer(s) WLAN without the need for an Access Point.
- Ad-hoc Demo. This is an older, non-802.11 compliant, proprietary ad-hoc mode.
- Monitor. This device can be used to "sniff" raw 802.11 frames.
- Wireless Distribution System. This device can be used to create large wireless networks by linking several Access Points together.
- Wired Equivalent Privacy, with 40/64 bit and 104/128 bit keys; supported in modes: sta, ap, adhoc
- WPA2/IEEE 802.11i
- WiFi Protected Access 2; supported in modes: sta (through wpa_supplicant), ap (through hostapd)
- IEEE 802.1X
- Port-based Network Access Control; supported in modes: ap
MadWifi allows to run several virtual Access Points on a single card, by introducing the so called Virtual Access Points (VAP). VAPs sit on top of a base device (usually called wifi0), representing virtual WLAN devices that (despite their name) can be used in different other modes. That way a single WLAN card can connect to an Access Point while at the same time acting as Access Point for other stations. Other combinations of operational modes are possible as well.
To manipulate VAPs, MadWifi comes with a tool called wlanconfig which is used to create and destroy VAPS with various different modes.
Atheros has introduced a set of (proprietary) features that have been designed to increase throughput and achievable distance, including frame aggregation, jumbo frames, on-the-fly data compression and channel bonding. Please refer to this page for details.
MadWifi supports almost all these extensions to the standard.
... and more
Some other interesting features are:
- 4-address header support
- Support for transparent bridging of ethernet segments; read more
- Seamless Roaming
- Switch seamlessly to another Access Point if the current link gets weak; read more
- Wi-Fi Multimedia
- Quality of Service extensions for WLAN (IEEE 802.11e); read more
- Transmit Power Control (TPC)
- Automatic adjustment of transmit power (IEEE 802.11h); read more
- Dynamic Frequency Selection (DFS)
- Automatically avoids channels that are used by radar and similar applications (IEEE 802.11h); read more
- Background Scanning
- Scanning other channels without loosing data; read more
MadWifi has been declared legacy, in response to our commitment to ath5k. In the long run ath5k will replace MadWifi. 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 driver is mature and stable, though, and works well for most users. For now you should choose MadWifi if you depend on solid WLAN support. But we also encourage all interested users to give ath5k a try.