NOTE: this page is for archival only, see the note at the end of the page.


  • MadWifi - a Linux kernel device driver for Wireless LAN chipsets from Atheros.

    When was launched (sometime in the Fall of 2005) we switched to a new codebase submitted by Atheros. This new code offers advanced features, including, but not limited to, a new HAL, support for virtual APs and WDS.

    Note: June 2006, "madwifi-old" has been deprecated, it is no longer supported. All users are encouraged to use an official release tarball, which contains a stable snapshot of svn trunk.


/!\ This driver is not fully open source, it requires a hardware abstraction layer closed source binary.

supported chips

All PCI and Cardbus Devices with Chipset from Atheros

available devices

Devices List


Enhanced Chipset Support

  • The HAL that comes along with the new code now supports almost all of chipsets that are currently available. There should be a new HAL soon which supports all of them except for USB chipsets.

VAPs and wlanconfig

  • The most interesting new feature is probably the introduction of Virtual AP (VAP) mode, which allows the operation of multiple concurrent (virtual) access points, and concurrent running in both AP and station mode. VAPs sit on top of a base device (usually called wifi0). This base device will be the first device you see when the drivers load, and is not linked to the wireless extensions. Beware that ifrename might change the device name from wifi0 to something else if you installed and configured it to rename interfaces with your device's MAC address. The initial kernel messages from ath_pci will still report wifi0, though.

    To manipulate VAPs, Madwifi comes with a tool called wlanconfig which is used to create and destroy VAPS with various different modes. As of SVN r1407, a sta VAP (Managed mode interface) is created by default.

    A typical wlanconfig command might look like the following (which creates the device ath0 as a normal 'station mode' VAP):

wlanconfig ath0 create wlandev wifi0 wlanmode sta
  • If the 0 from ath0 were to be ommited, wlanconfig would start creating devices using the first available index. If you obtain an error (wlanconfig: ioctl: Invalid argument) when specifying an index, not specifying an index may work (!). To create an access point, use:

wlanconfig ath0 create wlandev wifi0 wlanmode ap
  • To create an access point, _and_ a station, use:

wlanconfig ath0 create wlandev wifi0 wlanmode ap
wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon
  • To create APs which share a single MAC address, use the -bssid flag when creating the VAPs:

wlanconfig ath0 create wlandev wifi0 wlanmode ap -bssid
wlanconfig ath1 create wlandev wifi0 wlanmode ap -bssid
  • Finally, to destroy a VAP, issue the command:

wlanconfig ath0 destroy
  • Note that the whole interface name is needed. Also note that this feature will work with any supported chipset.

WDS, XR, Compression etc.

Madwifi comes with a whole host of private commands (accessible through iwpriv) which allow getting and setting driver features/details. The following descriptions are as a guide only:

  • 4AddressHeaders – 4-address header support.

  • Roaming – Roaming.

  • WPA/WPA 2 countermeasures
  • WMM – Wi-Fi Multimedia.

  • Super AG – Super A/G Features.

  • TPC – Transmit Power Control.

  • DFS – Dynamic Frequency Selection.

  • Background Scanning – Background Scanning

This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at
versions of this page: last, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1