good02xaut的笔记 https://bbs.21ic.com/?183157 [收藏] [复制] [RSS]

日志

linux wireless LAN 802.11b

已有 2073 次阅读2007-8-9 23:08 |个人分类:netdriver|系统分类:嵌入式系统

The devices, the drivers - 802.11b





Jean Tourrilhes


25 July 07




The who's who of Wireless LANs under Linux.

This section list devices based on the IEEE 802.11b standard (see section 8), operating in the 2.4 GHz band up to 11 Mb/s.

3.1 Lucent Wavelan IEEE, Lucent Orinoco, Enterasys RoamAbout 802, Elsa AirLancer 11 and Melco/Buffalo 802.11b













































Driver status :
obsolete (see section 3.2)
Driver name :
wvlan_cs.o
Version :
v1.0.7
Where :
Pcmcia package (3.1.25)
Maintainers :
Anton Blanchard <anton@samba.org>
Andreas Neuhaus <andy@fasta.fh-dortmund.de>
Harald Roelle <harald@roelle.com>
Moustafa A. Youssef <moustafa@cs.umd.edu>
Web pages :
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan-IEEE.html
http://www.fasta.fh-dortmund.de/users/andy/wvlan/
http://www.roelle.com/wvlanPPC/index.html
http://www.cs.umd.edu/~moustafa/mwvlan/mwvlan.html
Mailing list :
http://lists.samba.org/pipermail/wireless/
Documentation :
man page, headers
Configuration :
Wireless Extensions & module parameters
Statistics :
Wireless Extensions
Modes :
Managed, Ad-Hoc and Ad-Hoc-demo
Security :
WEP (based on hardware support)
Scanning :
No
Monitor :
No
Multi-devices :
Yes
Interoperability :
802.11-DS and 802.11-b, interoperate with Windows
Other features :
MTU selection, multicast, promiscuous mode, power management, WEP hardware encryption, SMP, multi-firmware and PPC support.
Non implemented :
Some optimisations... Does not support HermesII.
Bugs :
May have some performance issues
License :
GPL
Vendor web page :
http://www.wavelan.com/
http://www.proxim.com/
http://www.enterasys.com/wireless/
http://www.elsa.com/
http://www.hp.com/notebooks/us/eng/products/wireless/
http://www.buffalotech.com/
http://www.1stwave.de/
http://www.artem.de/

3.1.1 The device

Even if it uses the same name, the Wavelan IEEE product is completely different from the old Wavelan (see section 2.1), and totally incompatible in term of protocol and hardware interface. It is still built by Lucent, and it still operate in the 2.4 GHz ISM band (Direct Sequence), but the new hardware fully support the IEEE 802.11 protocol (and 802.11-b for the more recent versions) and is no longer based on a Ethernet MAC chip. There is only a Pcmcia version (the ISA version uses a ISA to Pcmcia bridge) and the different access points. Recently, Lucent has added a USB adapter and mini PCI version of the card for laptop (this one is based on a PCI-Pcmcia bridge).

To confuse the issue, Lucent has renamed the Wavelan IEEE as Orinoco (Wavelan was better IMHO), and this division was part of Lucent spin-off into a new company called Agere. Avaya (another Lucent spin-off) is also selling the Orinoco. Enterasys is also selling the Wavelan IEEE as RoamAbout 802 (a company formerly known as Cabletron, which was the former DEC networking division). Elsa is selling it in Europe as AirLancer 11 (on the other hand, the 2 Mb/s version is quite different). In Japan (and maybe also in Europe), Melco is selling it as Buffalo WLI-PCM-L11. Lately, more vendors have been joining the club, such as HP (HP 802.11b Wireless LAN), IBM (IBM High Rate Wireless LAN), Dell (Dell TrueMobile 1150 - on the other hand, the 1100 is an Aironet card), Compaq (Compaq WL 110, WL 210 and WL 215 - the WL100 and WL200 are PrismII based), 1stWave (1stWave PC-Card) and ARtem (ARtem ComCard). The Apple Airport is also derived from the Wavelan IEEE (see section 3.5).

The Wavelan IEEE saga never ends. Proxim bought the card and access point business of Agere (Agere kept the chipset and radio part), so now the same Orinoco cards are sold by Proxim under the name Orinoco Classic or Orinoco World (841X - with the big square antenna and using the same Agere Hermes chipset). In a bold marketing move, Proxim renamed all it's other lines of wireless cards as Orinoco, however those cards are not based on the Agere chipset but on Atheros chipset (846X, 847X and 848X). The Orinoco 11b (842X - 802.11b only with a short antenna) are based on the Agere HermesII chipset, which is different from the old chipset (and therefore not compatible with the usual Orinoco drivers). So, if the Proxim Orinoco card doesn't have a big square antenna and do support 802.11a or 802.11g, you can be sure it's not a true Orinoco.

The Wavelan IEEE appears to the PC as a standard network card and interfaces naturally with the networking stack. The configuration includes only setting the network name (ESSID), the rest is automatic (finding the equivalent BSSID and channel). As usual for Lucent, the documentation and website are rich.

The Lucent Wavelan IEEE is based on the Lucent Hermes chipset. As with all IEEE 802.11 products, the Hermes offer a fully featured MAC protocol, including MAC level acknowledgement (good news for all of us having dealt with the old Wavelan card), optional RTS/CTS, fragmentation, automatic rate selection, roaming. This seems exhaustive, but is mandatory for IEEE 802.11 compliance. Different version of the card include different level of security (bronze is basic, silver is with WEP (RC4-40 bits) and gold is with proprietary 128 bit encryption.

The MAC support both Managed and Ad-Hoc modes. However, the initial firmware for those cards did support only a non-compliant Ad-Hoc mode (called Ad-Hoc demo mode - which interoperate with most PrismII cards). In order to gain WiFi compliance, Lucent added in recent firmware (6.06 and greater) a second Ad-Hoc mode which is fully 802.11 compliant (called Peer to Peer mode or IBSS Ad-Hoc mode - and which interoperate with Aironet cards). Of course, the two Ad-Hoc modes are not interoperable.

The 2.4 GHz modem is an enhanced version of the previous generation, Direct Sequence Spread Spectrum (11 chips encoding), using both 1 and 2 Mb/s signalling rate (using effectively 22 MHz of bandwidth) and 5.5 and 11 Mb/s in second generation cards, diversity antennas and with 13 different frequencies (depending on the regulations).

Initially, the Wavelan was only offering 1 and 2 Mb/s bit rates (basic IEEE 802.11 DS standard). For a while, Lucent was also selling a "turbo" version of the card, which was adding 5 and 10 Mb/s bit-rates for shorter range using Lucent proprietary modulations (so, not compatible with 802.11-b).

Later, Lucent introduced the second generation of the Wavelan IEEE, still based on the same Hermes chipset, which is much cheaper and fully compliant with the new 802.11-b standard, supporting 1, 2, 5.5 and 11 Mb/s bit-rate (compatible with other 11 Mb/s products).

All Wavelan IEEE cards do not offer the exact same set of features, because Lucent keep changing the firmware. From firmware 1.00 to 4.52, Lucent was mostly adding features (encryption, power saving) and keeping it backward compatible, but firmware 6.04 and later created a major incompatibility. Firmware 6.06 and later implement a fully 802.11 compliant IBSS Ad-Hoc mode (on top of the Ad-Hoc demo mode). Firmware 6.04 dropped Fragmentation Threshold setting in favor of microwave oven robustness (an automatic fragmentation scheme). Firmware 6.16 did fix a few bugs with the IBSS Ad-Hoc mode (security, ESSID="any").

Agere has recently released a new HermesII chipset, derived from the venerable Hermes chipset. The most notable improvements are a higher integration (smaller & cheaper), a PCI interface with DMA support and a USB interface. The chip interface and firmware is not compatible with the old Hermes chipset, requiring specific driver support for HermesII. To my knowledge, this chipset is only used in the Proxim 842X cards.

3.1.2 The driver

Andreas Neuhaus is no longer working to improve this driver, therefore it's now discontinued in favor of the new Orinoco driver (see section 3). The driver is based on Lucent source code, which is a cut down version of their full driver. So, it lacks all the part about handling natively 802.11 frames and Lucent proprietary API, and initially it lacked some of the more fancy features of Lucent's driver, but Andreas is adding them slowly. Of course, the driver support all version of the card (bronze, silver, gold - basic, turbo, turbo 11 Mb/s) and is fully interoperable with Access Points and Windows nodes.

Andreas has done a very good job into providing features like Wireless Extensions (I must admit that I did help him quite a bit ;-) and many configuration parameters (station name, channel, mtu size). The new version adds Power management and encryption setting, change of the operating mode via Wireless Extensions, promiscuous and multicast support...

Andreas has done a lot of debugging of the driver and it seems now much more stable. Lastly, the ISA to Pcmcia and PCI to Pcmcia bridges may be a source troubles under Linux. The latest version of the driver fixes SMP support, multi-cards configuration, improve wireless.opts support, add IBSS Ad-Hoc mode support and support properly and sanely the various firmware releases.

Harald Roelle has developped a patch for this driver in order to fully support the PPC architecture. This patch mostly contain some bit order fixes. This patch should help other architecture with endianess issues. His patch was eventually integrated (with major changes) by David Hinds in version 1.0.6 of the driver. I added firmware detection support in 1.0.6 to properly handle all the various firmware releases and their variations (in particular the two Ad-Hoc modes), and fixed the remaining SMP bugs.

The driver does not support the USB and Mini-PCI version of the Wavelan.

Nowadays, Anton Blanchard is the official maintainer of the driver, with the help of David Gibson. David has done a complete rewrite of the driver (see section 3.2), so this driver won't be maintained anymore...

Moustafa has released a version of this driver with scanning support.

Note that Lucent has also released a binary library driver (see section 3.3) which is maybe more solid and performant than the driver of Andreas but lack complete support for Wireless Extensions.

3.2 Wavelan IEEE/Orinoco, PrismII and Symbol cards













































Driver status :
stable
Driver name :
Pcmcia : orinoco_cs.o
PLX : orinoco_plx.o
PCI : orinoco_pci.o
Version :
v0.15, CVS
Where :
Linux kernel (2.4.21 ; 2.6.18)
Pcmcia package (3.1.34)
http://www.ozlabs.org/people/dgibson/dldwd
http://savannah.nongnu.org/projects/orinoco/
Maintainers :
David Gibson <hermes@gibson.dropbear.id.au>
Pavel Roskin <proski@gnu.org>
Web page :
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html
Mailing list :
http://sourceforge.net/mail/?group_id=44338
Documentation :
man page, headers
Configuration :
Wireless Extensions only
Statistics :
Wireless Extensions
Modes :
Managed, Ad-Hoc and Ad-Hoc-demo
Security :
WEP (based on hardware support), 802.1x
Scanning :
Wireless Extensions (v0.14 and later)
Monitor :
Yes (v0.14 and later)
Multi-devices :
Yes
Interoperability :
802.11-DS and 802.11-b, interoperate with Windows
Other features :
MTU selection, multicast, promiscuous mode, power management, SMP, multi-firmware, multi vendors, PPC & ARM support, PLX and PCI support.
Non implemented :
Does not support HermesII.
Bugs :
WEP not functional on old Prism2 firmwares, some older driver versions don't handle properly some Symbol cards.
License :
MPL and GPL
Vendor web pages :
[Too many to list here]

3.2.1 The device

As explained in various sections, Lucent Wavelan-IEEE/Orinoco devices (see section 3.1), Intersil PrismII devices (see section 3.6) and Symbol High Rate devices (see section 3.10) are basically using the same MAC controller. This driver attempt to support all those devices, which are described in details in their own sections.

However, even though those devices use the same MAC controller and the same driver, those devices are not the same. Each vendor has its own firmware, so the set of features of those cards vary. Some differences are visible to the user (for example 128 bits key support), some are more related to performance and robustness tuning of the MAC.

Moreover, those devices don't use the same radio modem (mostly Lucent or Intersil) and same antennas. For PrismII cards, even the actual layout of the radio components on the card can make a huge difference. This will mostly translate into difference of coverage between the various cards (range and resistance to interference). The range between some cards may vary by a factor 2 in some conditions.

3.2.2 The driver

Anton Blanchard and David Gibson became official maintainers of the wvlan_cs driver (see section 3.1) in the end of 2000. David was not very happy about the state of wvlan_cs.

The HCF (the low level library provided by Lucent) hadn't been maintained since the initial release of the driver and was quite difficult to read and understand. While the higher layer of the driver had gone a long way and were robust and fully featured, the HCF was a mess and the cause of many problems (TxTimeout, driver corruption/crashes and else).

Rather than put up with that, David looked deeply in the low level of the wlan-ng driver from Mark (see section 3.6) and the FreeBSD driver and wrote a totally new driver combining a new low level core and the high level features of wvlan_cs. The end result was a driver much more readable, robust and well behaved than wvlan_cs. In the process, David added support for PrismII cards. Then, I fixed a few Wireless Extensions bugs, added some support for Symbol cards, and we pushed the driver in the kernel. The driver was initially named dldwd_cs and was renamed orinoco_cs at this point. Later on, David Hinds backported this driver to the Pcmcia package for users of earlier kernels.

The main goal of the driver is to support Wavelan IEEE/Orinoco cards and OEM. The driver support all the firmwares and features of those cards properly and fully (Ad-Hoc demo mode, IBSS mode, bit-rate, encryption keys...), and support all the features available in wvlan_cs (except module parameters) with less bugs.

Ben has added Airport support to this driver (see section 3.5), and the support of those cards is similar to Orinoco cards (i.e. most features supported properly).

Starting in release v0.6d, the support of Symbol cards and OEM is complete, at least for firmware 1.5 and 1.7. Bit rate, mode of operation (managed, ad-hoc IBSS and ad-hoc demo), encryption and power management are fully working. The release v0.8 added full support for later Symbol firmware 2.00 and 2.20. On firmware 2.20 and later, Power Management is disabled. Version of the driver from v0.10 to v0.12b don't work properly with Symbol cards due to a bug, so avoid those releases. Symbol CF cards are very different and supported in their own driver (see section 3.13).

The support of PrismII cards and clones is in progress. More debugging and testing need to be done, but the driver can set most features to some degree (Ad-Hoc demo mode, IBSS mode, bit-rate, encryption keys have been seen to work). It seems the upgrading firmware fixes problems related to encryption. However, the wlan-ng and HostAP drivers still have more features and are more tested...

Starting in release v0.8, the orinoco driver collection also support PLX adapters that are sold with some PrismII cards (via the orinoco_plx driver). Those adapters are not real Pcmcia adapters and the card looks to the system like a PCI card. The driver also support Pcmcia cards in regular ISA to Pcmcia or PCI to Pcmcia adapters, as long the Pcmcia adapter is recognised and configured properly by the Pcmcia package (which might be tricky).

Starting in release v0.11a, the orinoco driver collection also support PCI cards (all of them being PrismII cards - via the orinoco_pci driver). The standard driver does not support the various USB versions of the cards. There is various kind of MiniPCI implementation of the card, the driver support some of them (Pcmcia based - Lucent ; PCI based - PrismII) but not most (USB based - PrismII).

The latest version (v0.13b) seems to have fix most of the hardware reset problems of previous versions and seems to have fixed problems with Symbol firmwares. Pavel has integrated in v0.14 many previously external patches, such as as support for Wireless Scanning and Wireless Events, support for Monitor mode and support for 802.1x. Pavel also fixed support for kernel 2.6.X, dramatically improved Symbol firmware support and fixed a tons of bugs in v0.14.

Version 0.15-rc2 of the driver was merged into kernel 2.6.12. This brought all the features and bugfix above in the kernel. Since then, Pavel is continuing to fix and update the driver, pushing those changes into recent kernels, but he is no longer using version number (so I guess we are still at 0.15).

3.3 Lucent Wavelan, Enterasys Roamabout and Proxim Orinoco 8420











































Driver status :
stable, beta
Driver name :
wavelan2_cs.o, roamabout_cs.o and wlags49_cs.o
Version :
v6.16, v7.18 and v7.22
Where :
http://greenblaze.com/proxim.html
http://www.agere.com/mobility/wireless_lan_drivers.html
http://www.agere.com/support/drivers/index.html
http://www.cs.umd.edu/~moustafa/mwavelan/mwavelan.html
Contact :
Lucent support <usasupport@wavelan.com>
Maintainers :
Richard van Leeuwen <rleeuwen@lucent.com>
Dean W. Gehnert <deang@tpi.com>
Moustafa A. Youssef <moustafa@cs.umd.edu>
Documentation :
Extensive readme
Configuration :
Module parameters, Wireless Extensions
Statistics :
Wireless Extensions
Modes :
Managed, Ad-Hoc and Ad-Hoc-demo
Security :
WEP (based on hardware support), WPA
Scanning :
Wireless Extensions
Monitor :
No
Multi-devices :
yes, but the ISA to Pcmcia bridge must be reconfigured
Interoperability :
802.11-DS and 802.11-b, interoperate with Windows
Other features :
Power management and microwave oven robustness. Support HermesII cards (v7.08). WPA support.
Non implemented :
Do not support all firmware releases
Bugs :
?
License :
Binary only for the core + OpenSource Linux wrapper (up to v6.16), GPL (v7.08)
Vendor web page :
http://www.wavelan.com/
http://www.enterasys.com/wireless/

3.3.1 The device

This is the same device as the previous entry (section 3.1).

3.3.2 The driver

Lucent has decided to not put all its eggs in the same basket and developed a bold strategy for the support of the Wavelan IEEE under Linux. Not only they have released some source code to allow the source driver mentioned above, but they have as well contracted Dean to release a driver based on a binary library. This gives Linux users the choice, a GPL full source driver to hack with and a stable full featured binary driver (the official term from Lucent is ``Linux Driver Source/Library'').

Dean has written the code interfacing between Linux and the library, and has put together a nice package easy to install and with documentation. As expected, the binary driver is probably more stable and than the full source driver mentioned above, with a slightly different set of feature, and offers all the features of Lucent Window drivers, plus a nice integration with Linux. This driver supports both the basic version of the card and the "turbo". The major drawback is the binary core, preventing the use on other architectures (PPC, Arm...).

Now, the driver is supported by Lucent, and they keep adding in it the same features they add to the Windows drivers (such as microwave oven robustness). Their also have added support for the IBSS Ad-Hoc mode (see discussion above). The latest version adds support for 2.4 kernel and many common Wireless Extensions. Note that Enterasys/Cabletron is also distributing a slightly modified version of this driver (usually an older one).

Moustafa has released a version of this driver with scanning support.

Recently, Agere has released a new version of this driver which is fully Open Source. This new version has support for the HermesII chipset found in the Proxim Orinoco 842X cards (but it seems it no longer support the old Orinoco cards - use the older driver version). It has also improved Wireless Extension support. Agere is still working hard on the driver and has recently added support for Wireless Scanning and WPA.

3.4 Orinoco USB cards and HP/Compaq multiport











































Driver status :
beta
Driver name :
orinoco_usb.o
Version :
0.1.4
Where :
http://www.nongnu.org/orinoco/
http://savannah.nongnu.org/projects/orinoco/
Maintainer :
Manuel Estrada Sainz <ranty@debian.org>
Ramon Rey Vicente <ramon.rey at hispalinux.es>
Mailing list :
http://sourceforge.net/mail/?group_id=44338
Documentation :
headers
Configuration :
Wireless Extensions only
Statistics :
Wireless Extensions
Modes :
Managed, Ad-Hoc and Ad-Hoc-demo
Security :
WEP (based on hardware support)
Scanning :
Wireless Extensions, with optional patch
Monitor :
With optional patch
Multi-devices :
Yes
Interoperability :
802.11-DS and 802.11-b, interoperate with Windows
Other features :
MTU selection, multicast, promiscuous mode, power management, multi-firmware.
Non implemented :
-
Bugs :
-
License :
MPL and GPL
Vendor web pages :
http://www.wavelan.com/
http://www.proxim.com/
http://www.hp.com/

3.4.1 The device

The Orinoco-USB is of course related to other Wavelan-IEEE/Orinoco devices (see section 3.1). As most first generation USB designs, it is really a standard Orinoco Pcmcia card plugged into a Cypress EZ-USB USB-Pcmcia bridge. Such a setup of course brings some performance degradation due to USB high latency. The Orinoco card inside the device has the same exact features as other Orinoco Pcmcia cards and is 802.11b compliant.

Lucent, Agere and Proxim are directly selling this Orinoco device. HP/Compaq sells it as WL215 (standalone) and W200 (multiport option for Compaq laptops). Other vendors such as Melco are also selling this hardware. One of the particularity of this hardware is that the USB-Pcmcia bridge doesn't contain a firmware, so the driver need to upload the firmware at power up. On the other hand, the Pcmcia card behind the USB-Pcmcia bridge already contains its own firmware.

Note that most USB 802.11b cards are based on either the Intersil PrismII chipset (see section 3.6) or the Atmel chipset (see section 3.20), and are quite different from this hardware.

3.4.2 The driver

Manuel has managed to reverse engineer the Orinoco USB hardware and is providing a modified version of the Orinoco driver for Orinoco USB adapters. This driver only support Orinoco USB hardware, and not other USB cards. Because it is based on the Orinoco driver (see section 3.2), this driver offer the same extended feature set, such as Wireless Extension support.

The big difference with the standard Orinoco driver is firmware uploading. You will need to extract the firmware for the USB-Pcmcia bridge from the Windows driver using the tools provided on the driver web page. The firmware uploading support in Linux needed for this driver is currently being finalised, so check the latest driver documentation. On the other hand, the driver offer no support for updating the firmware in the Pcmcia card.

This driver was merged into the CVS of the Orinoco driver (see section 3.2). However, because the Orinoco maintainers are not happy with the locking strategy of this driver, this driver was never included in any release of the Orinoco driver and is not included in the kernel. The latest version of the driver may be found in the Orinoco CVS (see section 3.2).


next












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 :
HP home page





路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)