GPL driver for the Wavelan IEEE/Orinoco
Introduction
The Linux Wavelan IEEE driver is an Open Source project that
had many contributors through its turbulent life. I did
contribute to it since 1999 thanks to Hewlett Packard sponsoring my
work. My main contribution was the Wireless Extensions support (of
course), multi-firmware support and a few bug fixes.
The Wavelan IEEE is the current generation of Wireless LAN hardware
offered by Lucent (and others). A more detailed description is
available in the
Wireless Howto. This page describe the state of the old Linux GPL
driver for this hardware. This driver is now discontinued.
I've put up a page for the new Linux MPL/GPL
driver, called orinoco_cs.
For the good old Wavelan, which was not IEEE compliant (a few
generations back), go here. For other
wireless LANs, please read the Linux Wireless
Howto.
Wavelan IEEE drivers : One hardware, 3 drivers...
It's all explained here.
Patches for wvlan_cs
Here are a few more patches for the driver :
- LinkSys AP decapsulation
patch : Workaround for the latest wvlan_cs to properly
decapsulate frame sent by LinkSys Access Points. Henry Goffin did
backport my orinoco_cs fix (itself based on the patch from Dong Liu).
Issues and release notes for wvlan_cs
Too many for my taste ;-(
- Maintainance : David is maintaining the
orinoco_cs driver. wvlan_cs is no longer
maintained. Please think about upgrading...
- Firmware revisions : The latest driver should work
across all firmware revisions, it has been tested with 1.16, 4.08,
4.52, 6.04, 6.06 and 6.16. However, some feature might not work well
in all firmwares (promiscuous in 6.X) or are even not available at all
(fragmentation for 6.X, Microwave Oven for 4.X). Ad-Hoc mode is also
different in firmware 4.X and 6.X (see below).
- Firmware update : available on Lucent web site, not available for
Linux. Note that most firmware updater require a specific version of
the Windows driver to work.
- Driver versions : Most up to date is in Pcmcia package
3.1.25 (version 1.0.7).
- Kernel 2.4.X : Works fine. Disable all Pcmcia support
from the kernel, recompile the kernel, recompile the Pcmcia package,
and then configure normally.
- PCI adapter : may be the cause of configuration
troubles, and does not work on most older PCs. Not really wvlan_cs
related.
- Multi-setup (profiles) : use the Pcmcia scheme
mechanism (see Pcmcia
Howto) with network.opts and wireless.opts. Better than in Windows, because
both IP config and Wavelan config are changed synchronously.
- Multi-card : The driver supports it (2 cards in a box)
and it has been tested successfully. Radio link quality will be
impacted.
- SMP : The driver is fully SMP safe and has been
successfully tested on a SMP box, including Wireless Extensions.
- Configuration : The prefered way to configure the
wvlan_cs driver is through the wireless.opts
pcmcia config file (in /etc/pcmcia), which uses iwconfig. Modules parameters (in
config.opts) are provided only for backward
compatibility. Settings in wireless.opts
always override module parameters, so if you want to use a specific
module parameters, don't specify the equivalent option in wireless.opts.
- Ad-hoc modes : firmware 4.X only supports Lucent
proprietary Ad-hoc demo mode, whereas firmware 6.X adds supports for
802.11 compliant IBSS Ad-Hoc mode. Those two Ad-Hoc mode are totally
incompatible and do not interoperate between each other. It works like
this in the latest driver :
- MODE="Ad-Hoc" (in wireless.opts) : set the proper Ad-Hoc mode
depending on firmware revision : up to 6.04, use old Ad-Hoc,
after 6.06, use IBSS Ad-Hoc (same as Windows driver).
- iwconfig ethX mode Ad-Hoc : same as above.
- port_mode=3 (in config.opts) : Set old Ad-Hoc
demo mode.
- allow_ibss=1 (in config.opts) : Set 802.11
compliant IBSS Ad-Hoc mode if available.
- Debugging Ad-Hoc mode : the field "Access Point" or
"Cell" shown by iwconfig is usefull to know
what's happening. If it's all zeros, you are using Ad-Hoc demo
mode. In IBSS Ad-Hoc mode it indicates the cell the node has
joined. It should be the MAC address of the first node started and all
node should have the same value (apart if they are out of range).
- Encryption keys : Encryption setting is fully
functional and available in wireless.opts. Note that the driver doesn't
complain if you set a 128 bits key on a 40 bits only card (Silver),
which won't work...
- Fragmentation setting : firmware 6.X and later removed
direct fragmentation threshold setting in favor of microwave oven
robustness (automatic fragmentation). For those firmware, the
fragmentation setting in the driver enable or disable MWO robustness.
- Signal strength in ad-hoc mode : set a MAC address in
the spy list using iwspy, first address in the list will appear
in /proc/net/wireless as well as with iwspy.
- Promiscuous mode : does work with firmware 4.X and
open network (no encryption). Doesn't seem to work with encryption
enabled. May lock-up the card with firmware 6.X. More investigation
needed.
- Driver switching : If you want to switch between the 2
Wavelan-IEEE drivers, everything is controlled in
/etc/pcmcia. wvlan_cs is bound in config,
wavelan2_cs is bound in wavelan2_cs.conf. Comment those
files as needed.
- Ethernet Bridging : doesn't work due to 802.11
protocol restriction. You may want to try IP bridging (with ARP proxy)
or routing.
- Tx Timeout : various things can produce Tx
Timeout. It depend on when the happen and how frequent they are :
- As soon as the card is inserted : interrupts are not
delivered to the driver (not a driver problem, more a Pcmcia
problem). If you have a PCI adapter, try to play with "PCIC_OPTS"
setting. Also try to exclude the irq currently used in
config.opts..
- Under load, many of them : a potential driver
problem. Cause unknown, various conflicting report. Some people have
claimed that upgrading the firware to 6.16 solve this problem.
- Under heavy load or interferences, few of them : this
is normal. You may want to tune to watchdog timer in the driver to get
optimal performance.
Wireless LANs and
Wireless Tools -
jt@hpl.hp.com
Updated 3 April 01
Copyright © 1996-2004 Jean Tourrilhes
|
|
Project hosted and sponsored by :
|