iwlagn

A more recent success story is in this thread including detailed steps. This one summarizes the the steps for Ubuntu 8.04. Another one.

Detailed HowTo

This is how you can get the Intel WiFi Link 4965AGN/5xxxAGN card to inject under Linux using the iwlwifi drivers. Please note that the injection is still under development, but is possible at this point. Fake auth doesn't work but there's a workaround: using wpa_supplicant. Deauth seems to be buggy.

What you need :

a kernel of 2.6.25 or higher,

the kernel sources,

the compat-wireless-2.6 package (for 2.6.27 and up) or the compat-wireless-old package (for 2.6.25/2.6.26),

aircrack-ng => RC1 (=> SVN rev. 1531 if you want to use fakeauth),

basic development tools (make, gcc, …),

injection patches for mac80211 (all kernels) and the drivers (only for 2.6.25/.2.6.26).

Please note that the instructions provided here are suited for generic Linux. Your distribution, especially if it uses some kind of advanced package managing (Debian, Ubuntu, etc.), may have the needed packages in its repositories (so that you don't need to compile them manually from source).

Preparing the kernel

You need to make sure that your kernel configuration includes these options. Pay attention which are to be build as modules and which can be built-in.

You must also enable “Automatic kernel module loading” under “Loadable module support”, otherwise you will have module dependency errors.

If you are running a distro-supplied kernel, and find that these options are not configured as described here, then you will need to recompile your kernel with these options corrected. It is not enough to just change these options in the kernel configuration, as you need these options to be true for the running kernel.

At this point, it is assumed that you've got your kernel properly configured, up and running right now.

Compiling the drivers

The development versions of the drivers are a part of the compat-wireless project. We will need the latest version of the package, which can be obtained here:

http://wireless.kernel.org/en/users/Download

Select compat-wireless-2.6 if you are using 2.6.27 or newer, or compat-wireless-old if you are using 2.6.25 or 2.6.26. Download the tarball to your home directory. Having downloaded it, we need to download the patches for the iwlwifi drivers (only for 2.6.25/.26) and the frag+ack patch for mac80211. The frag+ack patch is available on http://patches.aircrack-ng.org (get the 2.6.28-rc4-wl version for 2.6.27+ and the 2.6.26-wl version for 2.6.25/.26). The driver patch (not needed for 2.6.27 and up) is available here : http://pastebin.com/f7bc96631.

NOTE: mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch is not needed in the bleeding-edge compat-wireless-2.6, only in 2.6.29/2.6.30/compat-wireless-2.6.30.

That should get you the patched driver module up and running, you should also see “wlan0” and “wmaster0” as your interfaces, the first one should also be available by using iwconfig.

Injecting

Due to the way how mac80211 works, you cannot inject on the card's “stock” interface - wlan0. This is where the airmon-ng tool comes in handy. It will create a mon0 interface suited for injecting after running it this way :

airmon-ng start wlan0

It may complain about the “iw” program missing. If it does, the link is provided, so just download and compile it. The “iw” program, however, requires the “libnl” libraries, available here : http://people.suug.ch/~tgr/libnl/. If you have it all, run the program again, and it should give you output somewhat similar to this: