The who's who of Wireless LANs under Linux.
Driver status : | beta |
Driver name : | PCI : acx100_pci.o |
Version : | 0.3.36 [20070101] |
Where : |
http://acx100.sourceforge.net/
http://lisas.de/~andi/acx100/ http://rhlx01.fht-esslingen.de/~andi/acx100/ http://www.cmartin.tk/acx/ |
Contact : | ACX100 OSS driver project team <acx100-users@lists.sf.net> |
Maintainers : | Denis Vlasenko <vda at port.imtp.ilyichevsk.odessa.ua>
Andreas Mohr <andim2 at users.sourceforge.net> Jeff Williams <angelbane at users.sourceforge.net> Carlos Martin Nieto <carlos@cmartin.tk> Benjamin Schrauwen <bschrauw at users.sourceforge.net> Moritz Angermann <sfoi at users.sourceforge.net> Frederic Deletang <ziga at users.sourceforge.net> |
Mailing list : | http://sourceforge.net/mail/?group_id=75380 |
Documentation : | Readme file, Wiki
http://www.houseofcraig.net/acx100_howto.php |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | Yes |
Interoperability : | 802.11b and PBCC, 802.11g depending on hardware |
Other features : | Experimental support for HostAP mode |
Non implemented : | "4X" mode, USB support (WIP), CF support, packet fragmentation, AutoRate |
Bugs : | some configurations may lockup or loose packets |
License : | MPL |
Vendor web page : | http://www.ti.com/
http://www.dlink.com/products/ http://www.linksys.com/products/ http://www.gemtek.com.tw/ http://www.smc.com/ http://www.netgear.com/ |
However, to get the market to accept PBCC, TI needed the stamp of approval of the IEEE standard group. Other vendors within the IEEE were not keen to give TI any advantage, and decided to base 802.11g on the OFDM modulation rather than PBCC. After much political fight, the final 802.11g standard include both OFDM (mandatory) and PBCC (optional). Because PBCC is only optional and slower, I don't expect anybody else than TI to implement it.
The ACX100 was one of the first second generation 802.11b chipset. It is based on a ARM7 core, and offer both a PCI/Cardbus and USB interface. The use of PCI busmaster allow to reduce CPU utilisation compared to 16 bit cards. The MAC includes all the common 802.11 features, the Phy implement the regular 802.11b modulations and PBCC. The design goal seems to have been performance and features.
As soon as TI released its ACX100 chipset, many usual vendors started selling PCI, Cardbus and USB cards based on it, for example the D-Link 520+ and 650+ cards based on it. All the cards that support up to 22 Mb/s are based on this chipset.
The ACX100 is known for its requirement for PCI2.2 mainboards (lack thereof or some other reason may lead to conflicts with other cards such as SB Live! and crashes). This is not specific to the ACX100, other modern wireless chipsets also tend to require PCI2.2.
Note that TI has released newer chipsets, the TNETW1100b/1130/1230 chipsets, also called ACX111, which add support for 802.11g and 802.11a, and don't seem to be driver compatible with the ACX100. All cards supporting both 22 Mb/s and 802.11g/a are based on those chipsets. Note that for 802.11g, a name including "plus" does not imply a TI chipset, D-Link has a range of 802.11g "plus" cards including Atheros chipsets.
A group of people using this driver got fed up with the situation and decided to reverse engineer the binary driver by disassembling it. This is a huge task, as this hardware and driver are fairly complex, and most other reverse engineering project I've heard off eventually failed. After a few month of work, they eventually released their first version of the ACX100 opensource driver.
The initial driver was very experimental, but it evolved fairly rapidly, as Andy was working hard on the driver fixing bugs. Most basic features are now working (Ad-Hoc and Infrastructure mode, WEP, Wireless Extensions, statistics...), and some advanced features are implemented (monitor mode, 2.6.X support...). However, there are still lockups or eventual traffic loss on some machines/networks, power management/hotplug is experimental. Preliminary support for USB and ACX111 devices has been added, but this is not yet complete. Denis joined and fixed support for ACX111, as well as ton of other bugs.
Around mid 2005, Denis created a branch of the driver targeted at inclusion in kernel 2.6.X. He dropped support for 2.4.X and some non standard features such as the old firmware loader, and fixed many bugs. For example, support for USB dongles, 64 bits, SMP is now functional. This driver was included in Andrew's kernels (-mm version), and meanwhile can be made to compile for standard kernels. This version got almost included in the Linux kernel but was eventually rejected, and also dropped from -mm kernels.
The initial ACX100 driver contains its own 802.11 code. When the SoftMAC 802.11 stack became available in 2005 (see section 4.13), Andi and Denis ported the driver to it. This SoftMAC driver is currently in alpha stage. This driver was included in wireless-2.6 GIT repository, in preparation for inclusion in the kernel, and later dropped. The concern is that there was no clean separation between the people that did the reverse engineering and those who wrote the driver, unlike what was done for the Broadcom driver (see section 4.13).
In 2006, Jeff and Carlos started porting the driver to the new mac80211 kernel stack (see section 4.9). Their intention is to initially replace the SoftMAC driver, and eventually replace the initial driver. The driver is currently in experimental stage.
In parallel, the branches of the initial driver from Andi and
Denis were merged. Andi has still been busy fixing
various bug and keeping this driver up to date with respect to kernel
changes. This is the version of the driver recommended for maximum
stability.
4.2 Atheros MADWiFi driver (most cards with 802.11a or 108 Mb/s)
Driver status : | stable |
Driver name : | ath_pci.o |
Version : | 0.9.3.1 |
Where : | http://madwifi.org/
http://sourceforge.net/projects/madwifi |
Maintainers : | Sam Leffler <sam@errno.com>
Michael Renzmann <netdev@nospam.otaku42.de> Greg Chesson <greg@atheros.com> |
Mailing list : | http://sourceforge.net/mail/?group_id=82936 |
Documentation : | Readme file
http://www.mattfoster.clara.co.uk/madwifi-faq.htm |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc, Master (HostAP) |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | HostAP mode |
Non implemented : | Ad-Hoc mode |
Bugs : | - |
License : | Binary only for the HAL + BSD driver |
Vendor web page : | http://www.atheros.com/
http://actiontec.com.tw/ http://www.proxim.com/ http://www.dlink.com/products/ http://www.linksys.com/products/ http://www.gemtek.com.tw/ http://www.smc.com/ http://www.netgear.com/ |
Most vendor offer a CardBus card (32 bits Pcmcia) and Access Points, and a few offer PCI solutions.
The first Atheros chipset, ar5210, implement the full 802.11a standard. The MAC protocol is identical to 802.11b, the Atheros chipset offer both infrastructure and ad-hoc mode, enhanced WEP with per link keys (for 802.1x) The radio modem use OFDM in the 5 GHz band (8 separate channels), with speeds from 6 Mb/s to 54 Mb/s (depending on range).
The Atheros chipset has a few proprietary features, such as its X2 mode (turbo) that allow to double the rate by using two channels in parallel (unfortunately, it also increases the sensitivity to interferences, decrease the number of channels and is incompatible with 802.11a).
The Atheros cards offer a busmaster host interface, allowing high performance and low CPU utilisation (almost all 802.11b cards are limited to PIO, which keeps the CPU busy). The card deals only with the low level of the MAC protocol, and the driver has to deal with all the 802.11 management (making driver development more complicated). The other main characteristics of the Atheros chipset is that it's a fully CMOS solution (including the radio), which reduces the cost.
Atheros has released its second generation chipset, derived from the initial ar5210, that have better performance and are no longer limited to only 802.11a. The ar5211 support both 802.11a and 802.11b, whereas the ar5212 support 802.11a, 802.11b and 802.11g. The following chipsets from Atheros (ar5213, ar5214, ar5413, ar5414, ar5513) kept the basic same design and features and mostly added a wide range of proposed enhancements to the 802.11g/a standard, add 802.11e QoS or proprietary extensions, such as Turbo mode (bound two channels), bursting and proprietary MIMO.
After that, Atheros released a number of more specialised chipsets, such as single-chip solutions (integrating both MAC and radio on the same chip) and PCI-Express chipsets. Their USB chipset AR5007UG is the former ZyDAS ZD1211 (see section 4.14). Their new generation chipset, such as the ar5416, support draft-802.11n MIMO (up to 300 Mb/s), and obviously adds new proprietary extensions.
There is many products on the market using Atheros chipsets. In fact, the vast majority of 802.11a cards are based Atheros chipset. Most all the 802.11g cards that advertise 108 Mb/s are also based on Atheros chipsets.
In the mean time, Sam had ported is original BSD driver to Linux, and integrated into Linux. Like the BSD driver, the initial MADWiFi driver is based on the HAL, however it supports Wireless Extensions and Wireless Scanning (which are Linux specific). This driver requires a recent 2.4.X kernel or 2.6.X kernel, and requires Wireless Extensions V14 or later.
As the hardware is basic, a lot of the 802.11 functionality is handled in the driver (as opposed to firmware). To handle this, Sam has created a 802.11 stack for this driver that became the de-facto 802.11 stack of BSD operating systems. This is a lot of code, and for the first release there was still some bugs and many features and optimisations missing (for example, Ad-Hoc mode is not yet functional). The good news is that over time, the performance and functionality of this driver increased. Lately, WPA support has been added to the driver (which is a lot of work).
In early 2005, the project went into hibernation, no new release was done and activity slowed down. Then, in mid 2005 the project was re-energised, and Michael took over the driver maintenance. He is coordinating the work on a new branch of the driver called madwifi-ng created by Atheros to support more recent cards and their features. This is now the main branch of the driver, seeing active development, and the old branch has been deprecated.
This driver has a vast number of features and good hardware compatibility, thanks to the support from Atheros and the close integration with the 802.11 stack. Nearly all features of the hardware are supported (QoS and performance enhancements). The driver also support virtual network interfaces (called VAP), which allow one card to act as multiple 802.11 devices.
The MadWiFi project has recently added two other branches of the driver. The first branch is called DadWiFi and is a port of the driver to the new mac80211 kernel stack (see section 4.9). Currently, the mac80211 stack does not offer much more than the 802.11 stack in the madwifi-ng driver, but with time it may change.
The other branch is called OpenHAL, it is a replacement of the
binary only HAL with OpenSource code. The OpenHAL is mostly a port
from the OpenBSD Atheros driver called ar5k from Reyk Floeter,
which itself is derived from the vt_ar5k driver for Linux written by
Reyk, which was listed in this document a few years ago. The
work on OpenHal and the port to mac80211 would make this driver more
likely to go in the Linux kernel at some point in the future.
4.3 Intersil Prism54 FullMac (802.11a/802.11g)
Driver status : | stable |
Driver name : | Cardbus : prism54.o
PCI : prism54.o |
Version : | 0.2 |
Where : | Linux kernel (2.6.19)
http://prism54.org/fullmac.html |
Authors : | W. Termorshuizen
R. Bastings |
Maintainers : | Luis R. Rodriguez <mcgrof@ruslug.rutgers.edu>
Frederik Kunz <frederik.kunz@web.de> Sebastian Schoeps <sebastian@schoeps.org> Aurelien Alleaume <slts@free.fr> Herbert Valerio Riedel <hvr@gnu.org> |
Mailing lists : | http://prism54.org/mailing.html |
Documentation : | Readme, web page |
Configuration : | Wireless Extensions & configuration tool |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc, Master (FirmwareAP) |
Security : | WEP, AES |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | yes |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Encryption, Access Point mode, WDS, Firmware loading via HotPlug. |
Non implemented : | SoftMAC firmware support |
Bugs : | ? |
License : | GPL |
Vendor web pages : |
http://www.dlink.com/products/
http://www.smc.com/ http://www.netgear.com/ http://www.gemtek.com.tw/ http://www.conexant.com/ |
Because of the limitations of the previous PrismII design, those new chipsets feature a totally new design, much cleaner and much more efficient, and doesn't share much in common with the earlier Prism designs, but is more likely to be related to the NWN MAC that Intersil acquired (see section 3.17).
The chipset is highly integrated (2 or 3 chip solutions). Like previous Prism chipsets, most of the 802.11 management is handed in firmware. However, the bus interface is now PCI DMA only (less CPU overhead, faster). The MAC support the usual 802.11 features, and hardware WEP and AES encryption, and the firmware fully act as an Access Point. The Radio implement the OFDM modulation necessary to support 802.11a and 802.11g.
There doesn't seem to be any products using the Prism Indigo chipset (most card offering 802.11a are based on Atheros chipset - see section 4.2), and I don't expect to see any in the future. A few of the usual Intersil partners, such as Netgear and SMC, have started selling 802.11g cards based on the Prism GT and Prism Duette chipsets.
Note that there are two types of firmware for this card, the FullMAC firmware, that can handle most of the 802.11 functionality by itself, and the SoftMAC firmware, that delegates it to the driver. Older revision of the hardware can handle both types of firmware, whereas newer revisions can only handle the SoftMAC firmware. Cards that can support the older FullMAC firmware are now very difficult to find.
After releasing this chipset, the wireless division of Intersil (formerly part of Harris) was bought by GlobespanVirata, and after a few month, GlobespanVirata merged with Conexant. Therefore, the Prism chipsets are now sold by Conexant.
Luis, Frederik and Sebastian are taking care of this driver after the initial release from Intersil and helping people with the driver. They are fixing bugs and improving compatibility with the various kernels and configurations. Aurelien has done a tremendous work on Wireless Extensions support.
After an initial frenetic pace of changes and reorganisation, the driver has stabilised and matured, and is now included in the Linux 2.6.X kernel. The driver requires firmware download (through the standard HotPlug support) and has full support for Wireless Extensions (including Wireless Scanning) and monitor mode. The driver also can act as an Access Point through a FirmwareAP mode (all the AP management is handled by the firmware). Full support for WPA has been added recently to the driver.
One of the limitation of the driver is that it does not support the
new SoftMAC devices, which means that it only works with older Prism54
devices. For SoftMAC devices, you will need the SoftMAC driver (see section 4.4).
4.4 Intersil Prism54 SoftMac (islsm)
Driver status : | beta |
Driver name : | islsm.o |
Version : | 0.7 |
Where : |
http://prism54.org/newdrivers.html
http://jbnote.free.fr/ http://islsm.org/~jb/islsm/islsm.git/ |
Maintainer : | Jean-Baptiste Note <jean-baptiste.note@m4x.org>
Jean-Baptiste Note <jbnote@gmail.com> |
Mailing lists : | ? |
Documentation : | ? |
Configuration : | ? |
Statistics : | ? |
Modes : | ? |
Security : | ? |
Scanning : | ? |
Monitor : | ? |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | ? |
Non implemented : | ? |
Bugs : | ? |
License : | GPL |
Vendor web pages : |
http://www.dlink.com/products/
http://www.smc.com/ http://www.netgear.com/ http://www.gemtek.com.tw/ http://www.conexant.com/ |
Conexant also released the Prism WorldRadio, an enhanced version of the Prism Duette with 802.11a and 802.11g support with proprietary bit rate enhancement. Then, they released the CX85510, which adds QoS and more security features, and the CX3110x, a single chip solution.
Jean-Baptiste has led the effort to reverse engineer the Windows driver and create a driver for the Prism54 SoftMAC devices. He reversed engineered the driver by loading it with ndiswrapper and spying on the USB traffic, as opposed to other effort that actually disassemble a driver.
Jean-Baptiste is mostly concentrating on support for USB
devices, however support for PCI devices was added as well to the
Prism54 SoftMAC driver. The driver is based on the 802.11 stack from
the MadWifi project (see section
4.2). The driver is claimed to work, but at the time of
writing not tarball or release seems to be available.
4.5 Intersil Prism54 mac80211 driver (p54)
Driver status : | alpha |
Driver name : | PCI/Cardbus : prism54pci.o
USB : prism54usb.o |
Version : | ? |
Where : | wireless-dev GIT |
Maintainers : | Michael Wu <flamingice@sourmilk.net>
Christian Lamparter <chunkeey@web.de> Jean-Baptiste Note <jbnote@gmail.com> |
Mailing lists : | - |
Documentation : | - |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | Yes |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | mac80211 features, Firmware loading via HotPlug |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web pages : | http://www.conexant.com/ |
Michael ported the work of Jean-Baptiste to the mac80211
stack, with the goal of merging it in the Linux kernel in the near
future. The driver has two versions, one for PCI/Cardbus devices and
one for USB devices. This driver is only available in the wireless-dev
GIT repository, and not much documentation is available about it.
4.6 Intel PRO/Wireless 2200 802.11g and 2915 802.11ag (Centrino)
Driver status : | Stable |
Driver name : | ipw2200.o |
Version : | 1.2.2 |
Where : | Linux kernel (2.6.20)
http://ipw2200.sourceforge.net/ http://ieee80211.sourceforge.net/ |
Maintainer : | James P. Ketrenos <ipw2100-admin@linux.intel.com> |
Mailing list : | http://lists.sourceforge.net/lists/listinfo/ipw2100-devel/ |
Documentation : | Readme |
Configuration : | Wireless Extensions |
Statistics : | /proc interface and Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Firmware loading via HotPlug, 802.11e (QoS) |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web page : | http://www.intel.com/
http://www.passys.nl/tips/tip40_en.htm |
The design of the 2200 and 2915 are based on the original 2100, the main improvement are the new radio modems and better support for the new security protocols (WPA). The MAC core still support the same vast array of standard 802.11 features. The radio are obviously different, adding the OFDM bit-rates, up to 54 Mb/s, and support for 5 GHz frequencies for the 2915.
The marketing program is still the same, and the PRO/Wireless 2200 and 2915 Mini-PCI cards are exclusively sold as part of the Centrino package, therefore you will mostly find them integrated in various laptops, and not as a separate add-on card.
If you really want a separate add-on card, Intel also sells the Intel PRO/Wireless 2225, which is basically the PRO/Wireless 2200 in a half-height PCI card and sold separatly. And obviously, it's not called Centrino. And this card is very hard to find and buy, and is not listed on Intel web site.
Some people, such as Passys, have built PCI to Mini-PCI adapters for the PRO/Wireless 2200. This allows to put a standard Mini-PCI PRO/Wireless 2200 in any regular desktop, and it is supported by Linux.
Obviously, the driver share a lot of code with the 2100 driver, it supports both the 2200 and the 2915 and offer a similar rich feature set (WEP, WPA, Scanning). The development is very active and many bug are being fixed and features added.
The 802.11 code originally taken from the HostAP driver (see section
3.8) was eventually spin-off into the separate Intel
ieee80211 stack (see section
3.28). This driver and the 802.11 stack was included in Linux
kernel 2.6.14.
4.7 Intel PRO/Wireless 2200/2915 with HostAP mode
Driver status : | Beta |
Driver name : | ipw2200.o |
Version : | 0.3 |
Where : | Linux kernel (2.6.20)
http://sourceforge.net/projects/ipw2200-ap |
Maintainer : | York Liu <york_liu@linux.intel.com> |
Mailing list : | http://sourceforge.net/mail/?group_id=149502 |
Documentation : | Readme |
Configuration : | Wireless Extensions |
Statistics : | /proc interface and Wireless Extensions |
Modes : | Managed, Ad-Hoc, Master |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Firmware loading via HotPlug |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web page : | http://www.intel.com/ |
The driver is still based on the 802.11 code originally taken from the
HostAP driver (see section
3.8), it is a variant of the Intel ieee80211 stack (see section
3.28) that includes the HostAP functionality. This driver
requires a specific firmware for the card, provided by Intel. This
driver seems to be updated less often than the standard drivers.
4.8 Intel PRO/Wireless 3945ABG 802.11g/802.11ag (Centrino)
Driver status : | Stable |
Driver name : | ipw3945.o |
Version : | 1.2.1 |
Where : |
http://ipw3945.sourceforge.net/
http://ieee80211.sourceforge.net/ |
Maintainer : | James P. Ketrenos <ipw2100-admin@linux.intel.com>
Zhu Yi <yi.zhu@intel.com> |
Mailing list : | https://lists.sourceforge.net/lists/listinfo/ipw3945-devel |
Documentation : | Readme |
Configuration : | Wireless Extensions |
Statistics : | /proc interface and Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Firmware loading via HotPlug, 802.11e (QoS), binary daemon |
Non implemented : | - |
Bugs : | ? |
License : | GPL, except the binary daemon |
Vendor web page : | http://www.intel.com/ |
Like their previous chipset, the 3945 is only available as a MiniPCI card for Intel Centrino processor, integrated in various laptops, and not available as a separate add-on card.
Intel opted for a different approach, they created a fully OpenSource driver and moved regulation compliance to a binary userspace daemon interacting with the driver. This is technically better than using a binary driver, as the driver could be included in the kernel and the user just need to add the binary daemon to his system, which is simpler than adding a kernel driver. However, this has similar downside as a binary driver, the platform support is limited (currently only to x86 and x86-64).
The driver is similar to the ipw2200 driver (see section 4.6), it share a lot of code with it, has a similar set of features and uses the same Intel ieee80211 stack (see section 3.28).
Note that Intel has a second driver for this hardware using the new
mac80211 kernel stack (see section 4.9).
4.9 Intel PRO/Wireless 3945ABG mac802.11 driver
Driver status : | Experimental |
Driver name : | iwl3945.o |
Version : | 0.1.3 |
Where : |
http://intellinuxwireless.org/?p=iwlwifi
http://intellinuxwireless.org/?p=mac80211 |
Maintainer : | James P. Ketrenos <ipw2100-admin@linux.intel.com>
Zhu Yi <yi.zhu@intel.com> |
Mailing list : | https://lists.sourceforge.net/lists/listinfo/ipw3945-devel |
Documentation : | Readme |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Firmware loading via HotPlug, 802.11e (QoS) |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web page : | http://www.intel.com/ |
For these reasons, various driver maintainers decided to standardised on a new stack, the mac80211 stack. This stack was initially released in middle 2006 by DeviceScape, a Linux consulting company, and was mostly designed by Jouni Malinen, author of the HostAP driver (see section 3.8). After this release, the DeviceScape stack was very heavily reworked by Jiri Benc, Michael Wu and Zhu Yi and the rest of the Linux wireless community, to become mac80211. The mac80211 stack was included in kernel 2.6.22, but it is still experimental and a lot of work remains. For example, early version of mac80211 have deadlocks and are not SMP safe.
Intel was obviously interested in this new mac80211 stack, as in the long term it makes their driver better and easier to maintain. Intel is contributing to the mac80211 stack, and they also have their own branch of mac80211 with features needed by their driver and not found yet in the kernel stack (but planed to be merged later).
Intel also ported their driver for the 3945 chipset to the new mac80211 stack, as part of the iwlwifi package. The driver is still experimental and under heavy development.
The previous driver for the 3945 requires a binary daemon for
regulation compliance, but this turned out to be not
satisfactory. Intel decided to rewrite the firmware for the 3945 to
ensure regulation compliance. This means that the iwlwifi Linux driver
requires its own specific firmware, and that the driver can be
fully OpenSource without binary daemon. This represents an impressive
commitment to the Linux community.
4.10 Intel PRO/Wireless 4965AGN draft-802.11n (Centrino)
Driver status : | Experimental |
Driver name : | iwl4965.o |
Version : | 0.1.3 |
Where : |
http://intellinuxwireless.org/?p=iwlwifi
http://intellinuxwireless.org/?p=mac80211 |
Maintainer : | James P. Ketrenos <ipw2100-admin@linux.intel.com>
Zhu Yi <yi.zhu@intel.com> |
Mailing list : | https://lists.sourceforge.net/lists/listinfo/ipw3945-devel |
Documentation : | Readme |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | Firmware loading via HotPlug, 802.11e (QoS) |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web page : | http://www.intel.com/ |
MIMO uses multiple antennas to simultaneously transmit or receive signal, and using some clever processing can achieve much greater range or speed than regular transmissions. The 802.11n standard is not yet finalised, which is why those products are called draft-802.11n compliant. It offer bitrate up to 300 Mb/s (most users won't see that in practice), and may double the range indoors.
Like their previous chipset, the 4965 is only available as a MiniPCI card for Intel Centrino processor, integrated in various laptops, and not available as a separate add-on card.
Driver status : | Beta |
Driver name : | rt2500.o
PCI : rt61.o USB : rt73.o rt2x00.o |
Version : | 1.1.0 (beta) and 2.0.4 (alpha) |
Where : |
http://rt2x00.serialmonkey.com/
http://rt2400.sourceforge.net/ http://www.ralinktech.com/supp-1.htm |
Maintainers : | Paul Lin
Mark Wallis <markwallis at users.sourceforge.net> Ivo van Doorn <ivd at euronet.nl> |
Mailing list : | http://sourceforge.net/mail/?group_id=107832 |
Documentation : | Text files, Howtos |
Configuration : | Wireless Extensions and specific graphical tool |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g and 802.11a depending on hardware |
Other features : | - |
Non implemented : | - |
Bugs : | SMP problems |
License : | GPL |
Vendor web page : | http://www.ralinktech.com/
http://minitar.com/ http://rt2x00.serialmonkey.com/wiki/index.php/Hardware |
Like other 802.11g chipsets, it supports standard OFDM bitrates up to 54 Mb/s and all modern 802.11 features such as WPA and QoS (802.11e). On top of that, it support a proprietary 72 Mb/s bitrate. The RT2500 is designed for MiniPCI and CardBus interfaces, and the RT2570 is designed with a USB 2.0 interface.
As usual, this chipset is sold by a wide variety of vendors under different model names, and some of those use the same model name for different chipsets. The project pages includes a long list of cards including this chipset. A special mention to Minitar which has a dedicated Linux support forum.
The RT2500 was quickly followed by other 802.11g chipsets. The RT61 family includes the rt2561 and rt2661 PCI chipsets and adds support for turbo bit rate (100 Mb/s) and for the rt2661 only proprietary MIMO (not 802.11n compatible). The RT73 family includes the RT2573 and RT2571 USB chipsets, and is the equivalent of the RT61 (but without the MIMO chipset). Those chipset are available with two radio options, 2.4 GHz only, or 2.4 GHz plus 5 GHz, for additional 802.11a support.
Ralink has now released the RT2800 family. The main feature of those chipset is the addition of draft-802.11n MIMO support.
Mark integrated this driver in the existing SourceForge project for the RT2400 driver and started to maintain it. Many patches have been integrated to improve the stability and functionality of the driver.
After that, Ralink released the RT61 driver and the RT73 driver, to support the new 802.11g chipset. Those drivers are GPL and have the same features as the RT2500 chipset. Mark has integrated this driver in the existing SourceForge project, and the community is provided various improvement to those drivers.
Ivo has started a rewrite of those drivers, called rt2x00, his goal is to have a source code easier to integrate in the Linux kernel and to maintain. His rewrite targets both the RT2400 (see section 3.27), the RT2500, the RT61 and RT73. The initial version of this new driver was using the Intel ieee80211 stack from the Centrino driver (see section 3.28).
Then, Ivo ported the driver to the new mac80211 kernel
stack (see section 4.9),
and lots of development has happened on that version of the
driver. This alternate version is available in the wireless-dev GIT
repository and in the CVS, and should appear in a Linux kernel in the
future.
4.12 Ralink ural-linux driver (BSD driver)
Driver status : | Alpha |
Driver name : | ural.o |
Version : | 0.8.2 |
Where : | http://etudiants.insia.org/~jbobbio/ural-linux/ |
Maintainers : | Jeremy Bobbio <jeremy.bobbio@etu.upmc.fr> |
Mailing list : | - |
Documentation : | - |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, WPA |
Scanning : | Wireless Extensions |
Monitor : | No |
Multi-devices : | ? |
Interoperability : | 802.11b and 802.11g |
Other features : | - |
Non implemented : | - |
Bugs : | - |
License : | BSD |
Vendor web page : | http://www.ralinktech.com/ |
Driver status : | Beta |
Driver name : | bcm43xx.o |
Version : | ? |
Where : | Linux kernel (2.6.22)
http://bcm43xx.berlios.de/ http://linux-bcom4301.sourceforge.net/ |
Maintainers : | Michael Buesch <mbuesch@freenet.de>
Martin Langer <martin-langer@gmx.de> Stefano Brivio <st3@riseup.net> Danny van Dyk <kugelfang@gentoo.org> Andreas Jaggi <andreas.jaggi@waterwave.ch> Larry Finger <Larry.Finger@lwfinger.net> |
Mailing list : | https://lists.berlios.de/mailman/listinfo/bcm43xx-dev |
Documentation : | README files |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | - |
Non implemented : | 802.11a |
Bugs : | - |
License : | GPL |
Vendor web page : | http://www.broadcom.com/
http://www.linksys.com/ http://www.usr.com/ |
Eventually, the competition caught up, started offering more features than Broadcom or cheaper prices, and a lot of vendor using Broadcom chipsets migrated to other chipsets. Linksys is still a Broadcom stronghold, and a large portion of their 802.11g products are based on Broadcom chipsets (but not exclusively). A lot of laptops today that offer 802.11 includes either an Intel Centrino or a Broadcom chipset.
Like most 802.11g chipsets, the BCM43xx chipsets support standard OFDM bitrates up to 54 Mb/s and all modern 802.11 features such as WPA and QoS (802.11e). Broadcom has a complete family of chipsets, each iteration lowering the price or adding features. Their newer chipsets add support for 802.11a and pre-802.11n MIMO, and also add USB and PCI-Express interfaces.
Broadcom first proprietary extension is SpeedBooster, Broadcom's name for Packet Bursting, which is part of the 802.11e standard. They have few proprietary extension, their newer chipsets include a proprietary 125 High Speed Mode : this is not a enhanced modulation at 125 Mb/s, the card still use 54 Mb/s and a combination of protocol enhancement and compression. In fact, if a card advertise 125 Mb/s (which is misleading), it's a good clue that it's most likely a Broadcom card. Broadcom also advertise BroadRange, which is mostly a higher radio sensitivity.
Broadcom has two main firmware version, V3 and V4. Most cards can run both firmware, however older cards do not support V3 (such as the BCM4301 chipset, which is 802.11b only). Firmware V4 is necessary for most of the more advanced features.
A team of people led by Brett Wooldridge, Joe Jezak and Johannes Berg started to reverse engineer this driver by disassembling it, like it was done for the TI driver (see section 4.1). They did not write directly a driver, they produced a set of documentation so that the driver development would be legally separate from the reverse engineering effort.
A second team of people led by Michael started to write a driver based on those documents. They based their driver on the Intel ieee80211 stack from the Centrino driver (see section 3.28), and added a SoftMAC layer. The SoftMAC layer add all the MAC management functionality missing from the Intel ieee80211 stack. Both the driver and the SoftMAC stack were merged in the Linux kernel 2.6.17.
The driver and SoftMAC have seen tremendous development and reached a point where they are usable and stable. Support for more variations of the Broadcom chipset was added, such as PCI-E, support basic and advanced encryption was added. This driver only supports firmware V3.
In 2006, Michael started porting the driver to the new mac80211 kernel stack (see section 4.9). Along the way, the driver was significantly changed, this version only supports firmware V4 (so dropped support for older cards), and should offer support for the advanced features not supported in the SoftMAC driver, such as 802.11a. The mac80211 version is only available in the wireless-dev GIT repository, and should appear in a Linux kernel in the future.
In parallel, Larry has reused the SoftMAC driver and the
mac80211 driver above to create an alternate driver for the mac80211
kernel stack that support only firmware V3. This driver
supports cards that are not supported by the other mac80211
driver. Note that the names of all those drivers is currently in flux.
4.14 ZyDAS ZD1211 driver (USB dongles)
Driver status : | Stable |
Driver name : | zd1211.o |
Version : | 2.18.0.0 |
Where : |
http://sourceforge.net/projects/zd1211/
http://zd1211.ath.cx/zd1211 http://www.zydas.com.tw/downloads/download-1211.asp |
Maintainers : | Markus Karg <markus-karg@users.sourceforge.net>
ZyDAS |
Mailing list : | http://sourceforge.net/mail/?group_id=129083 |
Documentation : | Web pages |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, WEP256, WPA |
Scanning : | Wireless Extensions |
Monitor : | No (need external patch) |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | 64 bit support |
Non implemented : | - |
Bugs : | - |
License : | GPL |
Vendor web page : | http://www.atheros.com/ |
The main feature of ZyDAS chipsets is their small size and low power consumption, making them especially suitable for USB dongles. Actually, it seems that this chipset is only found in USB dongles, even though it support other interfaces (PCI and Pcmcia). USB 2.0 is needed for full 802.11g operation.
ZyDAS was acquired by Atheros, and the ZD1211 is now known as Atheros AR5007UG.
At this point, a community organised around this driver : many people contributed patches and created branches of the driver. Most of the branches, which were aiming at simplifying the driver code or integrating it in the kernel, seems to have died. Instead, a new driver was written (see section 4.15).
Meanwhile, ZyDAS continues to release new version of the driver
including bug fixes and patches from the community. Markus is hosting
this driver and many patches on his web site.
4.15 ZyDAS ZD1211 SoftMAC driver
Driver status : | Stable |
Driver name : | zd1211rw.o |
Version : | - |
Where : | Linux kernel (2.6.23)
http://zd1211.wiki.sourceforge.net/ http://www.linuxwireless.org/en/users/Drivers/zd1211rw |
Maintainers : | Daniel Drake <dsd@gentoo.org>
Ulrich Kunitz <kune@deine-taler.de> |
Mailing list : | http://sourceforge.net/mail/?group_id=129083 |
Documentation : | Web pages |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | - |
Non implemented : | Automatic bitrate selection, Ad-Hoc mode |
Bugs : | - |
License : | GPL |
Vendor web page : | http://www.atheros.com/ |
The driver was developped based on the SoftMAC 802.11 stack (see section 4.13), saw a rapid development and was included in kernel 2.6.18. After that, it was gradually improved with new features and more hardware support. However, some important features, such as automatic bitrate selection, are missing from this driver, and users have to manually select a bitrate. The performance is also not as good as the official driver, but it is very stable.
Many of the shortcomings of the SoftMAC driver are due to function not
implemented in the SoftMAC 802.11 stack. Rather than implement those
features in their driver, Daniel and Ulrich decided to port their
driver to the new mac80211 kernel stack, which include those
features (see section
4.9). This new driver currently does not have the same level
of features and stability as the SoftMAC driver. This alternate
version is currently only available in the wireless-dev GIT
repository.
4.16 Realtek RTL8185L & RTL8187L (802.11g)
Driver status : | Experimental |
Driver name : | PCI : r8180.o
USB : r8187.o |
Version : | 0.22 |
Where : |
http://rtl-wifi.sourceforge.net/
http://rtl8180-sa2400.sourceforge.net/ |
Maintainers : | Andrea Merello <andreamrl *at* tiscali.it>
Hauke Mehrtens <hauke@hauke-m.de> |
Discussion forums : | https://sourceforge.net/forum/?group_id=186406 |
Documentation : | Readme files |
Configuration : | Wireless Extensions |
Statistics : | ? |
Modes : | Managed, Ad-Hoc |
Security : | WEP |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | - |
Non implemented : | SMP |
Bugs : | - |
License : | GPL |
Vendor web page : | http://www.realtek.com.tw/ |
Andrea has added preliminary support for those cards in the new branch of the RTL8180L driver, called rtl8180-sa2400. He also created a driver for the USB dongle called rtl8187-dev. Those branches are using their own 802.11 code.
To gain robust 802.11 support, he decided to create a new versions of the driver based on the Intel ieee80211 stack from the Centrino driver (see section 3.28), those branches are called respectively rtl818x-newstack and rtl8187-newstack.
Mid 2005, Andrea stopped this work, leaving his work on the new
branches unfinished, and later started helping the mac80211 driver
(see section 4.17). Beginning
2007, a group of users led by Hauke restarted working on the
driver, with a new project page and new repository. Their main work so
far has been updating the driver to work with the latest kernel.
4.17 Realtek RTL8187L mac80211 driver
Driver status : | Experimental |
Driver name : | rtl8187.o |
Version : | - |
Where : | Linux kernel (2.6.23) |
Maintainers : | Michael Wu <flamingice@sourmilk.net>
Andrea Merello <andreamrl *at* tiscali.it> |
Discussion forums : | https://sourceforge.net/forum/?group_id=186406 |
Documentation : | - |
Configuration : | Wireless Extensions |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b, 802.11g, 802.11a depending on hardware |
Other features : | - |
Non implemented : | SMP |
Bugs : | - |
License : | GPL |
Vendor web page : | http://www.realtek.com.tw/ |
This driver was included in the Linux kernel 2.6.23. It will be the
first driver included in the kernel to use the new mac80211 kernel
stack, and as such it may be a bit rough for a while. Because it uses
the mac80211 stack, the driver offer a wide array of features,
such as monitor mode, WPA and virtual interfaces, and as mac80211
evolves this set of features should increases.
4.18 Marvel Libertas (802.11g)
Driver status : | Stable |
Driver name : | libertas.o |
Version : | - |
Where : | Linux kernel (2.6.22) |
Maintainers : | Dan Williams <dcbw@redhat.com> |
Mailing list : | http://lists.infradead.org/mailman/listinfo/libertas-dev |
Documentation : | Readme files |
Configuration : | Wireless Extensions and debugfs |
Statistics : | Wireless Extensions |
Modes : | Managed, Ad-Hoc, Mesh |
Security : | WEP, 802.1x, WPA |
Scanning : | Wireless Extensions |
Monitor : | Yes |
Multi-devices : | ? |
Interoperability : | 802.11b and 802.11g |
Other features : | Firmware loading via HotPlug, 802.11e (QoS) |
Non implemented : | - |
Bugs : | ? |
License : | GPL |
Vendor web page : | http://www.marvell.com/ |
The Libertas chipset was designed mostly for the embedded market and access point market. Embedded devices don't have much resources, and use all kind of weird software platforms, therefore Marvell decided to push as much functionality as possible in the chip, so that interfacing to the chip and writing driver would be simplified and use less resources. The Libertas chipset includes an ARM core and the whole 802.11 stack, including management and security, runs on that core. This is very similar to the architecture of early 802.11b chipsets (FullMAC).
The Libertas chipset has all the features of a modern 802.11g chipset, such as security (802.1x, WPA) and QoS (802.11e). Libertas also added proprietary extensions to increase bitrate and range.
One of the interesting thing of the architecture of this chipset is that some additional code can be run on the ARM core. For example, in the case of the Access Point version of this chipset, all the access point functionality is running on the ARM core and the chip doesn't need an external CPU. The One Laptop Per Child project contracted CozyBit to develop a proprietary mesh functionality running inside the Libertas chipset. The advantage of such an implementation is that packet in the mesh can be forwarded without having to wake up and go through the CPU.
The driver was written for OLPC by Red-Hat, lead by Dan (who
also wrote NetworkManager). The driver does not use any 802.11 stack,
because such functionality is implemented in the firmware, and it
offers all modern functionality such as Scanning and WPA support. The
Linux driver also supports the proprietary mesh functionality
when using the appropriate firmware. The driver has been developped
and tested in the OLPC source tree for a long time, and after various
changes required for kernel inclusion, it was eventually included in
kernel 2.6.22.
4.19 AirgoNetworks AGNX00 (TrueMIMO)
Driver status : | None yet |
Driver name : | - |
Version : | - |
Where : | http://airgo.wdwconsulting.net/mymoin |
Maintainers : | Jeff Williams <jeff AT SPAMFREE esawireless DOT com> |
Mailing list : | - |
Documentation : | - |
Configuration : | - |
Statistics : | - |
Modes : | - |
Security : | - |
Scanning : | - |
Monitor : | - |
Multi-devices : | - |
Interoperability : | - |
Other features : | - |
Non implemented : | - |
Bugs : | - |
License : | - |
Vendor web page : | http://www.airgonetworks.com/
http://www.cdmatech.com/products/wlan.jsp |
MIMO uses multiple antennas in the radio transmitter and in the receiver to exploit the physical diversity of the channel, especially indoor where you typically have multipath. The radio path between each pair or transmitting and receiving antenna is different, and therefore using clever techniques on both sides, it is possible for the receiver system to properly decode multiple simultaneous transmissions from the transmitter system. Using MIMO, it is possible to increase bandwidth by sending multiple data streams in parallel, the bandwidth increase depends on the number of antenna used. By using more robust encoding, it is also possible to increase range (at lower speed).
Shorty after the release of AirgoNetwork products, the IEEE 802.11 committee decided to create the new 802.11n standard, a 802.11 standard using MIMO technology. The new 802.11n standard was not planned to be compatible with TrueMIMO, and as of 2007 has not been yet finalised. Because there is not standard yet, any devices that is compliant with the evolving 802.11n draft is called pre-802.11n, and as the draft evolves future compatibility is unknown.
The strategy of AirgoNetworks was quite successful, and the vast majority of the early and non pre-802.11n devices were based on their chipset. However, the other major 802.11 vendor reacted quickly, first by releasing their own proprietary MIMO chipset, and then by releasing pre-802.11n products. The 802.11n standard is now gaining momentum, therefore the newer chipsets of AirgoNetworks are compliant with the 802.11n draft, with bitrate up to 315 Mb/s.
AirgoNetworks was acquired by Qualcom, most likely because of its patent portfolio on MIMO technology. Qualcom sells the former AirgoNetworks chipset under a new name but with the same TrueMIMO branding.
Jeff Williams started reverse engineering the binary Linux driver of AirgoNetworks, and documented the interface for the AGN100 and AGN300 chipsets. Jeff previously led the reverse engineering on the TI ACX driver (see section 4.1), and because of the problems with the ACX driver, he is using the methodology of the team who wrote the Broadcom Linux driver (see section 4.13) : he is not implementing any driver and only publishing the specification of the chipsets.
Currently there is no Linux driver available, but hopefully some people will use the work of Jeff to produce a Linux driver.
Linux Wireless LAN Howto -
jt@hpl.hp.com
Converted to html from Frame Maker - 16 september 97 Updated 25 July 07 Copyright © 1996-2007 Jean Tourrilhes |
Project hosted and sponsored by :
|