DEPRECATED - iwl3945

Note: This page is about the iwl3945 driver. For the older ipw3945/ipwraw driver, see ipw3945.

Intel PRO/Wireless 3945ABG, mac80211 driver

Iwl3945 is the new driver for the Intel PRO/Wireless 3945ABG wireless chipset. It includes new features like:

Managed and monitor mode support in one driver

Enhanced injection support

Multiple interfaces on one device - use the aircrack suite on a monitor interface while remaining associated on a managed interface

Full radiotap support, for both incoming and outgoing packets

No more binary regulatory daemon needed, regulatory enforcement is done by the firmware

The driver is based on the mac80211 stack, so the usual requirements apply (aircrack-ng 1.0-rc1, a recent version of libnl, a fairly new kernel, etc.)

Installing the driver

Starting with 2.6.24, the driver is included in the kernel. Injection requires 2.6.25 or later. The compat-wireless-old package must be installed and patched to get injection support on 2.6.25 and 2.6.26. For 2.6.27 and newer, no special patch is needed, follow the common instructions for mac80211.

Installing and patching compat-wireless

Install your kernel headers and sources, as well as all packages required for building kernel modules.

Download compat-wireless from here. For 2.6.26 and older, use compat-wireless-old, for newer versions (currently 2.6.27-rcX), use compat-wireless-2.6.

Untar the archive to your home directory. This will create a dated directory ~/compat-wireless-DATE, where DATE is the build date of the package.

Download the fragmentation patch, and apply it to the compat-wireless package. This is needed to make attacks -5 and -7 work.

Cd to the compat-wireless directory, and run “make” to build the package.

Install the package with “make install”, then load it with “make load”.

If you get errors during “make load”, reboot and all should work.

Using iwl3945 with aircrack-ng

Before using the card with aircrack-ng, you must create a monitor interface, using the command

airmon-ng start wlan0

where wlan0 is the interface name of the card. This will create a monitor interface called “mon0” (prefix changeable using the $MON_PREFIX environment variable, e.g. a $MON_PREFIX of “rtap” will result in an interface called “rtap0”). Next, run

airodump-ng -c <channel>,<channel> mon0

where <channel> is the channel the target AP is running on, while mon0 is the monitor interface you created in the first step. You must enter the channel twice, e.g. “-c 3,3”, otherwise it will reset to channel 1. This is a bug in the driver, and a fix for it has been scheduled for inclusion into the kernel.
After this, use “mon0” as the interface name for all monitoring/injection tasks.