This is an old revision of the document!
Table of Contents
General
Mac80211 is the new wireless stack of the Linux kernel. It is included in the kernel since 2.6.22, but drivers are only included since 2.6.24.
The following drivers use mac80211 (not all have been tested to work with aircrack-ng):
- acx1xx (Acx)
- adm8211 (ADMtek)
- at76_usb (Atmel)
- ath5k (Atheros A/B/G/Super-G)
- ath9k (Atheros xspaN)
- b43 and b43legacy (Broadcom)
- iwl3945 (not to be confused with ipw3945/ipwraw)
- libertasf (Marvell Libertas)
- p54 (PrismGT, both FullMAC and SoftMAC)
- rt2x00 (includes rt2400pci, rt2500pci, rt2500usb, rt61pci and rt73usb)
- rtl8180 (not to be confused with r8180 AKA r8180-sa2400, also supports RTL8185 cards)
- rtl8187 (not to be confused with r8187 - RTL8187B supported in compat-wireless)
- zd1211rw (starting with 2.6.25)
In general, these drivers will mostly work with aircrack-ng, but there may be exceptions. Here is a list of drivers (with appropriate patches) that people have reported as working successfully with the aircrack-ng suite:
Aircrack support
Mac80211 introduced changes to monitor mode to support the Radiotap standard. Radiotap is a new packet header format, similar to the Prism header. As mac80211 requires all injected packets to have a Radiotap header, which is not supported in aircrack-ng 0.9, injection requires at least aircrack-ng 1.0-rc1.
Fragmentation attack support
The mac80211 stack supports injection natively. However, to use any fragmentation attacks with a mac80211 driver, you need to patch the mac80211 stack.
Depending on what you are using, here are the patching instructions:
- For released kernels (2.6.24 and 2.6.25), use LatinSuD's fragmentation patch.
- For 2.6.26-rc kernels, use this patch.
- For the latest wireless-testing kernel (currently 2.6.26-rc8-wl), use this updated patch.
- For compat-wireless-2.6, apply the wireless-testing patch to the compat-wireless package itself.
Airmon-ng support
Airmon-ng supports mac80211's interface management features (nl80211) using a tool called iw (not to be confused with iwconfig). iw is called automatically by the airmon-ng script, or you might also call it directly to set up monitor interfaces.
Iw is not part of the aircrack-ng suite. You can download it from here. Iw requires a recent version of libnl (1.0-pre8 minimum, 1.1 recommended).
Installing iw
- Download iw.
- Extract the iw tarball.
- Run “make” in the iw directory. If you get lots of “undefined” errors or “netlink/genl/genl.h: No such file of directory”, then you need to install libnl-devel, or update libnl. This can be risky, you might also need to update networkmanager, wpa_supplicant, hostapd and wlassistant, as older versions of them only work with 1.0-pre6 and earlier!
- Run “make install” to install the resulting binary.
- Test iw by executing “iw dev <name of your interface> info”. It is normal if it gives no output, however it shouldn't give any errors.