
Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of:

Intel(R) PRO/Wireless 2200BG Network Connection 
Intel(R) PRO/Wireless 2915ABG Network Connection 

Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R) 
PRO/Wireless 2200BG Driver for Linux is a unified driver that works on 
both hardware adapters listed above. In this document the Intel(R) 
PRO/Wireless 2915ABG Driver for Linux will be used to reference the 
unified driver.

Copyright (C) 2004-2005, Intel Corporation

README.ipw2200

Version: 1.0.0
Date   : January 31, 2005


Index
-----------------------------------------------
1.   Introduction
1.1. Overview of features
1.2. Module parameters
1.3. Wireless Extension Private Methods
1.4. Sysfs Helper Files
2.   About the Version Numbers
3.   Support
4.   License


1.   Introduction
-----------------------------------------------
The following sections attempt to provide a brief introduction to using 
the Intel(R) PRO/Wireless 2915ABG Driver for Linux.

This document is not meant to be a comprehensive manual on 
understanding or using wireless technologies, but should be sufficient 
to get you moving without wires on Linux.

For information on building and installing the driver, see the INSTALL
file.


1.1. Overview of Features
-----------------------------------------------
The current release (1.0.0) supports the following features:

+ BSS mode (Infrastructure, Managed)
+ IBSS mode (Ad-Hoc)
+ WEP (OPEN and SHARED KEY mode)
+ 802.1x EAP via wpa_supplicant and xsupplicant
+ Wireless Extension support 
+ Full B and G rate support (2200 and 2915)
+ Full A rate support (2915 only)
+ Transmit power control
+ S state support (ACPI suspend/resume)
+ long/short preamble support



1.2. Command Line Parameters
-----------------------------------------------

Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless 
2915ABG Driver for Linux allows certain configuration options to be 
provided as module parameters.  The most common way to specify a module 
parameter is via the command line.  

The general form is:

% modprobe ipw2200 parameter=value

Where the supported parameter are:

  associate
	Set to 0 to disable the auto scan-and-associate functionality of the
	driver.  If disabled, the driver will not attempt to scan 
	for and associate to a network until it has been configured with 
	one or more properties for the target network, for example configuring 
	the network SSID.  Default is 1 (auto-associate)
	
	Example: % modprobe ipw2200 associate=0

  auto_create
	Set to 0 to disable the auto creation of an Ad-Hoc network 
	matching the channel and network name parameters provided.  
	Default is 1.

  channel
	channel number for association.  The normal method for setting
        the channel would be to use the standard wireless tools
        (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
	to set this while debugging.  Channel 0 means 'ANY'

  debug
	If using a debug build, this is used to control the amount of debug
	info is logged.  See the 'dval' and 'load' script for more info on
	how to use this (the dval and load scripts are provided as part 
	of the ipw2200 development snapshot releases available from the 
	SourceForge project at http://ipw2200.sf.net)

  mode
	Can be used to set the default mode of the adapter.  
	0 = Managed, 1 = Ad-Hoc


1.3. Wireless Extension Private Methods
-----------------------------------------------

As an interface designed to handle generic hardware, there are certain 
capabilities not exposed through the normal Wireless Tool interface.  As 
such, a provision is provided for a driver to declare custom, or 
private, methods.  The Intel(R) PRO/Wireless 2915ABG Driver for Linux 
defines several of these to configure various settings.

The general form of using the private wireless methods is:

	% iwpriv $IFNAME method parameters

Where $IFNAME is the interface name the device is registered with 
(typically eth1, customized via one of the various network interface
name managers, such as ifrename)

The supported private methods are:

  get_mode
	Can be used to report out which IEEE mode the driver is 
	configured to support.  Example:
	
	% iwpriv eth1 get_mode
	eth1	get_mode:802.11bg (6)

  set_mode
	Can be used to configure which IEEE mode the driver will 
	support.  

	Usage:
	% iwpriv eth1 set_mode {mode}
	Where {mode} is a number in the range 1-7:
	1	802.11a (2915 only)
	2	802.11b
	3	802.11ab (2915 only)
	4	802.11g 
	5	802.11ag (2915 only)
	6	802.11bg
	7	802.11abg (2915 only)

  get_preamble
	Can be used to report configuration of preamble length.

  set_preamble
	Can be used to set the configuration of preamble length:

	Usage:
	% iwpriv eth1 set_preamble {mode}
	Where {mode} is one of:
	1	Long preamble only
	0	Auto (long or short based on connection)
	

1.4. Sysfs Helper Files:
-----------------------------------------------

The Linux kernel provides a pseudo file system that can be used to 
access various components of the operating system.  The Intel(R) 
PRO/Wireless 2915ABG Driver for Linux exposes several configuration 
parameters through this mechanism.

An entry in the sysfs can support reading and/or writing.  You can 
typically query the contents of a sysfs entry through the use of cat, 
and can set the contents via echo.  For example:

% cat /sys/bus/pci/drivers/ipw2200/debug_level

Will report the current debug level of the driver's logging subsystem 
(only available if CONFIG_IPW_DEBUG was configured when the driver was 
built).

You can set the debug level via:

% echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level

Where $VALUE would be a number in the case of this sysfs entry.  The 
input to sysfs files does not have to be a number.  For example, the 
firmware loader used by hotplug utilizes sysfs entries for transferring 
the firmware image from user space into the driver.

The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries 
at two levels -- driver level, which apply to all instances of the 
driver (in the event that there are more than one device installed) and 
device level, which applies only to the single specific instance.


1.4.1 Driver Level Sysfs Helper Files
-----------------------------------------------

For the driver level files, look in /sys/bus/pci/drivers/ipw2200/

  debug_level  
	
	This controls the same global as the 'debug' module parameter


1.4.2 Device Level Sysfs Helper Files
-----------------------------------------------

For the device level files, look in
	
	/sys/bus/pci/drivers/ipw2200/{PCI-ID}/

For example:
	/sys/bus/pci/drivers/ipw2200/0000:02:01.0

For the device level files, see /sys/bus/pci/[drivers/ipw2200:

  rf_kill
	read - 
	0 = RF kill not enabled (radio on)
	1 = SW based RF kill active (radio off)
	2 = HW based RF kill active (radio off)
	3 = Both HW and SW RF kill active (radio off)
	write -
	0 = If SW based RF kill active, turn the radio back on
	1 = If radio is on, activate SW based RF kill

	NOTE: If you enable the SW based RF kill and then toggle the HW
  	based RF kill from ON -> OFF -> ON, the radio will NOT come back on
	
  ucode 
	read-only access to the ucode version number


2.   About the Version Numbers
-----------------------------------------------

Due to the nature of open source development projects, there are 
frequently changes being incorporated that have not gone through 
a complete validation process.  These changes are incorporated into 
development snapshot releases.

Releases are numbered with a three level scheme: 

	major.minor.development

Any version where the 'development' portion is 0 (for example
1.0.0, 1.1.0, etc.) indicates a stable version that will be made 
available for kernel inclusion.

Any version where the 'development' portion is not a 0 (for
example 1.0.1, 1.1.5, etc.) indicates a development version that is
being made available for testing and cutting edge users.  The stability 
and functionality of the development releases are not know.  We make
efforts to try and keep all snapshots reasonably stable, but due to the
frequency of their release, and the desire to get those releases 
available as quickly as possible, unknown anomalies should be expected.

The major version number will be incremented when significant changes
are made to the driver.  Currently, there are no major changes planned.


3.  Support
-----------------------------------------------

For installation support of the 1.0.0 version, you can contact 
http://supportmail.intel.com, or you can use the open source project 
support.

For general information and support, go to:
	
    http://ipw2200.sf.net/


4.  License
-----------------------------------------------

  Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved.

  This program is free software; you can redistribute it and/or modify it 
  under the terms of the GNU General Public License version 2 as 
  published by the Free Software Foundation.
  
  This program is distributed in the hope that it will be useful, but WITHOUT 
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
  more details.
  
  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59 
  Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  
  The full GNU General Public License is included in this distribution in the
  file called LICENSE.
  
  Contact Information:
  James P. Ketrenos <ipw2100-admin@linux.intel.com>
  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497


