The Linux Kernel
6.0.0
  • The Linux kernel user’s and administrator’s guide
  • Kernel Build System
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • The Linux kernel user-space API guide
  • Working with the kernel development community
  • Development tools for the kernel
  • How to write kernel documentation
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • Kernel Maintainer Handbook
  • fault-injection
  • Kernel Livepatching
  • The Linux driver implementer’s API guide
  • Core API Documentation
  • locking
  • Accounting
  • Block
  • cdrom
  • Linux CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
  • Frame Buffer
  • fpga
  • Human Interface Devices (HID)
  • I2C/SMBus Subsystem
  • Industrial I/O
  • ISDN
  • InfiniBand
  • LEDs
  • NetLabel
  • Networking
    • AF_XDP
    • Bare UDP Tunnelling Module Documentation
    • batman-adv
    • SocketCAN - Controller Area Network
    • The UCAN Protocol
    • Hardware Device Drivers
      • AppleTalk Device Drivers
      • Asynchronous Transfer Mode (ATM) Device Drivers
      • Cable Modem Device Drivers
      • Controller Area Network (CAN) Device Drivers
      • Cellular Modem Device Drivers
      • Ethernet Device Drivers
      • Fiber Distributed Data Interface (FDDI) Device Drivers
      • Amateur Radio Device Drivers
      • QLogic QLGE Device Drivers
      • Wi-Fi Device Drivers
        • Intel(R) PRO/Wireless 2100 Driver for Linux
        • Intel(R) PRO/Wireless 2915ABG Driver for Linux
        • Raylink wireless LAN card
      • WWAN Device Drivers
    • Distributed Switch Architecture
    • Linux Devlink Documentation
    • CAIF
    • Netlink interface for ethtool
    • IEEE 802.15.4 Developer’s Guide
    • J1939 Documentation
    • Linux Networking and Network Devices APIs
    • MSG_ZEROCOPY
    • FAILOVER
    • Net DIM - Generic Network Dynamic Interrupt Moderation
    • NET_FAILOVER
    • Page Pool API
    • PHY Abstraction Layer
    • phylink
    • IP-Aliasing
    • Ethernet Bridging
    • SNMP counter
    • Checksum Offloads
    • Segmentation Offloads
    • Scaling in the Linux Networking Stack
    • Kernel TLS
    • Kernel TLS offload
    • Linux NFC subsystem
    • Netdev private dataroom for 6lowpan interfaces
    • 6pack Protocol
    • ARCnet Hardware
    • ARCnet
    • ATM
    • AX.25
    • Linux Ethernet Bonding Driver HOWTO
    • cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
    • DCCP protocol
    • DCTCP (DataCenter TCP)
    • Linux DECnet Networking Layer Information
    • DNS Resolver Module
    • Softnet Driver Issues
    • EQL Driver: Serial IP Load Balancing HOWTO
    • LC-trie implementation notes
    • Linux Socket Filtering aka Berkeley Packet Filter (BPF)
    • Generic HDLC layer
    • Generic Netlink
    • Generic networking statistics for netlink users
    • The Linux kernel GTP tunneling module
    • Identifier Locator Addressing (ILA)
    • IOAM6 Sysfs variables
    • AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation
    • IP dynamic address hack-port v0.03
    • IPsec
    • IP Sysctl
    • IPv6
    • IPVLAN Driver HOWTO
    • IPvs-sysctl
    • Kernel Connection Multiplexor
    • L2TP
    • The Linux LAPB Module Interface
    • How to use packet injection with mac80211
    • Management Component Transport Protocol (MCTP)
    • MPLS Sysfs variables
    • MPTCP Sysfs variables
    • HOWTO for multiqueue network device support
    • Netconsole
    • Netdev features mess and how to get out from it alive
    • Network Devices, the Kernel, and You!
    • Netfilter Sysfs variables
    • NETIF Msg Level
    • Resilient Next-hop Groups
    • Netfilter Conntrack Sysfs variables
    • Netfilter’s flowtable infrastructure
    • Open vSwitch datapath developer documentation
    • Operational States
    • Packet MMAP
    • Linux Phonet protocol family
    • HOWTO for the linux packet generator
    • PLIP: The Parallel Line Internet Protocol Device
    • PPP Generic Driver and Channel Interface
    • The proc/net/tcp and proc/net/tcp6 variables
    • How to use radiotap headers
    • RDS
    • Linux wireless regulatory documentation
    • RxRPC Network Protocol
    • SOCKET OPTIONS
    • SECURITY
    • EXAMPLE CLIENT USAGE
    • Linux Kernel SCTP
    • LSM/SeLinux secid
    • Seg6 Sysfs variables
    • struct sk_buff
    • SMC Sysctl
    • Interface statistics
    • Stream Parser (strparser)
    • Ethernet switch device driver model (switchdev)
    • Sysfs tagging
    • TC Actions - Environmental Rules
    • Thin-streams and TCP
    • Team
    • Timestamping
    • Linux Kernel TIPC
    • Transparent proxy support
    • Universal TUN/TAP device driver
    • The UDP-Lite protocol (RFC 3828)
    • Virtual Routing and Forwarding (VRF)
    • Virtual eXtensible Local Area Networking documentation
    • Packet Layer to Device Driver
    • Device Driver to Packet Layer
    • Requirements for the device driver
    • Linux X.25 Project
    • XFRM device - offloading the IPsec computations
    • XFRM proc - /proc/net/xfrm_* files
    • XFRM
    • XFRM Syscall
  • pcmcia
  • Power Management
  • TCM Virtual Device
  • timers
  • Serial Peripheral Interface (SPI)
  • 1-Wire Subsystem
  • Linux Watchdog Support
  • Linux Virtualization Support
  • The Linux Input Documentation
  • Linux Hardware Monitoring
  • Linux GPU Driver Developer’s Guide
  • Security Documentation
  • Linux Sound Subsystem Documentation
  • Linux Kernel Crypto API
  • Filesystems in the Linux kernel
  • Linux Memory Management Documentation
  • BPF Documentation
  • USB support
  • Linux PCI Bus Subsystem
  • Linux SCSI Subsystem
  • Assorted Miscellaneous Devices Documentation
  • Linux Scheduler
  • MHI
  • Linux PECI Subsystem
  • Assembler Annotations
  • CPU Architectures
  • Kernel tools
  • Unsorted Documentation
  • Atomic Types
  • Atomic bitops
  • Memory Barriers
  • Translations
The Linux Kernel
  • »
  • Networking »
  • Hardware Device Drivers »
  • Wi-Fi Device Drivers »
  • Raylink wireless LAN card
  • View page source

Raylink wireless LAN card¶

September 21, 1999

Copyright © 1998 Corey Thomas (corey@world.std.com)

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://web.ralinktech.com/ralink/Home/Support/Linux.html and I can be emailed at corey@world.std.com

The kernel driver is based on ray_cs-1.62.tgz

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_param will find them all.

Information on card services is available at:

http://pcmcia-cs.sourceforge.net/

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.

Currently, ray_cs is not part of David Hinds card services package, so the following magic is required.

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:

#### start of /etc/pcmcia/ray_cs.opts ###################
# 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 #####################

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.

Parameters for ray_cs driver which may be specified in ray_cs.opts:

bc

integer

0 = normal mode (802.11 timing), 1 = slow down inter frame timing to allow operation with older breezecom access points.

beacon_period

integer

beacon period in Kilo-microseconds,

legal values = must be integer multiple of hop dwell

default = 256

country

integer

1 = USA (default), 2 = Europe, 3 = Japan, 4 = Korea, 5 = Spain, 6 = France, 7 = Israel, 8 = Australia

essid

string

ESS ID - network name to join

string with maximum length of 32 chars default value = “ADHOC_ESSID”

hop_dwell

integer

hop dwell time in Kilo-microseconds

legal values = 16,32,64,128(default),256

irq_mask

integer

linux standard 16 bit value 1bit/IRQ

lsb is IRQ 0, bit 1 is IRQ 1 etc. Used to restrict choice of IRQ’s to use. Recommended method for controlling interrupts is in /etc/pcmcia/config.opts

net_type

integer

0 (default) = adhoc network, 1 = infrastructure

phy_addr

string

string containing new MAC address in hex, must start with x eg x00008f123456

psm

integer

0 = continuously active, 1 = power save mode (not useful yet)

pc_debug

integer

(0-5) larger values for more verbose logging. Replaces ray_debug.

ray_debug

integer

Replaced with pc_debug

ray_mem_speed

integer

defaults to 500

sniffer

integer

0 = not sniffer (default), 1 = sniffer which can be used to record all network traffic using tcpdump or similar, but no normal network use is allowed.

translate

integer

0 = no translation (encapsulate frames), 1 = translation (RFC1042/802.1)

More on 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

Does not work with non x86

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.

Previous Next

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.