Debian Packages
There is an official madwifi package in the non-free section of the archive. Below is an example /etc/apt/sources.list file, that would allow you to use to get madwifi:-
Please use EITHER unstable OR testing OR stable, everything else probably results in heavy problems. If you don't know what you're doing.
# Unstable
deb ftp://ftp.au.debian.org/debian unstable main contrib non-free
deb-src ftp://ftp.au.debian.org/debian unstable main contrib non-free
# Testing
deb ftp://ftp.au.debian.org/debian testing main contrib non-free
deb-src ftp://ftp.au.debian.org/debian testing main contrib non-free
# Stable
deb ftp://ftp.au.debian.org/debian stable main contrib non-free
deb-src ftp://ftp.au.debian.org/debian stable main contrib non-free
Please see the for repositories at your location or simply adjust your existing entries as required (you may need to add non-free to your existing entries).
also provides a version of the package for the previous stable branch, sarge. See the for more information.
# Sarge Backports
deb sarge-backports non-free
Installation (with module-assistant)
The preferred method of installing madwifi-modules uses the module-assistant (m-a) tool to automate all of the following steps: preparing the kernel source/headers, unpacking the module tarball, compiling, building a binary-modules debian package, installing and cleaning up.
$ su
# apt-get update
# apt-get install madwifi-source
# apt-get install madwifi-tools
# m-a prepare
# m-a a-i madwifi
See /usr/share/doc/madwifi-source/README.Debian for extra details. The module-assistant documentation may also be of value (man m-a).
Installation (with kernel-package)
An alternative method of building madwifi-modules involves the use of the scripts provided by kernel-package. An exhaustive set of instructions for building madwifi for Debian kernels exists on and is also applicable to the madwifi-source package.
Post-Installation
By now the modules should be installed to the correct location, and module dependencies updated. So it should just be a matter of loading the correct module:-
# modprobe ath_pci
In syslog or the output of dmesg you should see something similar to the following messages for successful insertion of the modules (example with two cards):-
ath_hal: 0.9.16.16 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
wlan: 0.8.4.2 (svn 1451)
ath_rate_sample: 1.2 (svn 1451)
ath_pci: 0.9.4.5 (svn 1451)
ACPI: PCI Interrupt 0000:02:02.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 5.6 phy 4.1 radio 1.7
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5212: mem=0xd0000000, irq=10
ACPI: PCI Interrupt 0000:03:00.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
wifi1: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi1: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi1: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi1: H/W encryption support: WEP AES AES_CCM TKIP
wifi1: mac 7.9 phy 4.5 radio 5.6
wifi1: Use hw queue 1 for WME_AC_BE traffic
wifi1: Use hw queue 0 for WME_AC_BK traffic
wifi1: Use hw queue 2 for WME_AC_VI traffic
wifi1: Use hw queue 3 for WME_AC_VO traffic
wifi1: Use hw queue 8 for CAB traffic
wifi1: Use hw queue 9 for beacons
wifi1: Atheros 5212: mem=0xd2000000, irq=10
Most up-to-date systems will load this module automatically at boot time via the hotplug mechanism, if not you can make sure it is loaded by adding it to the /etc/modules list:-
# echo ath_pci >> /etc/modules