Difference between revisions of "Madwifi"

From ThinkWiki
Jump to: navigation, search
(Packages: Fixed broken link to unofficial debian packages.)
 
(24 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Multiband Atheros Driver for WiFi ==
+
'''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.
Linux driver for 802.11a/b/g universal NIC cards - Cardbus, PCI, or miniPCI - using Atheros chip sets.
 
  
The following adapters sold by IBM use the Atheros chips:
+
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 Dual-Band 11a/b Wi-Fi Wireless Mini PCI Adapter]]
 
* [[IBM 11b/g Wireless LAN Mini PCI Adapter]]
 
* [[IBM 11b/g Wireless LAN Mini PCI Adapter]]
Line 11: Line 10:
 
* IBM 11 a/b/g Wireless Cardbus Adapter
 
* IBM 11 a/b/g Wireless Cardbus Adapter
  
=== Project Homepage ===
+
* (11a/b/g/n) Atheros Communications, Inc. Unknown device 0024 (rev 01) (using SVN revision 2360+)
http://www.madwifi.org (old page: http://sourceforge.net/projects/madwifi)
 
  
=== Packages ===
+
== Packages ==
*Official {{Debian}} packages in the [http://packages.debian.org/src:madwifi non-free section]. See also the [http://alioth.debian.org/projects/pkg-madwifi/ Alioth project page] and the [http://madwifi.org/wiki/UserDocs/Distro/Debian Madwifi wiki].
+
*Official {{Debian}} packages in the [http://packages.debian.org/src:madwifi non-free section]. See also the [http://alioth.debian.org/projects/pkg-madwifi/ Alioth project page] and the [http://madwifi-project.org/wiki/UserDocs/Distro/Debian Madwifi wiki].
*{{Debian}} Packages: http://www.marlow.dk/site.php/tech/madwifi
+
*{{Debian}} Packages: http://www.marlow.dk/madwifi
 
*{{Debian}} Packages: http://www.users.tpg.com.au/sigm/debian/pkg-madwifi/
 
*{{Debian}} Packages: http://www.users.tpg.com.au/sigm/debian/pkg-madwifi/
 
*{{Fedora}} Packages(1): http://rpm.livna.org
 
*{{Fedora}} Packages(1): http://rpm.livna.org
 
*{{Fedora}} Packages(2): http://www.atrpms.net/name/madwifi/
 
*{{Fedora}} Packages(2): http://www.atrpms.net/name/madwifi/
 
*{{Gentoo}} ebuild: {{cmduser|emerge net-wireless/madwifi-driver net-wireless/madwifi-tools}}
 
*{{Gentoo}} ebuild: {{cmduser|emerge net-wireless/madwifi-driver net-wireless/madwifi-tools}}
*{{SUSE}} Packages http://www.madwifi.org/suse/
+
*{{SUSE}} Packages http://madwifi-project.org/wiki/UserDocs/Distro/SuSE
 
*{{Ubuntu}} Package: {{cmduser|sudo apt-get install linux-restricted-modules-`uname -r`}}
 
*{{Ubuntu}} Package: {{cmduser|sudo apt-get install linux-restricted-modules-`uname -r`}}
*[http://madwifi.org/wiki/UserDocs/GettingMadwifi MadWifi packages and source] for these and other distributions
+
*[http://madwifi-project.org/wiki/UserDocs/GettingMadwifi MadWifi packages and source] for these and other distributions
  
=== Source ===
+
== Source ==
 +
Detailed instructions can be found [http://madwifi-project.org/wiki/UserDocs/GettingMadwifi on the MadWiFi Wiki].
  
Detailed instructions can be found [http://madwifi.org/wiki/UserDocs/GettingMadwifi on the MadWiFi Wiki].
+
* [http://snapshots.madwifi-project.org/ Daily Snapshots]
 +
* checkout from svn:
 +
:{{cmduser|svn checkout svn.madwifi-project.org/madwifi/trunk madwifi}}
  
* Daily snapshots: http://snapshots.madwifi.org/
+
== Installation ==
* madwifi-ng:
 
:{{cmduser|svn checkout http://svn.madwifi.org/trunk madwifi-ng}}
 
* madwifi-old:
 
:{{cmduser|svn checkout http://svn.madwifi.org/branches/madwifi-old madwifi-old}}
 
 
 
 
 
=== Installation ===
 
  
 
*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
 
*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
Line 44: Line 38:
 
Setting up [[wpa_supplicant]] with wpa-psk.
 
Setting up [[wpa_supplicant]] with wpa-psk.
  
You can enable the wireless LAN status LED on your Thinkpad by following [http://madwifi.org/wiki/UserDocs/EnableLEDs these instructions] (tested on Thinkpad x60s).
+
You can enable the wireless LAN status LED on your Thinkpad by following [http://madwifi-project.org/wiki/UserDocs/EnableLEDs these instructions] (tested on Thinkpad x60s).
 +
 
 +
== Status ==
 +
Release 0.9.4[http://madwifi-project.org/wiki/Releases/0.9.4] available
  
=== Status ===
+
Release notes
in development, usable
+
    * fixes compilation for recently released kernel 2.6.24
 +
    * introduces Minstrel rate control algorithm
 +
    * introduces switch to turn ANI (Ambience Noise Immunity) off, which can help to improve performance (see also #705)
 +
    * several bug fixes to improve stability
 +
    * now defaults to radiotap headers in monitor mode
 +
    * adds support for variable number of VAPs, tunable via module parameter
  
=== Free Software HAL ===
+
== Free Software HAL ==
The "official" driver consists of a BSD/GPL wrapper with an unmodifiable HAL (Hardware Abstraction Layer). This HAL is not binary firmware as with the Intel wireless chips, but a piece of code that needs to run in the Linux kernel.  It consists of header files for which no permisison to modify is granted, and pre-compiled object files.
+
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 is that the Linux community simply needs to accept this sourceless HAL, since in principle  
+
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.
 
the Atheros chip could be tuned to any frequency, and thus produce RF interference with systems operating in those frequencies.
  
This binary HAL is unacceptable to the Linux kernel developers, and the Atheros driver in this state will never become part of the official kernel. Some OpenBSD developers, facing the same issue, reverse-engineered the binary HAL and have produced a [http://team.vantronix.net/ar5k/ freely-licensed HAL for Atheros chipsets]. Hopefully a driver based on this free HAL will be included with the Linux kernel at some point in time, and picked up by the mainstream distributions.
+
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).
 +
 
 +
{{NOTE|Atheros-Chip AR5211 still needs the MadWifi driver in Kernels >=2.6.29. Get the sources [[http://dimitar.me/wp-content/uploads/2009/10/madwifi-trunk-r4099-20090929.tar.gz here]] and build them (you will need your linux headers)}}
 +
 
 +
== 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 ([http://forums.fedoraforum.org/forum/showthread.php?p=990516 described in this email trail]) which indicates the new ath5k module is the problem.
  
=== Problems with system-config-network and Fedora Core 5 ===
+
As directed, I fixed it by editing '''/etc/modprobe.d''' and creating a file called '''madwifi''' with the following in it:
If you use the livna repository to install madwifi for Fedora Core 5, it doesn't correctly update the modprobe configuration files.  A [https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187640 bug] has been filed.  The quick fix is to move the lines that were in
+
<pre>
/etc/modprobe.d/madwifi into /etc/modprobe.conf and system-config-network now can configure the card.
+
alias wlan0 ath_pci
 +
blacklist ath5k
 +
</pre>
 +
Although this enables ath0, I have yet to get the wirelss to actually connect to anything.
  
=== Much easier on Fedora Core 6 ===
 
  
I'm using FC6 w/KDE on an X22 and wireless was very easy using madwifi from Livna and a Linksys WPC55AG PC card.
 
I had already installed knetworkmanager, klaptop and configured working radeonfb and
 
working S3 suspend.
 
I then simply used yum to install madwifi, including a kernel upgrade, enabled the knetworkmanager services and rebooted.
 
After restarting, knetworkmanager found the Atheros card and my AP. I just had to choose the connection and was online in seconds.
 
  
===Using Madwifi with SUSE Linux 10.1===
 
As of [[Category:SUSE SUSE Linux]] 10.1, the Madwifi packages are no longer included in the SUSE distribution because of the presence of closed source code. However, I was able to download, install, and configure Madwifi for my [[:Category:T40|IBM T40]] with the
 
[[IBM 11a/b/g Wireless LAN Mini PCI Adapter|IBM 11a/b/g Wireless Adapter (Atheros AR5212 802.11abg)]] as follows:
 
* Start yast2 and select Software--Installation Source. Add http://madwifi.org/suse/ as a source
 
* Install packages <tt>madwifi</tt> and <tt>madwifi-kmp-default</tt> (the latter has the kernel module, replace <tt>default</tt> with <tt>smp</tt> or other non-default kernel package if you're not running the default Suse kernel package as determined by <tt>uname -r</tt>)
 
* Reboot so the kernel modules can be loaded.
 
* Load the kernel modules by hand and see if the kernel recognizes your hardware:
 
<tt>modprobe aes; modprobe wlan_ccmp; modprobe ath_pci; lsmod |egrep 'Module|aes|wlan|ath'</tt>
 
* If recognized, put the modprobe lines above in your <tt>/etc/init.d/boot.local</tt> file.  Otherwise, check for Linux kernel/Madwifi incompatibilities and hardware issues.
 
* Start yast2 and go to Network Devices-->Network Card and add and configure your wireless card.  I recommmend checking the "Network Manager" box, as that allows dynamic GUI control over the wireless and Ethernet NICs.
 
* I have WPA-PSK enabled, so here's the fields I filled out: "User Controlled" device activation, DHCP Automatic Address Setup, "Managed" operating mode, "any" ESSID, "WPA-PSK" auth mode, key input type "passphrase" and I typed in my passphrase.  I left expert settings alone.
 
  
=== Related links ===  
+
== External links ==
* [http://www.madwifi.org/wiki MadWiFi Wiki]
+
* [http://madwifi-project.org/ Official website]
* [http://team.vantronix.net/ar5k/ OpenSource Atheros HAL]
 
* [http://www.ath-driver.org/ OpenSource Atheros driver for Linux]
 
  
 
[[Category:Drivers]]
 
[[Category:Drivers]]

Latest revision as of 09:15, 18 November 2009

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:

  • (11a/b/g/n) Atheros Communications, Inc. Unknown device 0024 (rev 01) (using SVN revision 2360+)

Packages

Source

Detailed instructions can be found on the MadWiFi Wiki.

$ svn checkout svn.madwifi-project.org/madwifi/trunk madwifi

Installation

  • 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).

Status

Release 0.9.4[1] available

Release notes

   * fixes compilation for recently released kernel 2.6.24
   * introduces Minstrel rate control algorithm
   * introduces switch to turn ANI (Ambience Noise Immunity) off, which can help to improve performance (see also #705)
   * several bug fixes to improve stability
   * now defaults to radiotap headers in monitor mode
   * adds support for variable number of VAPs, tunable via module parameter

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).

NOTE!
{{{1}}}

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.



External links