Madwifi (Multiband Atheros Driver for Wifi) is Linux driver for 802.11a/b/g universal NIC cards - Cardbus, PCI, or miniPCI - using Atheros chip sets.
The following (incomplete) list of adapters sold by IBM use the Atheros chips:
- IBM Dual-Band 11a/b Wi-Fi Wireless Mini PCI Adapter
- IBM 11b/g Wireless LAN Mini PCI Adapter
- IBM 11a/b/g Wireless LAN Mini PCI Adapter
- IBM 11a/b/g Wireless LAN Mini PCI Adapter II
- ThinkPad 11a/b/g Wireless LAN Mini Express Adapter
- IBM 802.11a Wireless LAN Cardbus Adapter
- IBM 11 a/b/g Wireless Cardbus Adapter
- (11a/b/g/n) Atheros Communications, Inc. Unknown device 0024 (rev 01) (using SVN revision 2360+)
- Official Debian packages in the non-free section. See also the Alioth project page and the Madwifi wiki.
- Debian Packages: http://www.marlow.dk/madwifi
- Debian Packages: http://www.users.tpg.com.au/sigm/debian/pkg-madwifi/
- Fedora Packages(1): http://rpm.livna.org
- Fedora Packages(2): http://www.atrpms.net/name/madwifi/
- Gentoo ebuild:
$ emerge net-wireless/madwifi-driver net-wireless/madwifi-tools
- SUSE Packages http://madwifi-project.org/wiki/UserDocs/Distro/SuSE
- Ubuntu Package:
$ sudo apt-get install linux-restricted-modules-`uname -r`
- MadWifi packages and source for these and other distributions
Detailed instructions can be found on the MadWiFi Wiki.
- Daily Snapshots
- checkout from svn:
$ svn checkout svn.madwifi-project.org/madwifi/trunk madwifi
- Make sure that you've got sysctl support and the net/radio enabled (wireless extensions) in your kernel. Install the driver with make & make install
- further more you like to install the wireless tools from wireless tools. Make sure the versions fit together by
$ iwconfig --version
Setting up wpa_supplicant with wpa-psk.
You can enable the wireless LAN status LED on your Thinkpad by following these instructions (tested on Thinkpad x60s).
Release 0.9.3 available
* switch to newer HAL, v0.9.18.0 * ensure compilation against recent kernel versions up to 2.6.20 * ensure compatibility back to kernel 2.4.22, drop support for 2.4.21 and older * allow compilation without support of features such as fast frames, turbo mode, etc. * support for some PCI Express cards fixed * some security-related issues have been patched * interoperation with wpa_supplicant and hostapd improved * real channel noise instead of fixed -95dBm noise floor presented * lots of bugs fixed, for different architectures and various modes of operation * further improvements for build system
Free Software HAL
The old madwifi driver consisted of a BSD/GPL wrapper with an unmodifiable HAL (Hardware Abstraction Layer). This HAL was not binary firmware as with the Intel wireless chips, but a piece of code that needed to run in the Linux kernel. It consisted of header files for which no permission to modify was granted, and pre-compiled object files. The vendor's position was that the Linux community simply needs to accept this sourceless HAL, since in principle the Atheros chip could be tuned to any frequency, and thus produce RF interference with systems operating in those frequencies.
This binary HAL was unacceptable to the Linux kernel developers, and the Atheros driver in this state would never have become a part of the official kernel. Some OpenBSD developers, facing the same issue, clean-room reverse-engineered the binary HAL and had produced an open source driver (ath5k), which was subsequently picked up by the madwifi team as the future direction. At the same time the old madwifi driver was labeled 'legacy' to reinforce this point.
In the meantime the ath5k driver has been merged into the linux kernel, and Atheros has come around and hired a linux kernel developer, released a second driver (ath9k) for newer wireless chips and has taken over maintenance of the ath5k driver.
As of the latest distributions (Ubuntu 8.10 and Fedora 10) the atk5k driver is still flaky, but those problems seem to be resolved with the latest mainline kernel (2.6.29).
Problems on Fedora 9
When installing madwifi 0.9.4 on my new machine (from source), ath_pci would load fine, apparently, but I could only see the wlan0 interface via iwconfig, and no attempt to create an ath0 interface or start it (via ifconfig) would work. I finally found the problem (described in this email trail) which indicates the new ath5k module is the problem.
As directed, I fixed it by editing /etc/modprobe.d and creating a file called madwifi with the following in it:
alias wlan0 ath_pci blacklist ath5k
Although this enables ath0, I have yet to get the wirelss to actually connect to anything.