Chapter 2. Readme File for Linux Kernel Version of ray_cs

Copyright (c) 2000 Corey Thomas

This file is the documentation for the Raylink Wireless LAN card driver for Linux. The Raylink wireless LAN card is a PCMCIA card which provides IEEE 802.11 compatible wireless network connectivity at 1 and 2 megabits/second. See http://www.raytheon.com/micro/raylink/ for more information on the Raylink card. This driver is in early development and does have bugs. See the known bugs and limitations at the end of this document for more information. This driver also works with WebGear's Aviator 2.4 and Aviator Pro wireless LAN cards.

As of kernel 2.3.18, the ray_cs driver is part of the Linux kernel source. My web page for the development of ray_cs is at http://world.std.com/~corey/raylink.html and I can be emailed at corey@world.std.com

The kernel driver started at ray_cs-1.62.tgz. It is currently updated to 1.67.

The driver at my web page is intended to be used as an add on to David Hinds pcmcia package. All the command line parameters are available when compiled as a module. When built into the kernel, only the essid= string parameter is available via the kernel command line. This will change after the method of sorting out parameters for all the PCMCIA drivers is agreed upon. If you must have a built in driver with nondefault parameters, they can be edited in /usr/src/linux/drivers/net/pcmcia/ray_cs.c. Searching for MODULE_PARM will find them all.

Information on card services is available at: the PCMCIA card services source code

Card services user programs are still required for PCMCIA devices. pcmcia-cs-3.1.1 or greater is required for the kernel version of the driver.

Until pcmcia-cs-3.1.9, ray_cs was not part of David Hinds card services package, so the following magic is required for older pcmcia-cs versions (< 3.1.9).

At the end of the /etc/pcmcia/config.opts file, add the line: source ./ray_cs.opts

This will make card services read the ray_cs.opts file when starting. Create the file /etc/pcmcia/ray_cs.opts containing the following: Note that this is for 2.3.18ac8. For 2.3.20 and above, replace misc/ray_cs with ray_cs.

#### start of /etc/pcmcia/ray_cs.opts for 2.3.18ac8######
# Configuration options for Raylink Wireless LAN PCMCIA card
device "ray_cs"
class "network" module "misc/ray_cs"

card "RayLink PC Card WLAN Adapter"
manfid 0x01a6, 0x0000
bind "ray_cs"

module "misc/ray_cs" opts ""
#### end of /etc/pcmcia/ray_cs.opts #####################

#### start of /etc/pcmcia/ray_cs.opts for 2.3.20 and up #
# Configuration options for Raylink Wireless LAN PCMCIA card
device "ray_cs"
class "network" module "ray_cs"

card "RayLink PC Card WLAN Adapter"
manfid 0x01a6, 0x0000
bind "ray_cs"

module "ray_cs" opts ""
#### end of /etc/pcmcia/ray_cs.opts #####################
      

To join an existing network with different parameters, contact the network administrator for the configuration information, and edit /etc/pcmcia/ray_cs.opts. Add the parameters below between the empty quotes.

More on sniffer mode. Sniffer mode is for capturing all packets, with the 802.11 headers, seen on the wireless medium. It passes the 802.11 headers up to linux rather than unencapsulating or untranslating them. This means that you cannot participate in the network. It is only useful for debugging/studying 802.11 protocols. Transmission is disabled in sniffer mode.

tcpdump does not understand 802.11 headers, so it can't interpret the contents, but it can record to a file. This is only useful for debugging 802.11 lowlevel protocols that are not visible to linux. If you want to watch ftp xfers, or do similar things, you don't need to use sniffer mode. Also, some packet types are never sent up by the card, so you will never see them (ack, rts, cts, probe etc.) There is a simple program (showcap) included in the ray_cs package which parses the 802.11 headers.

Known Problems and missing features.

Only known to work with x86 and alpha.
Does not work with SMP
Support for defragmenting frames is not yet debugged, and in fact is known to not work. I have never encountered a net set up to fragment, but still, it should be fixed.
The ioctl support is incomplete. The hardware address cannot be set using ifconfig yet. If a different hardware address is needed, it may be set using the phy_addr parameter in ray_cs.opts. This requires a card insertion to take effect.