| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | September 21, 1999 | 
 | 2 |  | 
 | 3 | Copyright (c) 1998  Corey Thomas (corey@world.std.com) | 
 | 4 |  | 
 | 5 | This file is the documentation for the Raylink Wireless LAN card driver for | 
 | 6 | Linux.  The Raylink wireless LAN card is a PCMCIA card which provides IEEE | 
 | 7 | 802.11 compatible wireless network connectivity at 1 and 2 megabits/second. | 
 | 8 | See http://www.raytheon.com/micro/raylink/ for more information on the Raylink | 
 | 9 | card.  This driver is in early development and does have bugs.  See the known | 
 | 10 | bugs and limitations at the end of this document for more information. | 
 | 11 | This driver also works with WebGear's Aviator 2.4 and Aviator Pro | 
 | 12 | wireless LAN cards. | 
 | 13 |  | 
 | 14 | As of kernel 2.3.18, the ray_cs driver is part of the Linux kernel | 
 | 15 | source.  My web page for the development of ray_cs is at | 
 | 16 | http://world.std.com/~corey/raylink.html and I can be emailed at | 
 | 17 | corey@world.std.com | 
 | 18 |  | 
 | 19 | The kernel driver is based on ray_cs-1.62.tgz | 
 | 20 |  | 
 | 21 | The driver at my web page is intended to be used as an add on to | 
 | 22 | David Hinds pcmcia package.  All the command line parameters are | 
 | 23 | available when compiled as a module.  When built into the kernel, only | 
 | 24 | the essid= string parameter is available via the kernel command line. | 
 | 25 | This will change after the method of sorting out parameters for all | 
 | 26 | the PCMCIA drivers is agreed upon.  If you must have a built in driver | 
 | 27 | with nondefault parameters, they can be edited in | 
| Rusty Russell | 8d3b33f | 2006-03-25 03:07:05 -0800 | [diff] [blame] | 28 | /usr/src/linux/drivers/net/pcmcia/ray_cs.c.  Searching for module_param | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | will find them all. | 
 | 30 |  | 
 | 31 | Information on card services is available at: | 
| Randy Dunlap | 98766fb | 2005-11-21 21:32:31 -0800 | [diff] [blame] | 32 | 	http://pcmcia-cs.sourceforge.net/ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 33 |  | 
 | 34 |  | 
 | 35 | Card services user programs are still required for PCMCIA devices. | 
 | 36 | pcmcia-cs-3.1.1 or greater is required for the kernel version of | 
 | 37 | the driver. | 
 | 38 |  | 
 | 39 | Currently, ray_cs is not part of David Hinds card services package, | 
 | 40 | so the following magic is required. | 
 | 41 |  | 
 | 42 | At the end of the /etc/pcmcia/config.opts file, add the line:  | 
 | 43 | source ./ray_cs.opts  | 
 | 44 | This will make card services read the ray_cs.opts file | 
 | 45 | when starting.  Create the file /etc/pcmcia/ray_cs.opts containing the | 
 | 46 | following: | 
 | 47 |  | 
 | 48 | #### start of /etc/pcmcia/ray_cs.opts ################### | 
 | 49 | # Configuration options for Raylink Wireless LAN PCMCIA card | 
 | 50 | device "ray_cs" | 
 | 51 |   class "network" module "misc/ray_cs" | 
 | 52 |  | 
 | 53 | card "RayLink PC Card WLAN Adapter" | 
 | 54 |   manfid 0x01a6, 0x0000 | 
 | 55 |   bind "ray_cs" | 
 | 56 |  | 
 | 57 | module "misc/ray_cs" opts "" | 
 | 58 | #### end of /etc/pcmcia/ray_cs.opts ##################### | 
 | 59 |  | 
 | 60 |  | 
 | 61 | To join an existing network with | 
 | 62 | different parameters, contact the network administrator for the  | 
 | 63 | configuration information, and edit /etc/pcmcia/ray_cs.opts. | 
 | 64 | Add the parameters below between the empty quotes. | 
 | 65 |  | 
 | 66 | Parameters for ray_cs driver which may be specified in ray_cs.opts: | 
 | 67 |  | 
 | 68 | bc              integer         0 = normal mode (802.11 timing) | 
 | 69 |                                 1 = slow down inter frame timing to allow | 
 | 70 |                                     operation with older breezecom access | 
 | 71 |                                     points. | 
 | 72 |  | 
 | 73 | beacon_period	integer         beacon period in Kilo-microseconds | 
 | 74 | 				legal values = must be integer multiple  | 
 | 75 |                                                of hop dwell | 
 | 76 |                                 default = 256 | 
 | 77 |  | 
 | 78 | country         integer         1 = USA (default) | 
 | 79 |                                 2 = Europe | 
 | 80 |                                 3 = Japan | 
 | 81 |                                 4 = Korea | 
 | 82 |                                 5 = Spain | 
 | 83 |                                 6 = France | 
 | 84 |                                 7 = Israel | 
 | 85 |                                 8 = Australia | 
 | 86 |  | 
 | 87 | essid		string		ESS ID - network name to join | 
 | 88 | 				string with maximum length of 32 chars | 
 | 89 | 				default value = "ADHOC_ESSID" | 
 | 90 |  | 
 | 91 | hop_dwell	integer         hop dwell time in Kilo-microseconds  | 
 | 92 | 				legal values = 16,32,64,128(default),256 | 
 | 93 |  | 
 | 94 | irq_mask	integer         linux standard 16 bit value 1bit/IRQ | 
 | 95 | 				lsb is IRQ 0, bit 1 is IRQ 1 etc. | 
 | 96 | 				Used to restrict choice of IRQ's to use. | 
 | 97 |                                 Recommended method for controlling | 
 | 98 |                                 interrupts is in /etc/pcmcia/config.opts | 
 | 99 |  | 
 | 100 | net_type	integer		0 (default) = adhoc network,  | 
 | 101 | 				1 = infrastructure | 
 | 102 |  | 
 | 103 | phy_addr	string          string containing new MAC address in | 
 | 104 | 				hex, must start with x eg | 
 | 105 | 				x00008f123456 | 
 | 106 |  | 
 | 107 | psm		integer         0 = continuously active | 
 | 108 | 				1 = power save mode (not useful yet) | 
 | 109 |  | 
 | 110 | pc_debug	integer		(0-5) larger values for more verbose | 
 | 111 | 				logging.  Replaces ray_debug. | 
 | 112 |  | 
 | 113 | ray_debug	integer		Replaced with pc_debug | 
 | 114 |  | 
 | 115 | ray_mem_speed   integer         defaults to 500 | 
 | 116 |  | 
 | 117 | sniffer         integer         0 = not sniffer (default) | 
 | 118 |                                 1 = sniffer which can be used to record all | 
 | 119 |                                     network traffic using tcpdump or similar,  | 
 | 120 |                                     but no normal network use is allowed. | 
 | 121 |  | 
 | 122 | translate	integer		0 = no translation (encapsulate frames) | 
 | 123 | 				1 = translation    (RFC1042/802.1) | 
 | 124 |  | 
 | 125 |  | 
 | 126 | More on sniffer mode: | 
 | 127 |  | 
 | 128 | tcpdump does not understand 802.11 headers, so it can't | 
 | 129 | interpret the contents, but it can record to a file.  This is only | 
 | 130 | useful for debugging 802.11 lowlevel protocols that are not visible to | 
 | 131 | linux.  If you want to watch ftp xfers, or do similar things, you | 
 | 132 | don't need to use sniffer mode.  Also, some packet types are never | 
 | 133 | sent up by the card, so you will never see them (ack, rts, cts, probe | 
 | 134 | etc.)  There is a simple program (showcap) included in the ray_cs | 
 | 135 | package which parses the 802.11 headers. | 
 | 136 |  | 
 | 137 | Known Problems and missing features | 
 | 138 |  | 
 | 139 |         Does not work with non x86 | 
 | 140 |  | 
 | 141 | 	Does not work with SMP | 
 | 142 |  | 
 | 143 | 	Support for defragmenting frames is not yet debugged, and in | 
 | 144 | 	fact is known to not work.  I have never encountered a net set | 
 | 145 | 	up to fragment, but still, it should be fixed. | 
 | 146 |  | 
 | 147 | 	The ioctl support is incomplete.  The hardware address cannot be set | 
 | 148 | 	using ifconfig yet.  If a different hardware address is needed, it may | 
 | 149 | 	be set using the phy_addr parameter in ray_cs.opts.  This requires | 
 | 150 | 	a card insertion to take effect. |