User Tools

Site Tools



IMPORTANT NOTE: This page is deprecated, updated documentation can be found here


Note: This page is about the older acx100/acx111 drivers. For the new mac80211-based driver, see acx1xx.


There is legal controversy surrounding the development of this driver, see the wireless mailing list for more information. See kernel inclusion section for some background information on the previous attempt to include it in the mainline kernel.

Driver Status

This is a short report about acx driver. See this thread for details.

There are 3 version of the driver: - plain - SoftMac - mac80211

The current stable release of the “plain” driver is v0.3.36 (acx-20070101) and it works t works on kernels equal or greater than 2.6.10.

For kernel 2.6.21-22, a patch is needed: The driver does not support WPA.

The driver can be patched for injection with the instructions below on this page.

The SoftMac version uses deprecated stack layer, it's not updated anymore.

The mac80211 version is still in beta. It requires a kernel equal or greater than 2.6.18 (with mac80211 support). Starting with 2.6.27, it will be integrated in the kernel.

From kernel 2.6.23 forward, an injection patch is already integrated in the mac80211 stack in the kernel mainline. For fragmentation attack support, an additional patch is required. See the mac80211 page for more details.

All versions require a non-GPL firmware in /lib/firmware/, you can find it online.

Read more at:

Driver Installation

You need to use a kernel version>= 2.6.10:

ifconfig wlan0 down
rmmod acx
tar -xjf acx-20070101.tar.bz2
cd acx-20070101
patch -Np1 -i acx-20070101.patch
make -C /lib/modules/`uname -r`/build/ M=`pwd` modules
make -C /lib/modules/`uname -r`/build/ M=`pwd` modules_install
modprobe acx

note: if the code doesn't work, Ubuntu users will want to change the following lines:

make -C /lib/modules/`uname -r`/build/ M=`pwd` modules
make -C /lib/modules/`uname -r`/build/ M=`pwd` modules_install

and replace `uname -r` by the name of their current kernel, followed by generic. The reason for this is that the actual modules directory for the current kernel (which is what the /lib/modules/`uname -r`/ commande will return) does not contain the build symbolic link, and therefore no makefile will be found for the make command. Only the /lib/modules/2.6.20-16-generic/ contains a simlink called “build” that will ensure the proper makefile is found.

ie: as of 26th of June 2007, under Ubuntu 7.04 “Feisty Fawn”, the correct lines would be:

make -C /lib/modules/2.6.20-16-generic/build/ M=`pwd` modules
make -C /lib/modules/2.6.20-16-generic/build/ M=`pwd` modules_install

Troubleshooting Tips

FAILED to free any of the many full tx buffers

You get kernel messagess similar to: Jul 3 00:44:12 ubuntop kernel: [ 736.008000] wlan0: FAILED to free any of the many full tx buffers. Switching to emergency freeing. Please report! Jul 3 00:44:12 ubuntop kernel: [ 736.008000] wlan0: tx timeout!

From the author of the driver patch:

That's a problem with the driver. I saw it several times while writing the acx111 patch. It works like this:

Every packet you transmit allocates a tx buffer, so it will start filling up the whole buffer space until its freed again and that's the point. It just doesn't get freed in time. Once you reached the limit and have eaten up all available buffers, it won't work again until you reload the driver. Its waiting for a TX_COMPLETE message…

Possible workarounds (don't know for sure right now, just try it):

  • This happens when you use the unpatched driver, double and trible check that you're infact using a patched driver: look at the buildtime, remove all acx modules, make sure your custom module is in the correct /lib/modules/`uname -r`/ path…
  • Use aireplay-ng 0.8 or higher, as they incorporate indirect support for acx injection (sending more ack frames)
  • Change your hardware mac to the fakemac used for “-h”
acx.txt · Last modified: 2017/01/09 21:26 by mister_x