[TriLUG] 802.11 PCMCIA Card Recommendations
Greg Brown
gregbrown at mindspring.com
Mon Nov 25 22:18:11 EST 2002
Take a look at the Agere Orinoco stuff before you purchase any of the
other cards. The Agere/Lucent chipset can't be beat and the cards seem
to work with just about anything you plug them it to. I use Agere
hardware in every wireless design I create (unless it's for the DoD,
then I have to use the NSA approved gear, natch).
Agere cards are a little more $$ than the rest, but they are fantastic.
And the Gold card (128 bit WEP) is now the same price as the Silver
(40 bit WEP) was just a few months ago.
Greg
(official Agere info follows)
===========================================================
Agere Systems Winter 2002
Linux Driver Source/Library for ORiNOCO PC Card
Variant 1, Version: 6.16
===========================================================
This text file includes update information, installation
instructions, limitations to the current version of the
product, and suggestions to solve known issues or problems.
TABLE OF CONTENTS.
1. SOFTWARE DESCRIPTION
2. SYSTEM REQUIREMENTS
3. NEW IN THIS RELEASE
4. INSTALLATION NOTES
5. TECHNICAL CONSTRAINTS
6. KNOWN ISSUES
7. TECHNICAL SUPPORT
-----------------------------------------------------------
1. SOFTWARE DESCRIPTION
1.1 Description
This software supports the following network interface
cards:
* ORiNOCO PC Card (Silver and Gold)
* WaveLAN/IEEE Turbo 11 Mb Card
* WaveLAN/IEEE Turbo Card (8 Mb)
* WaveLAN/IEEE PC Card (2 Mb)
This software is officially released and supported
software of Agere Systems Inc.
1.2 Software Components
This software for the ORiNOCO PC Card is distributed in
a compressed archive:
* wavelan2_cs-6.16.tar.gz
To fit the 8.3 name format of the CD-ROM, the archive
wavelan2_cs-6.16.tar.gz is renamed to:
* wlli616.tgz
This archive contains driver source files and a
library. You can use these files to build and install a
ORiNOCO PC Card driver for your specific Linux kernel.
The current set of driver source files supports Linux
kernel versions 2.0.x, 2.2.x and 2.4.x for the Intel
architecture, as included (for example) with the
following Linux Distributions:
* Red Hat version 5.2, 6.0, 6.1, 6.2, 7.0, 7.1
* Suse version 6.1, 6.3, 6.4, 7.0, 7.1
The included HCF library implements an interface to the
Agere Systems 802.11 MAC Controller, used in the
ORiNOCO environment.
1.3 Software Versions
The following software is included with this
distribution:
General information:
* README.wavelan2_cs This file
* LICENSE.wavelan2_cs License
* wavelan2_cs.mk Top level Makefile
* Build Script to build driver
* Install Script to install driver
Driver source and HCF library:
* wireless/wavelan2_cs.mk Driver Makefile
* wireless/wavelan2_cs.c Driver source (v6.16)
* include/hcf/debug.h Driver debug support
* include/hcf/libhcf.h HCF interface definition
* lib/libhcf-i386.a HCF library (v4.6b)
Driver online manual page:
* man/wavelan2_cs.4 Driver manual page
PCMCIA configuration update:
* etc/wavelan2_cs.conf Add-on config file
* etc/wavelan2_cs.mk config update Makefile
* etc/wavelan2_cs.patch config update patch file
-----------------------------------------------------------
2. SYSTEM REQUIREMENTS
2.1 Operating System
This software can be compiled and installed on Intel
architecture systems running Linux kernel versions 2.0.x,
2.2.x or 2.4.x.
2.2 Free Disk Space
To compile the software you will need to have the full
set of Linux kernel source files installed. Depending
on the exact version of the kernel, you will need
approximately 150 MB of free disk space.
Once compiled, the driver will use approximately 40 KB.
-----------------------------------------------------------
3. NEW IN THIS RELEASE
Version 6.16 - Nov 23, 2001
* Cleaned up enable/disable behavior to prevent
multiple associations. Initial card enable is now
done when device is opened.
* Improved suspend and card removal behavior to solve
occasional transmit timeout.
* Added wireless extension to get current BSSID
* Enhanced wireless extension to get/set frequency
* Agere-ized
Version 6.10 - May 17, 2001
* Solved hot unplug problem on 2.4 systems.
* Changes to support older kernels.
* Report version number of driver & firmware at startup.
* Changed wireless/wavelan2_cs.mk to fix different
behavior of -MD option of newer (2.96) gcc.
* pcmcia-cs package now on CD-ROM in Xtras/Linux/PCMCIA
* Fixed "Card Services release does not match!" problem.
And added Build and Install scripts.
Thanks to David Hinds.
* Cleaned up some comments
Version 6.07 (Beta) - January 15, 2001
* Added more support for wireless extensions
Thanks to Dave Kristol.
* Support for Linux kernel 2.4.x
Thanks to Eric & Peter Whiting.
* Moved driver from clients to wireless directory
Version 6.06 - October 30, 2000
* Updated README.wavelan2_cs and man page
* Renamed ap_density to distance_between_aps for
consistency with other products
* Renamed WaveLAN/IEEE to ORiNOCO at several places
Version 6.05 (Beta) - August 14, 2000
* Added support for IBSS mode.
Version 6.03 (Beta) - August 8, 2000
* Added support for ORiNOCO MiniPCI Card in HCF Library.
* Corrected writing of WEP keys. Keys were taken from
module parameters instead of instance structure.
* Corrected spinlock_t redefinition fix for 2.0.x
kernels in combination with PCMCIA package 3.1.13 and
higher. Thanks to Dave Johnson.
* Added device close code to adapter_release().
Thanks to Donald Becker.
Version 6.02 - June 13, 2000
* Renamed from version 6.01 (Beta)
Usage of the PCI adapter has positive results on
several PCI PCs.
Version 6.01 (Beta) - April 19, 2000
* Changed interrupt enable/disable code to support PCI
Interrupts, thanks to David Hinds and feedback from
the Linux community.
* Solved redefinition of spinlock_.. and capable on
2.0.x kernel in combination with PCMCIA package
3.1.13 and higher.
Version 6.00 - March 2, 2000
* Corrected setting of mac_address parameter on
pre-2.1.0 kernels
* Corrected number of IO Ports (=0x40)
* Corrected dbm() function
* Added support for Microwave Oven Robustness
* Added iwspy support, thanks to Dan Forsberg and
Jim Binkley
* Added support for 3.3/5 Volt cards
* Added etc/wavelan2_cs.conf
Version 4.00 - July 2, 1999
* Added support for WEP encryption
* Corrected string transfer of private ioctls used by
the Wireless extensions.
* Support for signal levels in dBm; reported by the
Wireless extensions.
* Support for CFG_DRV_IDENTITY moved from HCF to MSF.
* Validate module parameters by default. This was only
enabled in debug mode in the previous versions.
* Fixed Card Power Management bug.
Version 3.10 did not enable PM on standard (2 Mbit/s)
cards with STA firmware 2.00, when configured to
enable PM.
* Corrected module parameter type of irq_mask
(h = short) and irq_list (1-4b = 1-4 bytes).
Version 3.10 - April 28, 1999
* Changes to allow for the module parameter differences
between Linux 2.0 and Linux 2.1.
Linux 2.0 only allowed for 32-bit integer parameters,
the 2.1 or later kernels allow for 8, 16 and 32 bit
parameters.
* Added BSD clause to the GPL license.
* Added support for Linux Wireless extensions.
* Fixed the setting of the network_name and
station_name when the name was empty or set to ANY
for network_name.
* The user can now enable Card Power Management:
PLEASE NOTE: This function should not be enabled
until software that supports Card Power
Management will be installed on both:
- PC Card (Use Station Functions
firmware v2.00 or higher) and
- WavePOINT-II Access Point
(use AP software v2.03 or
higher) ,
In case you enable Card Power Management
without having updated the firmware to
version levels listed above, the driver
will not effectuate Card Power Management.
* Added support for transmit timeout handling.
* Re-added channel parameter.
* Renamed parameter receive_all_multicast to
receive_all_multicasts
* Changed the values of the parameters
card_power_management and receive_all_multicasts
to 'Y' for Enable and 'N' for Disable.
Version 1.27 (Beta-2) - March 2, 1999
First Source/Library distribution.
* Changed module parameters names to better conform
to the PCMCIA and 802.11 naming conventions.
Version 1.20 (Beta-1) - February 9, 1999
Binary only version for Slackware 3.6 (linux 2.0.35)
and RedHat 5.2 (linux 2.0.36).
-----------------------------------------------------------
4. INSTALLATION NOTES
The driver files for the Linux driver are not "ready"
for direct installation onto any Linux computer.
To build and install the driver you will need some
expertise on the Linux operating system in general and
the type and version installed of the kernel installed
on your computer.
With this knowledge you can use the driver source files
provided to build your own Linux driver for your
specific computer and kernel.
4.1 Before you start
1) Determine the type and version of the Linux kernel
of your computer and check whether it meets the
system requirements listed in section 2 of this
README.
2) Read the Linux PCMCIA-HOWTO by David Hinds. This
document is probably provided on a CD-ROM of your
Linux distribution. You can download the latest
version from: http://pcmcia-cs.sourceforge.net
Please read the section titled "Prerequisites and
kernel setup" of the PCMCIA-HOWTO.
4.2 Build the ORiNOCO Driver
1) Obtain a copy of the Linux PCMCIA package from a
CD-ROM of your Linux distribution or download the
latest version from: http://pcmcia-cs.sourceforge.net
For your convenience, the latest ORiNOCO CD-ROM
contains a copy of the PCMCIA package in sub-
directory: Xtras/Linux/PCMCIA
2) To unpack the Linux PCMCIA package, copy it to the
current working directory and type:
% tar xzvf pcmcia-cs-3.1.29.tar.gz
Note: If you use the archive supplied on the CDROM,
use archive name "pc3_1_29.tgz" instead of
"pcmcia-cs-3.1.29.tar.gz".
3) Extract the ORiNOCO distribution archive on top of
the Linux PCMCIA package.
% cd pcmcia-cs-3.1.29
% tar xzvf ../wavelan2_cs-6.16.tar.gz
Note: If you use the archive supplied on the CDROM,
use archive name "../wlli616.tgz" instead of
"../wavelan2_cs-6.16.tar.gz".
4) To build and install the driver, follow the
procedure below:
% make config
Answer the presented questions. Usually the default
answers are OK and pressing "Enter" is enough.
On RedHat 7.1 systems however, you should specify
"/usr/src/linux-2.4" as the Linux source directory
instead of the default "/usr/src/linux".
For more detailed information on configuration,
building and installing, see the PCMCIA-HOWTO.
Now run the Build script:
% ./Build
This script determines whether your system uses
in-kernel PCMCIA and either builds the full PCMCIA
package or just the driver.
Before installing the driver with the Install script,
you must become 'root':
% su
..
# ./Install
This script determines whether your system uses
in-kernel PCMCIA and either installs the full PCMCIA
package or just the driver.
4.3 Configure your ORiNOCO PC Card
Before configuring the driver through module parameters
(in /etc/pcmcia/config.opts), make sure that
/etc/pcmcia/wireless.opts file is either absent or
contains blank parameter values as shown below.
*,*,*,00:60:1D:*|*,*,*,00:02:2D:*)
INFO=""
ESSID=""
MODE=""
KEY=""
;;
If you want to configure the driver through the wireless
extension (in /etc/pcmcia/wireless.opts), please refer
to section 4.5.
1) To configure the ORiNOCO PC Card, please refer to:
* The online manual page (wavelan2_cs.4)
% man wavelan2_cs
* The network adapter sections of the PCMCIA
documentation.
% more PCMCIA-HOWTO
2) Use an editor to configure the module parameters:
# vi /etc/pcmcia/config.opts
For example:
a) To connect your computer to a wireless
infrastructure that includes access points such
as the Agere Systems AP-1000 or AP-500, you will
need to identify the network name of the wireless
infrastructure.
For example if your infrastructure uses the
network name "My Network", edit the config.opts
file to include the following:
module "wavelan2_cs" opts "network_name=My\ Network"
Notice that the space character needs to be
escaped with a backslash.
b) To connect your computer to an Agere Systems
Residential Gateway RG-1000, you will need to know
the RG ID (=network_name) and the encryption key.
You can find the RG ID on a small label on the
rear of the unit.
For example if your RG-1000 has ID 225ccf and you
did not change the encryption key yet, edit the
config.opts file to include the following:
module "wavelan2_cs" opts "network_name=\"225ccf\"
key_1=\"25ccf\" enable_encryption=Y"
If you changed your encryption key, you should
specify this key as key_1 on the parameter line.
c) To connect your computer to a peer-to-peer
network, in an environment without access points,
the IBSS mode is recommended.
For example to connect to a peer-to-peer network
called "My Network", enter the following in the
config.opts file:
module "wavelan2_cs" opts "create_ibss=Y network_name=My\
Network"
d) Optionally you can also include a "Station Name"
value that can be used to indentify your computer
on the wireless network.
For example if you wish to name your computer
"Wave1" when connecting it to a wireless
infrastructure, edit the config.opts file to
include the following:
module "wavelan2_cs" opts "network_name=Ocean
station_name=Wave1"
e) To connect your computer to an Ad-Hoc workgroup
of wireless computers, enter the following in the
config.opts file:
module "wavelan2_cs" opts "port_type=3"
Note that the "Ad-Hoc Demo Mode" is not the
recommended mode for a peer-to-peer network.
The configuration of this non-interoperable mode
is only explained here for special applications
(e.g. research, or compatibility with other /
previous WaveLAN/IEEE products).
The IBSS mode described in c) is the preferred
and interoperable mode for creating a
peer-to-peer network.
3) Use an editor to modify the network options for your
adapter.
# vi /etc/pcmcia/network.opts
The parameters need to be correct for the connected
network. Check with your system
administrator for the correct network information.
Refer to the PCMCIA-HOWTO for more configuration
information.
For example:
*,*,*,*)
IF_PORT=""
BOOTP="n"
IPADDR="10.0.0.5"
NETMASK="255.255.255.0"
NETWORK="10.0.0.0"
BROADCAST="10.0.0.255"
GATEWAY="10.0.0.1"
DOMAIN="domain.org"
DNS_1="dns1.domain.org"
;;
Note that RedHat 7.1 doesn't use the network.opts
to configure the driver. Instead it uses a GUI-
based tool called 'netcfg' which creates scripts,
like ifcfg-eth0, in the directory
/etc/sysconfig/network-scripts.
Using the default GNOME menu, you can start netcfg
from: Programs->System->Network Configuration
4) Restart the PCMCIA services.
# /etc/rc.d/rc.pcmcia restart
or
# /etc/rc.d/init.d/pcmcia restart
For a more detailed description about the various
configuration options and definitions, please consult
the ORiNOCO documentation in Adobe's Acrobat PDF format
on the CD-ROM that came with your product .
ORiNOCO User documentation is also available on the
ORiNOCO Web Site: http://www.orinocowireless.com
You can download the documentation in Adobe's Acrobat
Portable Document Format (PDF). To view or print PDF
files you will need the freeware Acrobat Reader that
can be downloaded from the Adobe Web Site:
http://www.adobe.com/acrobat
4.4 Troubleshooting
When the ORiNOCO PC Card is inserted, the card manager
will emit beeps in different tones to indicate success
or failure of particular configuration steps.
a) Two high beeps
- The card was identified and configured
successfully.
b) One high beep followed by a low beep
- The card was identified, but could not be
configured.
- Examine the system log (dmesg) for PCMCIA error
or warning messages.
c) One low beep
- The card could not be identified.
- Execute "cardctl ident" to display the adapter
PnP information.
Verify the PnP information matches an entry in
the PCMCIA configuration file
(/etc/pcmcia/config).
- Examine the system log (dmesg) for PCMCIA error
or warning messages.
The ORiNOCO PC Card has two LEDs that indicate the
state of the adapter and network.
* Power LED (toward the middle of the adapter)
- This LED indicates power has been applied, and
the card is functional. In normal operation mode
with Card Power Management disabled, it will be
steady-on. With Card Power Management enabled, it
will blink rapidly (several times per second).
* Transmit/Receive LED (closer to the edge of the
adapter)
- This LED will flash when it detects transmit or
receive packets.
* Both LEDs blink at the same time every 10 seconds.
- The adapter was unable to make contact with the
named wireless network. Verify the network_name,
in the config.opts file matches the network name
of the access point.
* LEDs indicate normal operation with the Power LED
steady-on or blinking rapidly and Transmit/Receive
LED flashing, but no traffic.
- If the network is operating in normal mode (ie.
port_type = 0 or not specified), and a
network_name has been specified, verify the
workstation network parameters (ifconfig, route,
etc.) are correct for the wireless network.
- If the network is operating in Ad-Hoc (peer-to-
peer) mode (ie. port_type = 3), the adapter needs
another workstation/adapter to communicate with.
Verify the network parameters on both of the
workstations (ifconfig, route, etc.) are correct.
Refer to the online manual page for additional
configuration, feature and support information.
% man wavelan2_cs
or
% man 4 wavelan2_cs
or
% nroff -man wavelan2_cs.4 | more
4.5 Wireless extensions
This driver has support for the "Wireless Extensions".
This interface allows the "Wireless Tools" to get
statistics from the driver and allows to change the
configuration of the driver on the fly.
The latest versions of the PCMCIA package contain
scripts that use the wireless extension to configure
the driver as an alternative to the configuration
through module parameters as described in section 4.3.
Read the /etc/pcmcia/wireless.opts file for the theory
of operation.
When the driver is configured, go to section 4.3 step
3 to configure the network parameters.
For more information, refer to the following WEB pages:
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
Linux.Wireless.Extensions.html
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
4.6 Identifying the software
This section explains how to identify the version of
this software once it is unpacked or installed.
The Linux Driver Source/Library distribution consist of
two main components, the driver source and the HCF
library.
* To quickly identify the wavelan2_cs.c source, type:
% grep wavelan2_cs.c wavelan2_cs.c
"wavelan2_cs.c 6.16 11/23/2001 13:00:00 (Agere Systems)";
* To identify the revision of the HCF library, type:
% strings libhcf-i386.a | grep Revision
HCF$Revision: 4.6
To identify a compiled wavelan2_cs.o driver, go to the
directory where the driver is located. Installed drivers
are normally located in:
/lib/modules//pcmcia
* To retrieve the version of the source used to
compile the driver, type:
% strings wavelan2_cs.o | grep wavelan2_cs.c
wavelan2_cs.c 6.16 11/23/2001 13:00:00 (Agere Systems)
* To retrieve the revision of the HCF library used
to compile the driver, type:
% strings wavelan2_cs.o | grep Revision
HCF$Revision: 4.6
At startup the wavelan2_cs driver reports its version
in the system log file (/var/log/messages).
-----------------------------------------------------------
5. TECHNICAL CONSTRAINTS
At the time of release of this software, the following
constraints are identified:
5.1 Using the ORiNOCO ISA adapter
Description: The ORiNOCO solution was designed
as a one-card solution, providing the same
PC Card type for operation in standard
Type II PC Card slots of either:
* laptop computers or
* Agere Systems Access Points.
To allow operation in desktop computers
Agere also provides an optional ISA bus
to PC Card adapter (also referred to as
"swapbox").
This ORiNOCO ISA Adapter can be configured
for two different I/O Address values:
* 3E2 (factory-set default)
* 3E0
Impact: By default the i82365 module of the Linux
pcmcia package will only probe at 3E0.
Action: 1) Read the manual page on the probing
of the i82365 module, by typing the
command:
man i82365
2) Apply one of the two following options:
a) Change the I/O address strapping of
the ISA adapter by replacing the
jumper on the ISA adapter.
The correct jumper setting is
pictured in the electronic "ORiNOCO
ISA Adapter, Getting Started Guide"
provided on the ORiNOCO Software
CD-ROM. This guide is provided in
Adobe's Acrobat PDF format.
b) Alternatively, you can load the
i82365 module with the
"extra_sockets" parameter set to 1.
On a RedHat 5.x thru 7.x, system, put
this in the file
"/etc/sysconfig/pcmcia":
PCMCIA=yes
PCIC=i82365
PCIC_OPTS="extra_sockets=1"
CORE_OPTS=
CARDMGR_OPTS=
For other Linux distributions, you
are advised to consult the
"PCMCIA-HOWTO" notes for information
about changing the I/O Address
probing.
5.2 Using the ORiNOCO PCI Adapter
Description: The ORiNOCO solution was designed
as a one-card solution, providing the same
PC Card type for operation in standard
Type II PC Card slots of either:
* laptop computers or
* Agere Systems Access Points.
To allow operation in desktop computers
Agere also provides an optional PCI bus
to PC Card adapter (also referred to as
"swapbox").
For correct interrupt assignment, the
system should support PCIBIOS 2.2.
It is recommended to use PCMCIA package
version 3.1.14 or higher.
The default configuration of the interrupt
routing method of the PCI Adapter's TI
CardBus Controller is incorrect.
Action: 1) Read the manual page on the "Options
specific for TI CardBus Controllers"
of the i82365 module, by typing the
command:
man i82365
2) Load the i82365 module with the
"irq_mode" parameter set to 0.
On a RedHat 5.x thru 7.x system, put this
in the file "/etc/sysconfig/pcmcia":
PCMCIA=yes
PCIC=i82365
PCIC_OPTS="irq_mode=0"
CORE_OPTS=
CARDMGR_OPTS=
For the location of the PCMCIA scripts
on other Linux distributions, you are
advised to consult the "PCMCIA-HOWTO",
"Notes about specific Linux
distributions".
5.3 Station functions compatibility
Description: This driver supports cards with Station
Functions firmware version 4.x and higher.
Impact: The driver will abort and generate the
following error message in the system
log file (/var/log/messages):
eth0: ORiNOCO, HCF failure: "Primary
functions are compatible, station
functions are not"
Action: You are advised either to:
a) Use the WaveLAN Station firmware Update
utility (for example WSU10430.exe) on a
Windows system with an ORiNOCO driver.
b) Or revert to version 4.00 of this
driver (wavelan2_cs-4.00.tar.gz).
5.4 Building a bridge or router
Description: The Linux driver uses the Station Functions
firmware programmed in Flash memory on the
ORiNOCO PC Card.
On an IEEE 802.11 Station you can not
build a MAC-layer Transparent Bridge.
This is not a restriction of ORiNOCO
only; it is an architectural restriction
of IEEE 802.11. As such it is specified
in the 802.1D Bridge Standard (1998
Edition):
A Bridge to an 802.11 LAN shall connect to
an 802.11 Portal, which in turn connects
to an 802.11 Distribution System.
As the Distribution System is part of the
AP (and not of the STA), you need an AP to
build a Bridge.
The major cause for this is the MAC-layer
Acknowledgement. A Transparent Bridge will
have to Ack frames destined for multiple
destinations (everything that is not in
the cell itself). An AP can do this; a STA
can not; by definition.
Action: It is possible to build a router using
this driver.
-----------------------------------------------------------
6. KNOWN ISSUES
At the time of release of this software, no problems
are known.
-----------------------------------------------------------
7. TECHNICAL SUPPORT
7.1 Finding Information
On the ORiNOCO Web Site you can find the most recent
device drivers, bridge firmware, software updates and
user documentation.
World Wide Web: http://www.orinocowireless.com or
ftp://ftp.orinocowireless.com/pub
7.2 Contact Technical Support
If you encounter problems when installing or using this
product, or would like information about our other
ORiNOCO products, please contact your local Authorized
ORiNOCO Reseller or Agere Systems Sales office.
Addresses and telephone numbers of the Agere Systems
Sales offices are listed on our ORiNOCO Web site.
When contacting Technical Support, please use the
Problem Report Form and send it to us by Fax or E-Mail.
The Problem Report Form 'REPORT.TXT' (Plain text format)
is included on the disk. Alternatively, you can download
the Problem Report Form from the ORiNOCO Web Site.
Include Product Name, Serial Number and software
version number with each request to help the Support
Group helping you.
===========================================================
END OF FILE
More information about the TriLUG
mailing list