Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .


Ubuntu ships madwifi in the package linux-restricted-modules of the restricted component, which is enabled in the default install. Madwifi chipsets should therefore ‘just work’.

In case you did a manual install, try installing linux-restricted-modules-$(uname -r) and that’s it.

Madwifi and Linux-Restricted-Modules

If you decide you absolutely need to compile madwifi from SVN, then you must stop the linux-restricted-modules package from providing the madwifi module ath_hal, via its so called volatile module mechanism. Do so by adding ath_hal to the list of DISABLED_MODULES in /etc/default/linux-restricted-modules-common.

# This file is sourced from the linux-restricted-modules-common init
# script and is used to disable the link-on-boot feature, one module
# at a time.  This can be useful if you want to use hand-compiled
# versions of one or more modules, but keep linux-restricted-modules
# installed on your system, or just to disable modules you don't use
# and speed up your boot process by a second or two.
# Use a space-separated list of modules you wish to not have linked
# on boot.  The following example shows a (condensed) list of all
# modules shipped in the linux-restricted-modules packages:
# DISABLED_MODULES="ath_hal fc fglrx ltm nv"
# Note that disabling "fc" disables all fcdsl drivers, "ltm" disables
# ltmodem and ltserial, and "nv" disables both the nvidia drivers.
# You can also name each module individually, if you prefer a subset.

7.04 Feisty Fawn

Feisty has the madwifi-tools package available in the universe repository or download for your architecture at

6.10 Edgy Eft Server and 6.06 Dapper Drake Server

More information about setting madwifi on an Ubuntu server installation (madwifi drivers aren't included) can be found at

6.10 Edgy Eft

Edgy now includes the new madwifi-ng drivers in the linux-restricted-modules package, however you will need to download and install the madwifi-tools package from debian's testing branch at as they haven't included the wlanconfig tool. Alternatively, a deb backported from Feisty is available at

6.06 Dapper Drake

There appears to be a bug in the udevplug madwifi-ng scripts, which causes a large delay on startup; This will be fixed in the release soon, and there is a fix here, for now:

The included version of madwifi with the linux-restricted-modules-$(uname -r) package is dated. If you need to install a newer version (madwifi-ng) you will need to follow a few special instructions. If you can, remove the linux-restricted-modules package. This package contains the nvidia-glx and ati fireglx modules, so this may not be feasible for some. If you elect to keep them, first you must remove the installed version that comes with the restricted modules.

cd /lib/modules/$(uname -r)
sudo rm -rf net
sudo rm -rf madwifi
sudo rm -rf madwifi-ng

Descend into your madwifi-ng source directory.

cd ~/madwifi-ng (example)
sudo make clean
sudo make
sudo make install

Assuming you have no errors, next we need to remove the existing loaded modules if you have any.


Check for the existence of any wlan, ath_hal, ath_pci, new_ath_hal, new_ath_pci, etc entries. Remove each of these via the following:

sudo rmmod (moduleName)

Some of these are dependent on other running modules so you'll have to fiddle with it to get the sequence correct, but make sure that they are all removed prior to moving on.

Next, insert your card into your computer.


Check to see if the card and driver were properly initalized. If you see errors about ACPI, you may need to do as I did and have to unload all of ACPI with the following:

sudo /etc/init.d/acpi-support stop

Remove and reinsert your card and check if the module loaded properly


If you have an ath0 and a wifi0 interface active now in ifconfig then you are golden. This will not stick on a reboot and the process must be repeated.

TO DO: Please update the wiki to show how to automate this.

5.10 Breezy Badger

Package for breezy is here:

French: pour une installation pas à pas détaillée de WPA (l'authentification sécurisée) en français :

Building madwifi-ng

Get the latest madwifi-ng source code and untar it

       tar xzf madwifi-ng-current.tar.gz

Prepare your station to build

    apt-get install build-essential bin86 gcc-3.4 linux-headers-$(uname -r);
    cp /boot/config-$(uname -r) /usr/src/linux-headers-$(uname -r) 

Build madwifi-ng

    cd madwifi-ng-r<tab for directories>;
    make clean   KERNELPATH=/usr/src/linux-headers-$(uname -r) CC=/usr/bin/gcc-3.4
    make         KERNELPATH=/usr/src/linux-headers-$(uname -r) CC=/usr/bin/gcc-3.4 
    make install KERNELPATH=/usr/src/linux-headers-$(uname -r) CC=/usr/bin/gcc-3.4
    depmod -a #the excellent make file does this already, but a good practice all the same
    modprobe ath_pci 

5.04 Hoary Hedgehog

In the package “linux-restricted-modules”.

Goto: System → Administration → Networking and then click on the card and choose properties.

Also see:

4.10 Warty Warthog

madwifi drivers for Warty are here: