mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-05-19 21:53:53 +00:00
Add ipw2100 wireless driver.
This commit is contained in:
parent
0a989b24fd
commit
2c86c27501
5 changed files with 10228 additions and 0 deletions
246
Documentation/networking/README.ipw2100
Normal file
246
Documentation/networking/README.ipw2100
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
|
||||||
|
===========================
|
||||||
|
Intel(R) PRO/Wireless 2100 Network Connection Driver for Linux
|
||||||
|
README.ipw2100
|
||||||
|
|
||||||
|
March 14, 2005
|
||||||
|
|
||||||
|
===========================
|
||||||
|
Index
|
||||||
|
---------------------------
|
||||||
|
0. Introduction
|
||||||
|
1. Release 1.1.0 Current Features
|
||||||
|
2. Command Line Parameters
|
||||||
|
3. Sysfs Helper Files
|
||||||
|
4. Radio Kill Switch
|
||||||
|
5. Dynamic Firmware
|
||||||
|
6. Power Management
|
||||||
|
7. Support
|
||||||
|
8. License
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
0. Introduction
|
||||||
|
------------ ----- ----- ---- --- -- -
|
||||||
|
|
||||||
|
This document provides a brief overview of the features supported by the
|
||||||
|
IPW2100 driver project. The main project website, where the latest
|
||||||
|
development version of the driver can be found, is:
|
||||||
|
|
||||||
|
http://ipw2100.sourceforge.net
|
||||||
|
|
||||||
|
There you can find the not only the latest releases, but also information about
|
||||||
|
potential fixes and patches, as well as links to the development mailing list
|
||||||
|
for the driver project.
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
1. Release 1.1.0 Current Supported Features
|
||||||
|
---------------------------
|
||||||
|
- Managed (BSS) and Ad-Hoc (IBSS)
|
||||||
|
- WEP (shared key and open)
|
||||||
|
- Wireless Tools support
|
||||||
|
- 802.1x (tested with XSupplicant 1.0.1)
|
||||||
|
|
||||||
|
Enabled (but not supported) features:
|
||||||
|
- Monitor/RFMon mode
|
||||||
|
- WPA/WPA2
|
||||||
|
|
||||||
|
The distinction between officially supported and enabled is a reflection
|
||||||
|
on the amount of validation and interoperability testing that has been
|
||||||
|
performed on a given feature.
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
2. Command Line Parameters
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
If the driver is built as a module, the following optional parameters are used
|
||||||
|
by entering them on the command line with the modprobe command using this
|
||||||
|
syntax:
|
||||||
|
|
||||||
|
modprobe ipw2100 [<option>=<VAL1><,VAL2>...]
|
||||||
|
|
||||||
|
For example, to disable the radio on driver loading, enter:
|
||||||
|
|
||||||
|
modprobe ipw2100 disable=1
|
||||||
|
|
||||||
|
The ipw2100 driver supports the following module parameters:
|
||||||
|
|
||||||
|
Name Value Example:
|
||||||
|
debug 0x0-0xffffffff debug=1024
|
||||||
|
mode 0,1,2 mode=1 /* AdHoc */
|
||||||
|
channel int channel=3 /* Only valid in AdHoc or Monitor */
|
||||||
|
associate boolean associate=0 /* Do NOT auto associate */
|
||||||
|
disable boolean disable=1 /* Do not power the HW */
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
3. Sysfs Helper Files
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
There are several ways to control the behavior of the driver. Many of the
|
||||||
|
general capabilities are exposed through the Wireless Tools (iwconfig). There
|
||||||
|
are a few capabilities that are exposed through entries in the Linux Sysfs.
|
||||||
|
|
||||||
|
|
||||||
|
----- Driver Level ------
|
||||||
|
For the driver level files, look in /sys/bus/pci/drivers/ipw2100/
|
||||||
|
|
||||||
|
debug_level
|
||||||
|
|
||||||
|
This controls the same global as the 'debug' module parameter. For
|
||||||
|
information on the various debugging levels available, run the 'dvals'
|
||||||
|
script found in the driver source directory.
|
||||||
|
|
||||||
|
NOTE: 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn
|
||||||
|
on.
|
||||||
|
|
||||||
|
----- Device Level ------
|
||||||
|
For the device level files look in
|
||||||
|
|
||||||
|
/sys/bus/pci/drivers/ipw2100/{PCI-ID}/
|
||||||
|
|
||||||
|
For example:
|
||||||
|
/sys/bus/pci/drivers/ipw2100/0000:02:01.0
|
||||||
|
|
||||||
|
For the device level files, see /sys/bus/pci/drivers/ipw2100:
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
4. Radio Kill Switch
|
||||||
|
---------------------------
|
||||||
|
Most laptops provide the ability for the user to physically disable the radio.
|
||||||
|
Some vendors have implemented this as a physical switch that requires no
|
||||||
|
software to turn the radio off and on. On other laptops, however, the switch
|
||||||
|
is controlled through a button being pressed and a software driver then making
|
||||||
|
calls to turn the radio off and on. This is referred to as a "software based
|
||||||
|
RF kill switch"
|
||||||
|
|
||||||
|
See the Sysfs helper file 'rf_kill' for determining the state of the RF switch
|
||||||
|
on your system.
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
5. Dynamic Firmware
|
||||||
|
---------------------------
|
||||||
|
As the firmware is licensed under a restricted use license, it can not be
|
||||||
|
included within the kernel sources. To enable the IPW2100 you will need a
|
||||||
|
firmware image to load into the wireless NIC's processors.
|
||||||
|
|
||||||
|
You can obtain these images from <http://ipw2100.sf.net/firmware.php>.
|
||||||
|
|
||||||
|
See INSTALL for instructions on installing the firmware.
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
6. Power Management
|
||||||
|
---------------------------
|
||||||
|
The IPW2100 supports the configuration of the Power Save Protocol
|
||||||
|
through a private wireless extension interface. The IPW2100 supports
|
||||||
|
the following different modes:
|
||||||
|
|
||||||
|
off No power management. Radio is always on.
|
||||||
|
on Automatic power management
|
||||||
|
1-5 Different levels of power management. The higher the
|
||||||
|
number the greater the power savings, but with an impact to
|
||||||
|
packet latencies.
|
||||||
|
|
||||||
|
Power management works by powering down the radio after a certain
|
||||||
|
interval of time has passed where no packets are passed through the
|
||||||
|
radio. Once powered down, the radio remains in that state for a given
|
||||||
|
period of time. For higher power savings, the interval between last
|
||||||
|
packet processed to sleep is shorter and the sleep period is longer.
|
||||||
|
|
||||||
|
When the radio is asleep, the access point sending data to the station
|
||||||
|
must buffer packets at the AP until the station wakes up and requests
|
||||||
|
any buffered packets. If you have an AP that does not correctly support
|
||||||
|
the PSP protocol you may experience packet loss or very poor performance
|
||||||
|
while power management is enabled. If this is the case, you will need
|
||||||
|
to try and find a firmware update for your AP, or disable power
|
||||||
|
management (via `iwconfig eth1 power off`)
|
||||||
|
|
||||||
|
To configure the power level on the IPW2100 you use a combination of
|
||||||
|
iwconfig and iwpriv. iwconfig is used to turn power management on, off,
|
||||||
|
and set it to auto.
|
||||||
|
|
||||||
|
iwconfig eth1 power off Disables radio power down
|
||||||
|
iwconfig eth1 power on Enables radio power management to
|
||||||
|
last set level (defaults to AUTO)
|
||||||
|
iwpriv eth1 set_power 0 Sets power level to AUTO and enables
|
||||||
|
power management if not previously
|
||||||
|
enabled.
|
||||||
|
iwpriv eth1 set_power 1-5 Set the power level as specified,
|
||||||
|
enabling power management if not
|
||||||
|
previously enabled.
|
||||||
|
|
||||||
|
You can view the current power level setting via:
|
||||||
|
|
||||||
|
iwpriv eth1 get_power
|
||||||
|
|
||||||
|
It will return the current period or timeout that is configured as a string
|
||||||
|
in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of
|
||||||
|
time after packet processing), yyyy is the period to sleep (amount of time to
|
||||||
|
wait before powering the radio and querying the access point for buffered
|
||||||
|
packets), and z is the 'power level'. If power management is turned off the
|
||||||
|
xxxx/yyyy will be replaced with 'off' -- the level reported will be the active
|
||||||
|
level if `iwconfig eth1 power on` is invoked.
|
||||||
|
|
||||||
|
|
||||||
|
===========================
|
||||||
|
7. Support
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
For general development information and support,
|
||||||
|
go to:
|
||||||
|
|
||||||
|
http://ipw2100.sf.net/
|
||||||
|
|
||||||
|
The ipw2100 1.1.0 driver and firmware can be downloaded from:
|
||||||
|
|
||||||
|
http://support.intel.com
|
||||||
|
|
||||||
|
For installation support on the ipw2100 1.1.0 driver on Linux kernels
|
||||||
|
2.6.8 or greater, email support is available from:
|
||||||
|
|
||||||
|
http://supportmail.intel.com
|
||||||
|
|
||||||
|
===========================
|
||||||
|
8. 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.
|
||||||
|
|
||||||
|
License Contact Information:
|
||||||
|
James P. Ketrenos <ipw2100-admin@linux.intel.com>
|
||||||
|
Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
|
||||||
|
|
|
@ -137,6 +137,59 @@ config PCMCIA_RAYCS
|
||||||
comment "Wireless 802.11b ISA/PCI cards support"
|
comment "Wireless 802.11b ISA/PCI cards support"
|
||||||
depends on NET_RADIO && (ISA || PCI || PPC_PMAC || PCMCIA)
|
depends on NET_RADIO && (ISA || PCI || PPC_PMAC || PCMCIA)
|
||||||
|
|
||||||
|
config IPW2100
|
||||||
|
tristate "Intel PRO/Wireless 2100 Network Connection"
|
||||||
|
depends on NET_RADIO && PCI && IEEE80211
|
||||||
|
select FW_LOADER
|
||||||
|
---help---
|
||||||
|
A driver for the Intel PRO/Wireless 2100 Network
|
||||||
|
Connection 802.11b wireless network adapter.
|
||||||
|
|
||||||
|
See <file:Documentation/networking/README.ipw2100> for information on
|
||||||
|
the capabilities currently enabled in this driver and for tips
|
||||||
|
for debugging issues and problems.
|
||||||
|
|
||||||
|
In order to use this driver, you will need a firmware image for it.
|
||||||
|
You can obtain the firmware from
|
||||||
|
<http://ipw2100.sf.net/>. Once you have the firmware image, you
|
||||||
|
will need to place it in /etc/firmware.
|
||||||
|
|
||||||
|
You will also very likely need the Wireless Tools in order to
|
||||||
|
configure your card:
|
||||||
|
|
||||||
|
<http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html>.
|
||||||
|
|
||||||
|
If you want to compile the driver as a module ( = code which can be
|
||||||
|
inserted in and remvoed from the running kernel whenever you want),
|
||||||
|
say M here and read <file:Documentation/modules.txt>. The module
|
||||||
|
will be called ipw2100.ko.
|
||||||
|
|
||||||
|
config IPW2100_PROMISC
|
||||||
|
bool "Enable promiscuous mode"
|
||||||
|
depends on IPW2100
|
||||||
|
---help---
|
||||||
|
Enables promiscuous/monitor mode support for the ipw2100 driver.
|
||||||
|
With this feature compiled into the driver, you can switch to
|
||||||
|
promiscuous mode via the Wireless Tool's Monitor mode. While in this
|
||||||
|
mode, no packets can be sent.
|
||||||
|
|
||||||
|
config IPW_DEBUG
|
||||||
|
bool "Enable full debugging output in IPW2100 module."
|
||||||
|
depends on IPW2100
|
||||||
|
---help---
|
||||||
|
This option will enable debug tracing output for the IPW2100.
|
||||||
|
|
||||||
|
This will result in the kernel module being ~60k larger. You can
|
||||||
|
control which debug output is sent to the kernel log by setting the
|
||||||
|
value in
|
||||||
|
|
||||||
|
/sys/bus/pci/drivers/ipw2100/debug_level
|
||||||
|
|
||||||
|
This entry will only exist if this option is enabled.
|
||||||
|
|
||||||
|
If you are not trying to debug or develop the IPW2100 driver, you
|
||||||
|
most likely want to say N here.
|
||||||
|
|
||||||
config AIRO
|
config AIRO
|
||||||
tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
|
tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
|
||||||
depends on NET_RADIO && ISA && (PCI || BROKEN)
|
depends on NET_RADIO && ISA && (PCI || BROKEN)
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
# Makefile for the Linux Wireless network device drivers.
|
# Makefile for the Linux Wireless network device drivers.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
obj-$(CONFIG_IPW2100) += ipw2100.o
|
||||||
|
|
||||||
obj-$(CONFIG_STRIP) += strip.o
|
obj-$(CONFIG_STRIP) += strip.o
|
||||||
obj-$(CONFIG_ARLAN) += arlan.o
|
obj-$(CONFIG_ARLAN) += arlan.o
|
||||||
|
|
||||||
|
|
8649
drivers/net/wireless/ipw2100.c
Normal file
8649
drivers/net/wireless/ipw2100.c
Normal file
File diff suppressed because it is too large
Load diff
1278
drivers/net/wireless/ipw2100.h
Normal file
1278
drivers/net/wireless/ipw2100.h
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue