README.ipw2100
1
2Intel(R) PRO/Wireless 2100 Driver for Linux in support of:
3
4Intel(R) PRO/Wireless 2100 Network Connection
5
6Copyright (C) 2003-2006, Intel Corporation
7
8README.ipw2100
9
10Version: git-1.1.5
11Date : January 25, 2006
12
13Index
14-----------------------------------------------
150. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
161. Introduction
172. Release git-1.1.5 Current Features
183. Command Line Parameters
194. Sysfs Helper Files
205. Radio Kill Switch
216. Dynamic Firmware
227. Power Management
238. Support
249. License
25
26
270. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
28-----------------------------------------------
29
30Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
31
32Intel wireless LAN adapters are engineered, manufactured, tested, and
33quality checked to ensure that they meet all necessary local and
34governmental regulatory agency requirements for the regions that they
35are designated and/or marked to ship into. Since wireless LANs are
36generally unlicensed devices that share spectrum with radars,
37satellites, and other licensed and unlicensed devices, it is sometimes
38necessary to dynamically detect, avoid, and limit usage to avoid
39interference with these devices. In many instances Intel is required to
40provide test data to prove regional and local compliance to regional and
41governmental regulations before certification or approval to use the
42product is granted. Intel's wireless LAN's EEPROM, firmware, and
43software driver are designed to carefully control parameters that affect
44radio operation and to ensure electromagnetic compliance (EMC). These
45parameters include, without limitation, RF power, spectrum usage,
46channel scanning, and human exposure.
47
48For these reasons Intel cannot permit any manipulation by third parties
49of the software provided in binary format with the wireless WLAN
50adapters (e.g., the EEPROM and firmware). Furthermore, if you use any
51patches, utilities, or code with the Intel wireless LAN adapters that
52have been manipulated by an unauthorized party (i.e., patches,
53utilities, or code (including open source code modifications) which have
54not been validated by Intel), (i) you will be solely responsible for
55ensuring the regulatory compliance of the products, (ii) Intel will bear
56no liability, under any theory of liability for any issues associated
57with the modified products, including without limitation, claims under
58the warranty and/or issues arising from regulatory non-compliance, and
59(iii) Intel will not provide or be required to assist in providing
60support to any third parties for such modified products.
61
62Note: Many regulatory agencies consider Wireless LAN adapters to be
63modules, and accordingly, condition system-level regulatory approval
64upon receipt and review of test data documenting that the antennas and
65system configuration do not cause the EMC and radio operation to be
66non-compliant.
67
68The drivers available for download from SourceForge are provided as a
69part of a development project. Conformance to local regulatory
70requirements is the responsibility of the individual developer. As
71such, if you are interested in deploying or shipping a driver as part of
72solution intended to be used for purposes other than development, please
73obtain a tested driver from Intel Customer Support at:
74
75http://www.intel.com/support/wireless/sb/CS-006408.htm
76
771. Introduction
78-----------------------------------------------
79
80This document provides a brief overview of the features supported by the
81IPW2100 driver project. The main project website, where the latest
82development version of the driver can be found, is:
83
84 http://ipw2100.sourceforge.net
85
86There you can find the not only the latest releases, but also information about
87potential fixes and patches, as well as links to the development mailing list
88for the driver project.
89
90
912. Release git-1.1.5 Current Supported Features
92-----------------------------------------------
93- Managed (BSS) and Ad-Hoc (IBSS)
94- WEP (shared key and open)
95- Wireless Tools support
96- 802.1x (tested with XSupplicant 1.0.1)
97
98Enabled (but not supported) features:
99- Monitor/RFMon mode
100- WPA/WPA2
101
102The distinction between officially supported and enabled is a reflection
103on the amount of validation and interoperability testing that has been
104performed on a given feature.
105
106
1073. Command Line Parameters
108-----------------------------------------------
109
110If the driver is built as a module, the following optional parameters are used
111by entering them on the command line with the modprobe command using this
112syntax:
113
114 modprobe ipw2100 [<option>=<VAL1><,VAL2>...]
115
116For example, to disable the radio on driver loading, enter:
117
118 modprobe ipw2100 disable=1
119
120The ipw2100 driver supports the following module parameters:
121
122Name Value Example:
123debug 0x0-0xffffffff debug=1024
124mode 0,1,2 mode=1 /* AdHoc */
125channel int channel=3 /* Only valid in AdHoc or Monitor */
126associate boolean associate=0 /* Do NOT auto associate */
127disable boolean disable=1 /* Do not power the HW */
128
129
1304. Sysfs Helper Files
131---------------------------
132-----------------------------------------------
133
134There are several ways to control the behavior of the driver. Many of the
135general capabilities are exposed through the Wireless Tools (iwconfig). There
136are a few capabilities that are exposed through entries in the Linux Sysfs.
137
138
139----- Driver Level ------
140For the driver level files, look in /sys/bus/pci/drivers/ipw2100/
141
142 debug_level
143
144 This controls the same global as the 'debug' module parameter. For
145 information on the various debugging levels available, run the 'dvals'
146 script found in the driver source directory.
147
148 NOTE: 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn
149 on.
150
151----- Device Level ------
152For the device level files look in
153
154 /sys/bus/pci/drivers/ipw2100/{PCI-ID}/
155
156For example:
157 /sys/bus/pci/drivers/ipw2100/0000:02:01.0
158
159For the device level files, see /sys/bus/pci/drivers/ipw2100:
160
161 rf_kill
162 read -
163 0 = RF kill not enabled (radio on)
164 1 = SW based RF kill active (radio off)
165 2 = HW based RF kill active (radio off)
166 3 = Both HW and SW RF kill active (radio off)
167 write -
168 0 = If SW based RF kill active, turn the radio back on
169 1 = If radio is on, activate SW based RF kill
170
171 NOTE: If you enable the SW based RF kill and then toggle the HW
172 based RF kill from ON -> OFF -> ON, the radio will NOT come back on
173
174
1755. Radio Kill Switch
176-----------------------------------------------
177Most laptops provide the ability for the user to physically disable the radio.
178Some vendors have implemented this as a physical switch that requires no
179software to turn the radio off and on. On other laptops, however, the switch
180is controlled through a button being pressed and a software driver then making
181calls to turn the radio off and on. This is referred to as a "software based
182RF kill switch"
183
184See the Sysfs helper file 'rf_kill' for determining the state of the RF switch
185on your system.
186
187
1886. Dynamic Firmware
189-----------------------------------------------
190As the firmware is licensed under a restricted use license, it can not be
191included within the kernel sources. To enable the IPW2100 you will need a
192firmware image to load into the wireless NIC's processors.
193
194You can obtain these images from <http://ipw2100.sf.net/firmware.php>.
195
196See INSTALL for instructions on installing the firmware.
197
198
1997. Power Management
200-----------------------------------------------
201The IPW2100 supports the configuration of the Power Save Protocol
202through a private wireless extension interface. The IPW2100 supports
203the following different modes:
204
205 off No power management. Radio is always on.
206 on Automatic power management
207 1-5 Different levels of power management. The higher the
208 number the greater the power savings, but with an impact to
209 packet latencies.
210
211Power management works by powering down the radio after a certain
212interval of time has passed where no packets are passed through the
213radio. Once powered down, the radio remains in that state for a given
214period of time. For higher power savings, the interval between last
215packet processed to sleep is shorter and the sleep period is longer.
216
217When the radio is asleep, the access point sending data to the station
218must buffer packets at the AP until the station wakes up and requests
219any buffered packets. If you have an AP that does not correctly support
220the PSP protocol you may experience packet loss or very poor performance
221while power management is enabled. If this is the case, you will need
222to try and find a firmware update for your AP, or disable power
223management (via `iwconfig eth1 power off`)
224
225To configure the power level on the IPW2100 you use a combination of
226iwconfig and iwpriv. iwconfig is used to turn power management on, off,
227and set it to auto.
228
229 iwconfig eth1 power off Disables radio power down
230 iwconfig eth1 power on Enables radio power management to
231 last set level (defaults to AUTO)
232 iwpriv eth1 set_power 0 Sets power level to AUTO and enables
233 power management if not previously
234 enabled.
235 iwpriv eth1 set_power 1-5 Set the power level as specified,
236 enabling power management if not
237 previously enabled.
238
239You can view the current power level setting via:
240
241 iwpriv eth1 get_power
242
243It will return the current period or timeout that is configured as a string
244in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of
245time after packet processing), yyyy is the period to sleep (amount of time to
246wait before powering the radio and querying the access point for buffered
247packets), and z is the 'power level'. If power management is turned off the
248xxxx/yyyy will be replaced with 'off' -- the level reported will be the active
249level if `iwconfig eth1 power on` is invoked.
250
251
2528. Support
253-----------------------------------------------
254
255For general development information and support,
256go to:
257
258 http://ipw2100.sf.net/
259
260The ipw2100 1.1.0 driver and firmware can be downloaded from:
261
262 http://support.intel.com
263
264For installation support on the ipw2100 1.1.0 driver on Linux kernels
2652.6.8 or greater, email support is available from:
266
267 http://supportmail.intel.com
268
2699. License
270-----------------------------------------------
271
272 Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
273
274 This program is free software; you can redistribute it and/or modify it
275 under the terms of the GNU General Public License (version 2) as
276 published by the Free Software Foundation.
277
278 This program is distributed in the hope that it will be useful, but WITHOUT
279 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
280 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
281 more details.
282
283 You should have received a copy of the GNU General Public License along with
284 this program; if not, write to the Free Software Foundation, Inc., 59
285 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
286
287 The full GNU General Public License is included in this distribution in the
288 file called LICENSE.
289
290 License Contact Information:
291 James P. Ketrenos <ipw2100-admin@linux.intel.com>
292 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
293
294
README.ipw2200
1
2Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of:
3
4Intel(R) PRO/Wireless 2200BG Network Connection
5Intel(R) PRO/Wireless 2915ABG Network Connection
6
7Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R)
8PRO/Wireless 2200BG Driver for Linux is a unified driver that works on
9both hardware adapters listed above. In this document the Intel(R)
10PRO/Wireless 2915ABG Driver for Linux will be used to reference the
11unified driver.
12
13Copyright (C) 2004-2006, Intel Corporation
14
15README.ipw2200
16
17Version: 1.1.2
18Date : March 30, 2006
19
20
21Index
22-----------------------------------------------
230. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
241. Introduction
251.1. Overview of features
261.2. Module parameters
271.3. Wireless Extension Private Methods
281.4. Sysfs Helper Files
291.5. Supported channels
302. Ad-Hoc Networking
313. Interacting with Wireless Tools
323.1. iwconfig mode
333.2. iwconfig sens
344. About the Version Numbers
355. Firmware installation
366. Support
377. License
38
39
400. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
41-----------------------------------------------
42
43Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
44
45Intel wireless LAN adapters are engineered, manufactured, tested, and
46quality checked to ensure that they meet all necessary local and
47governmental regulatory agency requirements for the regions that they
48are designated and/or marked to ship into. Since wireless LANs are
49generally unlicensed devices that share spectrum with radars,
50satellites, and other licensed and unlicensed devices, it is sometimes
51necessary to dynamically detect, avoid, and limit usage to avoid
52interference with these devices. In many instances Intel is required to
53provide test data to prove regional and local compliance to regional and
54governmental regulations before certification or approval to use the
55product is granted. Intel's wireless LAN's EEPROM, firmware, and
56software driver are designed to carefully control parameters that affect
57radio operation and to ensure electromagnetic compliance (EMC). These
58parameters include, without limitation, RF power, spectrum usage,
59channel scanning, and human exposure.
60
61For these reasons Intel cannot permit any manipulation by third parties
62of the software provided in binary format with the wireless WLAN
63adapters (e.g., the EEPROM and firmware). Furthermore, if you use any
64patches, utilities, or code with the Intel wireless LAN adapters that
65have been manipulated by an unauthorized party (i.e., patches,
66utilities, or code (including open source code modifications) which have
67not been validated by Intel), (i) you will be solely responsible for
68ensuring the regulatory compliance of the products, (ii) Intel will bear
69no liability, under any theory of liability for any issues associated
70with the modified products, including without limitation, claims under
71the warranty and/or issues arising from regulatory non-compliance, and
72(iii) Intel will not provide or be required to assist in providing
73support to any third parties for such modified products.
74
75Note: Many regulatory agencies consider Wireless LAN adapters to be
76modules, and accordingly, condition system-level regulatory approval
77upon receipt and review of test data documenting that the antennas and
78system configuration do not cause the EMC and radio operation to be
79non-compliant.
80
81The drivers available for download from SourceForge are provided as a
82part of a development project. Conformance to local regulatory
83requirements is the responsibility of the individual developer. As
84such, if you are interested in deploying or shipping a driver as part of
85solution intended to be used for purposes other than development, please
86obtain a tested driver from Intel Customer Support at:
87
88http://support.intel.com
89
90
911. Introduction
92-----------------------------------------------
93The following sections attempt to provide a brief introduction to using
94the Intel(R) PRO/Wireless 2915ABG Driver for Linux.
95
96This document is not meant to be a comprehensive manual on
97understanding or using wireless technologies, but should be sufficient
98to get you moving without wires on Linux.
99
100For information on building and installing the driver, see the INSTALL
101file.
102
103
1041.1. Overview of Features
105-----------------------------------------------
106The current release (1.1.2) supports the following features:
107
108+ BSS mode (Infrastructure, Managed)
109+ IBSS mode (Ad-Hoc)
110+ WEP (OPEN and SHARED KEY mode)
111+ 802.1x EAP via wpa_supplicant and xsupplicant
112+ Wireless Extension support
113+ Full B and G rate support (2200 and 2915)
114+ Full A rate support (2915 only)
115+ Transmit power control
116+ S state support (ACPI suspend/resume)
117
118The following features are currently enabled, but not officially
119supported:
120
121+ WPA
122+ long/short preamble support
123+ Monitor mode (aka RFMon)
124
125The distinction between officially supported and enabled is a reflection
126on the amount of validation and interoperability testing that has been
127performed on a given feature.
128
129
130
1311.2. Command Line Parameters
132-----------------------------------------------
133
134Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless
1352915ABG Driver for Linux allows configuration options to be provided
136as module parameters. The most common way to specify a module parameter
137is via the command line.
138
139The general form is:
140
141% modprobe ipw2200 parameter=value
142
143Where the supported parameter are:
144
145 associate
146 Set to 0 to disable the auto scan-and-associate functionality of the
147 driver. If disabled, the driver will not attempt to scan
148 for and associate to a network until it has been configured with
149 one or more properties for the target network, for example configuring
150 the network SSID. Default is 0 (do not auto-associate)
151
152 Example: % modprobe ipw2200 associate=0
153
154 auto_create
155 Set to 0 to disable the auto creation of an Ad-Hoc network
156 matching the channel and network name parameters provided.
157 Default is 1.
158
159 channel
160 channel number for association. The normal method for setting
161 the channel would be to use the standard wireless tools
162 (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
163 to set this while debugging. Channel 0 means 'ANY'
164
165 debug
166 If using a debug build, this is used to control the amount of debug
167 info is logged. See the 'dvals' and 'load' script for more info on
168 how to use this (the dvals and load scripts are provided as part
169 of the ipw2200 development snapshot releases available from the
170 SourceForge project at http://ipw2200.sf.net)
171
172 led
173 Can be used to turn on experimental LED code.
174 0 = Off, 1 = On. Default is 1.
175
176 mode
177 Can be used to set the default mode of the adapter.
178 0 = Managed, 1 = Ad-Hoc, 2 = Monitor
179
180
1811.3. Wireless Extension Private Methods
182-----------------------------------------------
183
184As an interface designed to handle generic hardware, there are certain
185capabilities not exposed through the normal Wireless Tool interface. As
186such, a provision is provided for a driver to declare custom, or
187private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux
188defines several of these to configure various settings.
189
190The general form of using the private wireless methods is:
191
192 % iwpriv $IFNAME method parameters
193
194Where $IFNAME is the interface name the device is registered with
195(typically eth1, customized via one of the various network interface
196name managers, such as ifrename)
197
198The supported private methods are:
199
200 get_mode
201 Can be used to report out which IEEE mode the driver is
202 configured to support. Example:
203
204 % iwpriv eth1 get_mode
205 eth1 get_mode:802.11bg (6)
206
207 set_mode
208 Can be used to configure which IEEE mode the driver will
209 support.
210
211 Usage:
212 % iwpriv eth1 set_mode {mode}
213 Where {mode} is a number in the range 1-7:
214 1 802.11a (2915 only)
215 2 802.11b
216 3 802.11ab (2915 only)
217 4 802.11g
218 5 802.11ag (2915 only)
219 6 802.11bg
220 7 802.11abg (2915 only)
221
222 get_preamble
223 Can be used to report configuration of preamble length.
224
225 set_preamble
226 Can be used to set the configuration of preamble length:
227
228 Usage:
229 % iwpriv eth1 set_preamble {mode}
230 Where {mode} is one of:
231 1 Long preamble only
232 0 Auto (long or short based on connection)
233
234
2351.4. Sysfs Helper Files:
236-----------------------------------------------
237
238The Linux kernel provides a pseudo file system that can be used to
239access various components of the operating system. The Intel(R)
240PRO/Wireless 2915ABG Driver for Linux exposes several configuration
241parameters through this mechanism.
242
243An entry in the sysfs can support reading and/or writing. You can
244typically query the contents of a sysfs entry through the use of cat,
245and can set the contents via echo. For example:
246
247% cat /sys/bus/pci/drivers/ipw2200/debug_level
248
249Will report the current debug level of the driver's logging subsystem
250(only available if CONFIG_IPW2200_DEBUG was configured when the driver
251was built).
252
253You can set the debug level via:
254
255% echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level
256
257Where $VALUE would be a number in the case of this sysfs entry. The
258input to sysfs files does not have to be a number. For example, the
259firmware loader used by hotplug utilizes sysfs entries for transferring
260the firmware image from user space into the driver.
261
262The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries
263at two levels -- driver level, which apply to all instances of the driver
264(in the event that there are more than one device installed) and device
265level, which applies only to the single specific instance.
266
267
2681.4.1 Driver Level Sysfs Helper Files
269-----------------------------------------------
270
271For the driver level files, look in /sys/bus/pci/drivers/ipw2200/
272
273 debug_level
274
275 This controls the same global as the 'debug' module parameter
276
277
278
2791.4.2 Device Level Sysfs Helper Files
280-----------------------------------------------
281
282For the device level files, look in
283
284 /sys/bus/pci/drivers/ipw2200/{PCI-ID}/
285
286For example:
287 /sys/bus/pci/drivers/ipw2200/0000:02:01.0
288
289For the device level files, see /sys/bus/pci/drivers/ipw2200:
290
291 rf_kill
292 read -
293 0 = RF kill not enabled (radio on)
294 1 = SW based RF kill active (radio off)
295 2 = HW based RF kill active (radio off)
296 3 = Both HW and SW RF kill active (radio off)
297 write -
298 0 = If SW based RF kill active, turn the radio back on
299 1 = If radio is on, activate SW based RF kill
300
301 NOTE: If you enable the SW based RF kill and then toggle the HW
302 based RF kill from ON -> OFF -> ON, the radio will NOT come back on
303
304 ucode
305 read-only access to the ucode version number
306
307 led
308 read -
309 0 = LED code disabled
310 1 = LED code enabled
311 write -
312 0 = Disable LED code
313 1 = Enable LED code
314
315 NOTE: The LED code has been reported to hang some systems when
316 running ifconfig and is therefore disabled by default.
317
318
3191.5. Supported channels
320-----------------------------------------------
321
322Upon loading the Intel(R) PRO/Wireless 2915ABG Driver for Linux, a
323message stating the detected geography code and the number of 802.11
324channels supported by the card will be displayed in the log.
325
326The geography code corresponds to a regulatory domain as shown in the
327table below.
328
329 Supported channels
330Code Geography 802.11bg 802.11a
331
332--- Restricted 11 0
333ZZF Custom US/Canada 11 8
334ZZD Rest of World 13 0
335ZZA Custom USA & Europe & High 11 13
336ZZB Custom NA & Europe 11 13
337ZZC Custom Japan 11 4
338ZZM Custom 11 0
339ZZE Europe 13 19
340ZZJ Custom Japan 14 4
341ZZR Rest of World 14 0
342ZZH High Band 13 4
343ZZG Custom Europe 13 4
344ZZK Europe 13 24
345ZZL Europe 11 13
346
347
3482. Ad-Hoc Networking
349-----------------------------------------------
350
351When using a device in an Ad-Hoc network, it is useful to understand the
352sequence and requirements for the driver to be able to create, join, or
353merge networks.
354
355The following attempts to provide enough information so that you can
356have a consistent experience while using the driver as a member of an
357Ad-Hoc network.
358
3592.1. Joining an Ad-Hoc Network
360-----------------------------------------------
361
362The easiest way to get onto an Ad-Hoc network is to join one that
363already exists.
364
3652.2. Creating an Ad-Hoc Network
366-----------------------------------------------
367
368An Ad-Hoc networks is created using the syntax of the Wireless tool.
369
370For Example:
371iwconfig eth1 mode ad-hoc essid testing channel 2
372
3732.3. Merging Ad-Hoc Networks
374-----------------------------------------------
375
376
3773. Interaction with Wireless Tools
378-----------------------------------------------
379
3803.1 iwconfig mode
381-----------------------------------------------
382
383When configuring the mode of the adapter, all run-time configured parameters
384are reset to the value used when the module was loaded. This includes
385channels, rates, ESSID, etc.
386
3873.2 iwconfig sens
388-----------------------------------------------
389
390The 'iwconfig ethX sens XX' command will not set the signal sensitivity
391threshold, as described in iwconfig documentation, but rather the number
392of consecutive missed beacons that will trigger handover, i.e. roaming
393to another access point. At the same time, it will set the disassociation
394threshold to 3 times the given value.
395
396
3974. About the Version Numbers
398-----------------------------------------------
399
400Due to the nature of open source development projects, there are
401frequently changes being incorporated that have not gone through
402a complete validation process. These changes are incorporated into
403development snapshot releases.
404
405Releases are numbered with a three level scheme:
406
407 major.minor.development
408
409Any version where the 'development' portion is 0 (for example
4101.0.0, 1.1.0, etc.) indicates a stable version that will be made
411available for kernel inclusion.
412
413Any version where the 'development' portion is not a 0 (for
414example 1.0.1, 1.1.5, etc.) indicates a development version that is
415being made available for testing and cutting edge users. The stability
416and functionality of the development releases are not know. We make
417efforts to try and keep all snapshots reasonably stable, but due to the
418frequency of their release, and the desire to get those releases
419available as quickly as possible, unknown anomalies should be expected.
420
421The major version number will be incremented when significant changes
422are made to the driver. Currently, there are no major changes planned.
423
4245. Firmware installation
425----------------------------------------------
426
427The driver requires a firmware image, download it and extract the
428files under /lib/firmware (or wherever your hotplug's firmware.agent
429will look for firmware files)
430
431The firmware can be downloaded from the following URL:
432
433 http://ipw2200.sf.net/
434
435
4366. Support
437-----------------------------------------------
438
439For direct support of the 1.0.0 version, you can contact
440http://supportmail.intel.com, or you can use the open source project
441support.
442
443For general information and support, go to:
444
445 http://ipw2200.sf.net/
446
447
4487. License
449-----------------------------------------------
450
451 Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
452
453 This program is free software; you can redistribute it and/or modify it
454 under the terms of the GNU General Public License version 2 as
455 published by the Free Software Foundation.
456
457 This program is distributed in the hope that it will be useful, but WITHOUT
458 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
459 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
460 more details.
461
462 You should have received a copy of the GNU General Public License along with
463 this program; if not, write to the Free Software Foundation, Inc., 59
464 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
465
466 The full GNU General Public License is included in this distribution in the
467 file called LICENSE.
468
469 Contact Information:
470 James P. Ketrenos <ipw2100-admin@linux.intel.com>
471 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
472
473
README.sb1000
1sb1000 is a module network device driver for the General Instrument (also known
2as NextLevel) SURFboard1000 internal cable modem board. This is an ISA card
3which is used by a number of cable TV companies to provide cable modem access.
4It's a one-way downstream-only cable modem, meaning that your upstream net link
5is provided by your regular phone modem.
6
7This driver was written by Franco Venturi <fventuri@mediaone.net>. He deserves
8a great deal of thanks for this wonderful piece of code!
9
10-----------------------------------------------------------------------------
11
12Support for this device is now a part of the standard Linux kernel. The
13driver source code file is drivers/net/sb1000.c. In addition to this
14you will need:
15
161.) The "cmconfig" program. This is a utility which supplements "ifconfig"
17to configure the cable modem and network interface (usually called "cm0");
18and
19
202.) Several PPP scripts which live in /etc/ppp to make connecting via your
21cable modem easy.
22
23 These utilities can be obtained from:
24
25 http://www.jacksonville.net/~fventuri/
26
27 in Franco's original source code distribution .tar.gz file. Support for
28 the sb1000 driver can be found at:
29
30 http://web.archive.org/web/*/http://home.adelphia.net/~siglercm/sb1000.html
31 http://web.archive.org/web/*/http://linuxpower.cx/~cable/
32
33 along with these utilities.
34
353.) The standard isapnp tools. These are necessary to configure your SB1000
36card at boot time (or afterwards by hand) since it's a PnP card.
37
38 If you don't have these installed as a standard part of your Linux
39 distribution, you can find them at:
40
41 http://www.roestock.demon.co.uk/isapnptools/
42
43 or check your Linux distribution binary CD or their web site. For help with
44 isapnp, pnpdump, or /etc/isapnp.conf, go to:
45
46 http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
47
48-----------------------------------------------------------------------------
49
50To make the SB1000 card work, follow these steps:
51
521.) Run `make config', or `make menuconfig', or `make xconfig', whichever
53you prefer, in the top kernel tree directory to set up your kernel
54configuration. Make sure to say "Y" to "Prompt for development drivers"
55and to say "M" to the sb1000 driver. Also say "Y" or "M" to all the standard
56networking questions to get TCP/IP and PPP networking support.
57
582.) *BEFORE* you build the kernel, edit drivers/net/sb1000.c. Make sure
59to redefine the value of READ_DATA_PORT to match the I/O address used
60by isapnp to access your PnP cards. This is the value of READPORT in
61/etc/isapnp.conf or given by the output of pnpdump.
62
633.) Build and install the kernel and modules as usual.
64
654.) Boot your new kernel following the usual procedures.
66
675.) Set up to configure the new SB1000 PnP card by capturing the output
68of "pnpdump" to a file and editing this file to set the correct I/O ports,
69IRQ, and DMA settings for all your PnP cards. Make sure none of the settings
70conflict with one another. Then test this configuration by running the
71"isapnp" command with your new config file as the input. Check for
72errors and fix as necessary. (As an aside, I use I/O ports 0x110 and
730x310 and IRQ 11 for my SB1000 card and these work well for me. YMMV.)
74Then save the finished config file as /etc/isapnp.conf for proper configuration
75on subsequent reboots.
76
776.) Download the original file sb1000-1.1.2.tar.gz from Franco's site or one of
78the others referenced above. As root, unpack it into a temporary directory and
79do a `make cmconfig' and then `install -c cmconfig /usr/local/sbin'. Don't do
80`make install' because it expects to find all the utilities built and ready for
81installation, not just cmconfig.
82
837.) As root, copy all the files under the ppp/ subdirectory in Franco's
84tar file into /etc/ppp, being careful not to overwrite any files that are
85already in there. Then modify ppp@gi-on to set the correct login name,
86phone number, and frequency for the cable modem. Also edit pap-secrets
87to specify your login name and password and any site-specific information
88you need.
89
908.) Be sure to modify /etc/ppp/firewall to use ipchains instead of
91the older ipfwadm commands from the 2.0.x kernels. There's a neat utility to
92convert ipfwadm commands to ipchains commands:
93
94 http://users.dhp.com/~whisper/ipfwadm2ipchains/
95
96You may also wish to modify the firewall script to implement a different
97firewalling scheme.
98
999.) Start the PPP connection via the script /etc/ppp/ppp@gi-on. You must be
100root to do this. It's better to use a utility like sudo to execute
101frequently used commands like this with root permissions if possible. If you
102connect successfully the cable modem interface will come up and you'll see a
103driver message like this at the console:
104
105 cm0: sb1000 at (0x110,0x310), csn 1, S/N 0x2a0d16d8, IRQ 11.
106 sb1000.c:v1.1.2 6/01/98 (fventuri@mediaone.net)
107
108The "ifconfig" command should show two new interfaces, ppp0 and cm0.
109The command "cmconfig cm0" will give you information about the cable modem
110interface.
111
11210.) Try pinging a site via `ping -c 5 www.yahoo.com', for example. You should
113see packets received.
114
11511.) If you can't get site names (like www.yahoo.com) to resolve into
116IP addresses (like 204.71.200.67), be sure your /etc/resolv.conf file
117has no syntax errors and has the right nameserver IP addresses in it.
118If this doesn't help, try something like `ping -c 5 204.71.200.67' to
119see if the networking is running but the DNS resolution is where the
120problem lies.
121
12212.) If you still have problems, go to the support web sites mentioned above
123and read the information and documentation there.
124
125-----------------------------------------------------------------------------
126
127Common problems:
128
1291.) Packets go out on the ppp0 interface but don't come back on the cm0
130interface. It looks like I'm connected but I can't even ping any
131numerical IP addresses. (This happens predominantly on Debian systems due
132to a default boot-time configuration script.)
133
134Solution -- As root `echo 0 > /proc/sys/net/ipv4/conf/cm0/rp_filter' so it
135can share the same IP address as the ppp0 interface. Note that this
136command should probably be added to the /etc/ppp/cablemodem script
137*right*between* the "/sbin/ifconfig" and "/sbin/cmconfig" commands.
138You may need to do this to /proc/sys/net/ipv4/conf/ppp0/rp_filter as well.
139If you do this to /proc/sys/net/ipv4/conf/default/rp_filter on each reboot
140(in rc.local or some such) then any interfaces can share the same IP
141addresses.
142
1432.) I get "unresolved symbol" error messages on executing `insmod sb1000.o'.
144
145Solution -- You probably have a non-matching kernel source tree and
146/usr/include/linux and /usr/include/asm header files. Make sure you
147install the correct versions of the header files in these two directories.
148Then rebuild and reinstall the kernel.
149
1503.) When isapnp runs it reports an error, and my SB1000 card isn't working.
151
152Solution -- There's a problem with later versions of isapnp using the "(CHECK)"
153option in the lines that allocate the two I/O addresses for the SB1000 card.
154This first popped up on RH 6.0. Delete "(CHECK)" for the SB1000 I/O addresses.
155Make sure they don't conflict with any other pieces of hardware first! Then
156rerun isapnp and go from there.
157
1584.) I can't execute the /etc/ppp/ppp@gi-on file.
159
160Solution -- As root do `chmod ug+x /etc/ppp/ppp@gi-on'.
161
1625.) The firewall script isn't working (with 2.2.x and higher kernels).
163
164Solution -- Use the ipfwadm2ipchains script referenced above to convert the
165/etc/ppp/firewall script from the deprecated ipfwadm commands to ipchains.
166
1676.) I'm getting *tons* of firewall deny messages in the /var/kern.log,
168/var/messages, and/or /var/syslog files, and they're filling up my /var
169partition!!!
170
171Solution -- First, tell your ISP that you're receiving DoS (Denial of Service)
172and/or portscanning (UDP connection attempts) attacks! Look over the deny
173messages to figure out what the attack is and where it's coming from. Next,
174edit /etc/ppp/cablemodem and make sure the ",nobroadcast" option is turned on
175to the "cmconfig" command (uncomment that line). If you're not receiving these
176denied packets on your broadcast interface (IP address xxx.yyy.zzz.255
177typically), then someone is attacking your machine in particular. Be careful
178out there....
179
1807.) Everything seems to work fine but my computer locks up after a while
181(and typically during a lengthy download through the cable modem)!
182
183Solution -- You may need to add a short delay in the driver to 'slow down' the
184SURFboard because your PC might not be able to keep up with the transfer rate
185of the SB1000. To do this, it's probably best to download Franco's
186sb1000-1.1.2.tar.gz archive and build and install sb1000.o manually. You'll
187want to edit the 'Makefile' and look for the 'SB1000_DELAY'
188define. Uncomment those 'CFLAGS' lines (and comment out the default ones)
189and try setting the delay to something like 60 microseconds with:
190'-DSB1000_DELAY=60'. Then do `make' and as root `make install' and try
191it out. If it still doesn't work or you like playing with the driver, you may
192try other numbers. Remember though that the higher the delay, the slower the
193driver (which slows down the rest of the PC too when it is actively
194used). Thanks to Ed Daiga for this tip!
195
196-----------------------------------------------------------------------------
197
198Credits: This README came from Franco Venturi's original README file which is
199still supplied with his driver .tar.gz archive. I and all other sb1000 users
200owe Franco a tremendous "Thank you!" Additional thanks goes to Carl Patten
201and Ralph Bonnell who are now managing the Linux SB1000 web site, and to
202the SB1000 users who reported and helped debug the common problems listed
203above.
204
205
206 Clemmitt Sigler
207 csigler@vt.edu
208