| 1 | 1275 | phoenix | 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
 | 
      
         | 28 |  |  | /usr/src/linux/drivers/net/pcmcia/ray_cs.c.  Searching for MODULE_PARM
 | 
      
         | 29 |  |  | will find them all.
 | 
      
         | 30 |  |  |  
 | 
      
         | 31 |  |  | Information on card services is available at:
 | 
      
         | 32 |  |  |         ftp://hyper.stanford.edu/pub/pcmcia/doc
 | 
      
         | 33 |  |  |         http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html
 | 
      
         | 34 |  |  |  
 | 
      
         | 35 |  |  |  
 | 
      
         | 36 |  |  | Card services user programs are still required for PCMCIA devices.
 | 
      
         | 37 |  |  | pcmcia-cs-3.1.1 or greater is required for the kernel version of
 | 
      
         | 38 |  |  | the driver.
 | 
      
         | 39 |  |  |  
 | 
      
         | 40 |  |  | Currently, ray_cs is not part of David Hinds card services package,
 | 
      
         | 41 |  |  | so the following magic is required.
 | 
      
         | 42 |  |  |  
 | 
      
         | 43 |  |  | At the end of the /etc/pcmcia/config.opts file, add the line:
 | 
      
         | 44 |  |  | source ./ray_cs.opts
 | 
      
         | 45 |  |  | This will make card services read the ray_cs.opts file
 | 
      
         | 46 |  |  | when starting.  Create the file /etc/pcmcia/ray_cs.opts containing the
 | 
      
         | 47 |  |  | following:
 | 
      
         | 48 |  |  |  
 | 
      
         | 49 |  |  | #### start of /etc/pcmcia/ray_cs.opts ###################
 | 
      
         | 50 |  |  | # Configuration options for Raylink Wireless LAN PCMCIA card
 | 
      
         | 51 |  |  | device "ray_cs"
 | 
      
         | 52 |  |  |   class "network" module "misc/ray_cs"
 | 
      
         | 53 |  |  |  
 | 
      
         | 54 |  |  | card "RayLink PC Card WLAN Adapter"
 | 
      
         | 55 |  |  |   manfid 0x01a6, 0x0000
 | 
      
         | 56 |  |  |   bind "ray_cs"
 | 
      
         | 57 |  |  |  
 | 
      
         | 58 |  |  | module "misc/ray_cs" opts ""
 | 
      
         | 59 |  |  | #### end of /etc/pcmcia/ray_cs.opts #####################
 | 
      
         | 60 |  |  |  
 | 
      
         | 61 |  |  |  
 | 
      
         | 62 |  |  | To join an existing network with
 | 
      
         | 63 |  |  | different parameters, contact the network administrator for the
 | 
      
         | 64 |  |  | configuration information, and edit /etc/pcmcia/ray_cs.opts.
 | 
      
         | 65 |  |  | Add the parameters below between the empty quotes.
 | 
      
         | 66 |  |  |  
 | 
      
         | 67 |  |  | Parameters for ray_cs driver which may be specified in ray_cs.opts:
 | 
      
         | 68 |  |  |  
 | 
      
         | 69 |  |  | bc              integer         0 = normal mode (802.11 timing)
 | 
      
         | 70 |  |  |                                 1 = slow down inter frame timing to allow
 | 
      
         | 71 |  |  |                                     operation with older breezecom access
 | 
      
         | 72 |  |  |                                     points.
 | 
      
         | 73 |  |  |  
 | 
      
         | 74 |  |  | beacon_period   integer         beacon period in Kilo-microseconds
 | 
      
         | 75 |  |  |                                 legal values = must be integer multiple
 | 
      
         | 76 |  |  |                                                of hop dwell
 | 
      
         | 77 |  |  |                                 default = 256
 | 
      
         | 78 |  |  |  
 | 
      
         | 79 |  |  | country         integer         1 = USA (default)
 | 
      
         | 80 |  |  |                                 2 = Europe
 | 
      
         | 81 |  |  |                                 3 = Japan
 | 
      
         | 82 |  |  |                                 4 = Korea
 | 
      
         | 83 |  |  |                                 5 = Spain
 | 
      
         | 84 |  |  |                                 6 = France
 | 
      
         | 85 |  |  |                                 7 = Israel
 | 
      
         | 86 |  |  |                                 8 = Australia
 | 
      
         | 87 |  |  |  
 | 
      
         | 88 |  |  | essid           string          ESS ID - network name to join
 | 
      
         | 89 |  |  |                                 string with maximum length of 32 chars
 | 
      
         | 90 |  |  |                                 default value = "ADHOC_ESSID"
 | 
      
         | 91 |  |  |  
 | 
      
         | 92 |  |  | hop_dwell       integer         hop dwell time in Kilo-microseconds
 | 
      
         | 93 |  |  |                                 legal values = 16,32,64,128(default),256
 | 
      
         | 94 |  |  |  
 | 
      
         | 95 |  |  | irq_mask        integer         linux standard 16 bit value 1bit/IRQ
 | 
      
         | 96 |  |  |                                 lsb is IRQ 0, bit 1 is IRQ 1 etc.
 | 
      
         | 97 |  |  |                                 Used to restrict choice of IRQ's to use.
 | 
      
         | 98 |  |  |                                 Recommended method for controlling
 | 
      
         | 99 |  |  |                                 interrupts is in /etc/pcmcia/config.opts
 | 
      
         | 100 |  |  |  
 | 
      
         | 101 |  |  | net_type        integer         0 (default) = adhoc network,
 | 
      
         | 102 |  |  |                                 1 = infrastructure
 | 
      
         | 103 |  |  |  
 | 
      
         | 104 |  |  | phy_addr        string          string containing new MAC address in
 | 
      
         | 105 |  |  |                                 hex, must start with x eg
 | 
      
         | 106 |  |  |                                 x00008f123456
 | 
      
         | 107 |  |  |  
 | 
      
         | 108 |  |  | psm             integer         0 = continuously active
 | 
      
         | 109 |  |  |                                 1 = power save mode (not useful yet)
 | 
      
         | 110 |  |  |  
 | 
      
         | 111 |  |  | pc_debug        integer         (0-5) larger values for more verbose
 | 
      
         | 112 |  |  |                                 logging.  Replaces ray_debug.
 | 
      
         | 113 |  |  |  
 | 
      
         | 114 |  |  | ray_debug       integer         Replaced with pc_debug
 | 
      
         | 115 |  |  |  
 | 
      
         | 116 |  |  | ray_mem_speed   integer         defaults to 500
 | 
      
         | 117 |  |  |  
 | 
      
         | 118 |  |  | sniffer         integer         0 = not sniffer (default)
 | 
      
         | 119 |  |  |                                 1 = sniffer which can be used to record all
 | 
      
         | 120 |  |  |                                     network traffic using tcpdump or similar,
 | 
      
         | 121 |  |  |                                     but no normal network use is allowed.
 | 
      
         | 122 |  |  |  
 | 
      
         | 123 |  |  | translate       integer         0 = no translation (encapsulate frames)
 | 
      
         | 124 |  |  |                                 1 = translation    (RFC1042/802.1)
 | 
      
         | 125 |  |  |  
 | 
      
         | 126 |  |  |  
 | 
      
         | 127 |  |  | More on sniffer mode:
 | 
      
         | 128 |  |  |  
 | 
      
         | 129 |  |  | tcpdump does not understand 802.11 headers, so it can't
 | 
      
         | 130 |  |  | interpret the contents, but it can record to a file.  This is only
 | 
      
         | 131 |  |  | useful for debugging 802.11 lowlevel protocols that are not visible to
 | 
      
         | 132 |  |  | linux.  If you want to watch ftp xfers, or do similar things, you
 | 
      
         | 133 |  |  | don't need to use sniffer mode.  Also, some packet types are never
 | 
      
         | 134 |  |  | sent up by the card, so you will never see them (ack, rts, cts, probe
 | 
      
         | 135 |  |  | etc.)  There is a simple program (showcap) included in the ray_cs
 | 
      
         | 136 |  |  | package which parses the 802.11 headers.
 | 
      
         | 137 |  |  |  
 | 
      
         | 138 |  |  | Known Problems and missing features
 | 
      
         | 139 |  |  |  
 | 
      
         | 140 |  |  |         Does not work with non x86
 | 
      
         | 141 |  |  |  
 | 
      
         | 142 |  |  |         Does not work with SMP
 | 
      
         | 143 |  |  |  
 | 
      
         | 144 |  |  |         Support for defragmenting frames is not yet debugged, and in
 | 
      
         | 145 |  |  |         fact is known to not work.  I have never encountered a net set
 | 
      
         | 146 |  |  |         up to fragment, but still, it should be fixed.
 | 
      
         | 147 |  |  |  
 | 
      
         | 148 |  |  |         The ioctl support is incomplete.  The hardware address cannot be set
 | 
      
         | 149 |  |  |         using ifconfig yet.  If a different hardware address is needed, it may
 | 
      
         | 150 |  |  |         be set using the phy_addr parameter in ray_cs.opts.  This requires
 | 
      
         | 151 |  |  |         a card insertion to take effect.
 |