CLI Home
Archive
Articles

Fedora Core 5 and the IPW2200 Wireless Driver

Bill Moss
Updated MAY 24, 2006

May 24, 2006: kernel-2.6.16-1.2122_FC5, ipw2200-1.1.2, ieee80211-1.1.13, firmware-3.0

The FC5 kernel 2.6.16-1.2122_FC5 includes stable version 1.0.8 of the ipw2200 driver. Because the firmware is proprietary, you will have to install version 2.4 yourself if you have not already done so.

  Download ipw2200-fw-2.4.tgz from http://ipw2200.sourceforge.net/firmware.php
  unarchive in /lib/firmware
  
  or to install all firmware versions
  
  # rpm -ihv http://rpm.livna.org/fedora/5/i386/
      livna-release-5-4.noarch.rpm
  # yum install ipw2200-firmware

Make sure you install the correct firmware version. The firmware web site links to the firmware by ipw2200 version. The remainder of this section shows you how to manually install the latest version of the ipw2200 driver and the ieee80211 subsystem.

Install firmware version 3.0 and then follow these steps.

Install kernel-devel from FC5 updates.

If you previously installed the ipw2200-1.1.1 kernel module and the ieee80211-1.1.12 modules,

  # cd ipw2200-1.1.1 (installation directory)
  # make uninstall
  # cd ieee80211-1.1.12 (installation directory)
  # make uninstall

Make sure the header for the latest version of the wireless-tools is used.

  # cd /usr/include/linux
  # rm wireless.h
  # ln -s ../wireless.h .

Download and install the ieee80211 subsystem.

  Download ieee80211-1.1.13.tgz from http://ieee80211.sf.net and unarchive
  # cd ieee80211-1.1.13
  # make (yes to removing files and commenting out definitions)
  # make install

The ieee80211 modules are installed in

  /lib/modules/2.6.16-1.2122_FC5/net/ieee80211

Note that this is not the same directory that the original kernel modules were installed in.

The ieee80211 headers are installed in

  /lib/modules/2.6.16-1.2122_FC5/include/net

Now install the ipw2200-1.1.2 module for kernel 2.6.16-1.2122_FC5.

  Download ipw2200-1.1.2.tgz from http://ipw2200.sourceforge.net and unarchive
  # cd ipw2200-1.1.1
  # ./remove-old (yes to commenting out definitions)
  # make
  # make install
  # chmod 744 /lib/modules/2.6.16-1.2122_FC5/kernel/drivers/net/wireless/ipw2200.ko

Set module options.

  /etc/modprobe.conf 
  options ipw2200 hwcrypto=1

This ipw2200 option turns on hardware encryption. The default is off. With previous versions of ipw2200, users have reported firmware restarts and slow transfer rates when using hardware encryption. I did a quick test by transferring a 15 MB file by sftp. Transfer rates for a B access point were near the theoretical limit for both unload and download with no firmware restarts. With earlier versions, I was seeing multiple firmware restarts on download. Please test and report your results back to the list. Especially look at co-channel interference and performance when signal strength is low.

A FC5 bug causes eth0 to be randomly assigned rather than following the configuration files. This can play all kinds of havoc. A fix is in updates-testing.

  # yum --enablerepo=updates-testing install initscripts

Warning to NetworkManager Users. Version 1.1.2 of ipw2200 implements a scan completion event which NetworkManager currently does not handle. This can cause NetworkManager to fail to make a wireless connection. Comment out the following lines from ipw2200.c and rebuild.

      /* Send an empty event to user space.
      * We don't send the received data on the event because
      * it would require us to do complex transcoding, and
      * we want to minimise the work done in the irq handler
      * Use a request to extract the data.
      * Also, we generate this even for any scan, regardless
      * on how the scan was initiated. User space can just
      * sync on periodic scan to get fresh data...
      * Jean II */
/*    if (x->status == SCAN_COMPLETED_STATUS_COMPLETE) {
              union iwreq_data        wrqu;
              wrqu.data.length = 0;
              wrqu.data.flags = 0;
              wireless_send_event(priv->net_dev, SIOCGIWSCAN,
                      &wrqu, NULL);
      } */

March 8, 2006: kernel-2.6.15-1.1833_FC4.netdev.12

RPM repo setup information for Fedora netdev kernels can be found at

  http://people.redhat.com/linville/kernels/fedora-netdev/

and the rpms can be found at

  http://people.redhat.com/linville/kernels/fedora-netdev/4/
      rpms/i686/

These Fedora-based kernels incorporate most of the current upstream patches which touch the drivers/net/, net/, and include/net/ directories in the Linux source tree. If you would like to contribute testing to the Fedora and/or upstream network development efforts, then please consider running these kernels. Also, if you are having a network-related kernel problem with Fedora, please consider trying these kernels and including the results of using these kernels when you submit a bug to Red Hat's Bugzilla.

March 8, 2006: kernel-2.6.15-1.1833_FC4, udev-071-0.FC4.3, ipw2200-1.1.1, ieee80211-1.1.12, firmware-3.0

The FC4 updates kernel 2.6.15-1.1833_FC4 requires updates udev-071-0.FC4.3. The in-kernel radeon video driver does not load properly. This problem can be eliminated by using instead the radeonfb kernel module as explained in another article.

The FC4 updates-testing kernel 2.6.15-1.1833_FC4 includes stable version 1.0.8 of the ipw2200 driver. Because the firmware is proprietary, you will have to install version 2.4 yourself if you have not already done so.

  http://ipw2200.sourceforge.net/firmware.php
  install in /lib/firmware

Make sure you install the correct firmware version. The firmware web site links to the firmware by ipw2200 version. The remainder of this section shows you how to manually install the latest version of the ipw2200 driver. Note that the ieee80211 subsystem has now been separated from the ipw2200 driver so there are two installs to perform. Install firmware version 3.0 and then follow these steps.

Install the latest version of wireless-tools.

  http://download.fedora.redhat.com/pub/fedora/linux/
      core/updates/4/i386/
  wireless-tools-28-0.pre10.4.i386.rpm

  # cd /usr/include/linux
  # rm wireless.h
  # ln -s ../wireless.h .

Remove the kernel modules that came with kernel 2.6.15-1.1833_FC4.

  # cd /lib/modules/2.6.15-1.1833_FC4/kernel/drivers/
      net/wireless
  # rm ipw2200.ko

  # cd /lib/modules/2.6.15-1.1833_FC4/kernel/net/ieee80211
  # rm ieee80211_crypt.ko ieee80211_crypt_wep.ko ieee80211.ko
      ieee80211_crypt_ccmp.ko ieee80211_crypt_tkip.ko

OR if you previously installed the ipw2200-1.1.1 kernel module and the ieee80211-1.1.12 modules for kernel 2.6.15-1.1833_FC4,

  # cd ipw2200-1.1.1 (installation directory)
  # make uninstall
  # cd ieee80211-1.1.12 (installation directory)
  # make uninstall

In wireless packet sniffing, there are two modes of operation, monitor and promiscuous. Promiscuous mode sniffing requires association with a wireless access point, while monitor mode does not. To use monitor mode, edit the kernel module configuration file.

  /lib/modules/2.6.15-1.1833_FC4/build/.config
  comment out 6 lines containing IEEE* and IPW2*
  #CONFIG_IEEE80211=m
  #CONFIG_IEEE80211_CRYPT_WEP=m
  #CONFIG_IEEE80211_CRYPT_CCMP=m
  #CONFIG_IEEE80211_CRYPT_TKIP=m

  #CONFIG_IPW2200=m
  #CONFIG_IPW2200_MONITOR=y

To use monitor mode, edit the kernel module autoconf file.

  /lib/modules/2.6.15-1.1833_FC4/build/include/
      linux/autoconf.h
  comment out 8 lines containing IEEE* and IPW2*
  /*#define CONFIG_IEEE80211_MODULE 1*/
  /*#undef CONFIG_IEEE80211_DEBUG*/
  /*#define CONFIG_IEEE80211_CRYPT_WEP_MODULE 1*/
  /*#define CONFIG_IEEE80211_CRYPT_CCMP_MODULE 1*/
  /*#define CONFIG_IEEE80211_CRYPT_TKIP_MODULE 1*/

  /*#undef CONFIG_IPW_DEBUG*/
  /*#define CONFIG_IPW2200_MODULE 1*/
  /*#define CONFIG_IPW2200_MONITOR 1*/

Download and install the ieee80211 subsystem.

  Download ieee80211-1.1.12.tgz from 
      http://ieee80211.sf.net and unarchive
  # cd ieee80211-1.1.12
  # make (yes to removing old headers)
  # make install

The ieee80211 modules are installed in

  /lib/modules/2.6.15-1.1833_FC4/net/ieee80211

Note that this is not the same directory that the original kernel modules were installed in.

The ieee80211 headers are installed in

  /lib/modules/2.6.15-1.1833_FC4/include/net

Now install the ipw2200-1.1.1 module for kernel 2.6.15-1.1833_FC4.

  Download ipw2200-1.1.1.tgz from 
      http://ipw2200.sourceforge.net/ and unarchive
  # cd ipw2200-1.1.1
  # make
  # make install
  # chmod 744 /lib/modules/2.6.15-1.1833_FC4/kernel/drivers/
      net/wireless/ipw2200.ko

Set module options.

  /etc/modprobe.conf
  options ipw2200 hwcrypto=1

This option turns on hardware encryption. The default now is off. With previous versions of ipw2200, users have reported firmware restarts and slow transfer rates when using hardware encryption. I did a quick test by transferring a 15 MB file by sftp. Transfer rates for a B access point were near the theoretical limit for both unload and download with no firmware restarts. With earlier versions, I was seeing multiple firmware restarts on download. Please test and report your results back to the list. Especially look at co-channel interference and performance when signal strength is low.

August 10, 2005: kernel-2.6.12-1.1398_FC4, ipw2200-1.0.6, ieee80211-1.0.3

The FC4 update kernel 2.6.12-1.1398_FC4 includes stable version 1.0.0 of the ipw2200 driver. Because the firmware is proprietary, you will have to install version 2.2 yourself if you have not already done so.

  http://ipw2200.sourceforge.net/firmware.php
  install in /lib/firmware

Make sure you install the correct firmware version. The firmware web site links to the firmware by ipw2200 version. If you have any problems with this driver, you can manually install the latest stable version 1.0.6. Note that the ieee80211 subsystem has now been separated from the ipw2200 driver so there are two installs to perform. Install firmware version 2.3 and then follow these steps.

If you have not previously installed the ipw2200 kernel module for kernel 2.6.12-1.1398_FC4,

  # cd /lib/modules/2.6.12-1.1398_FC4/kernel/drivers/
      net/wireless
  # rm -rf ieee80211 ipw2100 ipw2200

If you previously installed the ipw2200-1.0.4 kernel module for kernel 2.6.12-1.1398_FC4,

  # cd ipw2200-1.0.4 (installation directory)
  # make uninstall

To use monitor mode, edit the kernel module configuration file.

  /lib/modules/2.6.12-1.1398_FC4/build/.config
  comment out 8 lines containing IEEE* and IPW2*
  #CONFIG_IEEE80211=m
  . . .
  #CONFIG_IPW2200=m

To use monitor mode, edit the kernel module autoconf file.

  /lib/modules/2.6.12-1.1398_FC4/build/include/
      linux/autoconf.h
  comment out 11 lines containing IEEE* and IPW2*
  /* #define CONFIG_IEEE80211_MODULE 1
  . . .
  #define CONFIG_IPW2200_MODULE 1 */

Download and install the ieee80211 subsystem.

  Download ieee80211-1.0.3.tgz from 
      http://ieee80211.sf.net and unarchive
  # cd ieee80211-1.0.3/net
  # cp ieee80211_crypt.h ieee80211.h /usr/src/kernels/
      2.6.12-1.1398_FC4-i686/include/net
  # cd ..
  # make install

The ieee80211 modules are installed in

  /lib/modules/2.6.12-1.1398_FC4/net/ieee80211

Now install the ipw2200-1.0.6 module for kernel 2.6.12-1.1398_FC4.

  Download ipw2200-1.0.6.tgz from 
      http://ipw2200.sourceforge.net and unarchive
  # cd ipw2200-1.0.6
  # make install
  # cd /lib/modules/2.6.12-1.1398_FC4/kernel/drivers/
      net/wireless
  # chmod 744 ipw2200.ko

July 6, 2005: FC4 Update Kernel

The FC4 update kernel 2.6.12-1.1387_FC4 includes stable version 1.0.0 of the ipw2200 driver. Because the firmware is proprietary, you will have to install version 2.2 yourself if you have not already done so.

  http://ipw2200.sourceforge.net/firmware.php
  install in /lib/firmware

Make sure you install the correct firmware version. The firmware web site links to the firmware by ipw2200 version. If you have any problems with this driver, you can manually install the latest stable version 1.0.4. Install firmware version 2.3 and then follow these steps.

  # cd /lib/modules/2.6.12-1.1387_FC4/kernel/drivers/
      net/wireless
  # rm -rf ieee80211 ipw2100 ipw2200
  # cd ipw2200-1.0.4-install-dir (installation directory)
  # wget http://ipw2200.sourceforge.net/patches/
      ieee80211-2.6.12.patch
  # patch -p0 < ieee80211-2.6.12.patch
  # cd net
  # cp ieee80211_crypt.h ieee80211.h /usr/src/kernels/
      2.6.12-1.1387_FC4-i686/include/net
  # cd ..
  # make install
  # shutdown -r now (reboot)

June 20, 2005: FC4

The FC4 distribution kernel kernel 2.6.11-1.1369_FC4 includes stable version 1.0.0 of the ipw2200 driver. Because the firmware is proprietary, you will have to install version 2.2 yourself.

  http://ipw2200.sourceforge.net/firmware.php
  install in /lib/firmware

Make sure you install the correct firmware version. The firmware web site links to the firmware by ipw2200 version. If you have any problems with this driver, you can manually install the latest stable version 1.0.4. First install firmware version 2.3 and then follow these steps.

  # cd /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/
      net/wireless
  # rm -rf ieee80211 ipw2100 ipw2200
  # cd ipw2200-1.0.4-install-dir (installation directory)
  # make install
  # shutdown -r now (reboot)

May 17, 2005: Version 1.0.4

I am currently running the FC4 Test 3 kernel 2.6.11-1.1290. The ipw2200 version 1.0.4 driver requires new firmware version 2.3.

April 10, 2005: Version 1.0.3

I am currently running the FC4 Test 1 kernel 2.6.11-1.1177. The patch for associated signal quality that appeared in versions 1.0.1 and 1.0.2 has been extended to cover scanned signal quality.

February 8, 2005: Version 1.0.0 and 1.0.1

Version 0.22 was renamed 1.0.0. From now on stable versions will end with a 0. The development snapshot 1.0.1 was released today. The firmware version is still 2.2. I am currently running the update kernel 2.6.10-1.760. A patch for signal quality was submitted and accepted for 1.0.1. See what you think. You should see link qualities similar to what you see in Windows XP. An article providing more details is linked on the left. Remember to remove the modules that came with the update kernel before installing from source.

January 28, 2005: Version 0.22

Scan signal quality is now supported. Users of NetworkManager will note that the NetworkManagerApplet now displays scan signal quality. These values are usually 20-30% lower than the signal quality reported by iwconfig. The range of signal qualities reported by iwconfig is now more reasonable but idle values trend toward %100. Beginning with the FC3 update kernel 2.6.9-1.724, the ieee80211, ipw2100, and ipw2200 modules are included. If you remove the kernel installation,

  # cd /lib/modules/2.6.10-1.741_FC3/kernel/drivers/
      net/wireless
  # rm -rf ieee80211 ipw2100 ipw2200

you can install version 0.22.

  # cd /root/ipw2200-0.22
  # make install

The update kernels are not configured for ipw2x00 debugging which is inconvenient. Beginning with version 0.19, the number of fatal errors or firmware errors that I have observed has dropped to almost nothing.

December 20, 2004: Version 0.19

Firmware version 2.2 was released with version 0.19. Link quality is now reported at 100% until packets pass through the interface. Then an reasonable value appears but in a few seconds the value reverts to 100%. I have observed a few fatal errors in syslog but the device seems to be operating normally so they must not really be fatal. On occasion I will find that the interface can be configured with iwconfig but that packets cannot be sent or received. A rmmod/modprobe fixes this problem. Here are some transfer rates for Clemson University's wireless network which uses Cisco AP's for a 6MB file .

  FC3  upload 705KBps 5.5Mbps  download 754KBps 5.9Mbps

December 14, 2004: Versions 0.17 and 18

Firmware version 2.1 was released with version 0.17. Link quality is now reported at 90% in every location I have tried at home or on campus. I have observed a few fatal errors in syslog but the device seems to be operating normally so they must not really be fatal. Here are some transfer rates for Clemson University's wireless network which uses Cisco AP's for a 7MB file.

  FC3  upload 497KBps 3.9Mbps  download 548KBps 4.3Mbps

December 7, 2004: Version 0.16

Link quality is still not reported right. It was too low in 0.15, while in 0.16 it is mostly reported as 100%. Version 0.15 and 0.16 work with the latest development version of NetworkManager. See the separate article.

November 24, 2004: Version 0.15

A number of updates have been performed on my laptop.

  2.6.9-1.681_FC3
  wireless-tools-27-0.pre25.4 (development, FC3 released with .3)
  ipw2200-0.15

Version 0.14 closed bug #344 regarding no wireless statistics when not associated. Version 0.15 closed bug #411 regarding the report of no link by ethtool when associated. Fedora Core 3 was released with the new NetworkManager package. NetworkManager can control both wired and wireless interfaces. NetworkManager-0.3.1-3 does not work correctly with the ipw2200-0.15 driver. The NetworkManagerInfo panel applet does not acquire signal strength and is only functional when started by root. Clicking on the panel applet often freezes the machine, requiring a power down reboot. I repeated an ftp transfer test done on October 1, 2004 for version 0.11. The test was performed on a 7MB file and a 330MB file. There was an improvement in the upload transfer rate. For the download of the 7MB file, there were 5 RX errors and 5 drops. I tried resetting the MTU value to 1300 which is what is used by Windows XP. The result was a decrease in the transfer rate but the errors persisted.

  FC3  upload 280KBps 2.2Mbps  download 410KBps 3.1Mbps

November 10, 2004: Version 0.13

The 0.13 distribution was downloaded and make install was executed, followed by a reboot. No error messages appeared in dmesg and the driver appears to be working correctly. KWirelessMonitor reports the signal strength as 100%. The output produced by iwconfig eth1 has been updated below. The security mode is now being reported as open instead restricted. The latest ABAT script contains 21 tests, of which 19 passed. The two monitor mode tests failed.

October 14, 2004: Version 0.11

The 0.12 distribution was downloaded and make install was executed, followed by a reboot. No error messages appeared in dmesg and the driver appears to be working correctly. KWirelessMonitor reports the signal strength as 100%. The output produced by iwconfig eth1 has been updated below. The latest ABAT script contains 21 tests, of which 19 passed. The two monitor mode tests failed.

October 1, 2004: Version 0.11

The 0.11 distribution was downloaded and make install was executed, followed by a reboot. No error messages appeared in dmesg and the driver appears to be working correctly. KWirelessMonitor reports the signal strength as 98%. The output produced by iwconfig eth1 has been updated below. The latest ABAT script contains 21 tests. With the 2 monitor mode tests commented out, the 19 remaining tests passed. The monitor mode tests are the 19th and 20 tests. When the original script was run, the first 20 tests passed but when the script tried to return the wireless interface to managed mode, a kernel oops occurred. Here are some ftp transfer rates for comparison using a B access point. Setup: SMC Barricade 7004 AWBR access point, unloaded network, one wireless client (T42), managed mode, 104 bit WEP, average of 5 transfers of a 7,384,064 byte file.

  XP   upload 159KBps 1.2Mbps  download 331KBps 2.6Mbps
  FC2  upload 222KBps 1.7Mbps  download 402KBps 3.1Mbps

September 30, 2004: Versions 0.9 and 0.10

The 0.9 (9-29) and the 0.10 (9-30) distributions were downloaded and make install was executed, followed by a reboot. No error messages appeared in dmesg and the driver appears to be working correctly. KWirelessMonitor reports the signal strength as 98%. The output produced by iwconfig eth1 has been updated below. There continues to be a slow growth in the number of Missed beacons reported. Latest ABAT test: 14 passes, 7 failures. The failures appear to be for features that have not yet been implemented.

  FAIL: 'fragmentation - setting' failed
  FAIL: 'fragmentation off' failed
  FAIL: 'Set PSP level to 1' failed
  FAIL: 'Set PSP level to 2' failed
  FAIL: 'Set PSP level to 3' failed
  FAIL: 'Set PSP level to 4' failed
  FAIL: 'Set PSP level to 5' failed

September 16, 2004: Version 0.8

The 0.8 distribution was downloaded and make install was executed, followed by a reboot. No error messages appeared in dmesg and the driver appears to be working correctly. KWirelessMonitor reports the signal strength as 98%. The output produced by iwconfig eth1 has been updated below. There appears to be a slow growth in the number of Missed beacons reported which I have not seen before. Version 0.7 reported the Bit Rate as 1Mb/s but 0.8 is correctly reporting it as 11Mb/s. ABAT tests: 12 passes, 7 failures. The failures appear to be for features that have not yet been implemented.

  FAIL: 'fragmentation - setting' failed
  FAIL: 'fragmentation off' failed
  FAIL: 'Set period between wake up for power mgmt' failed
  FAIL: 'Set timeout value for power mgmt to 200m' failed
  FAIL: 'Set timeout value for power mgmt to 40m' failed
  FAIL: 'Test setting channel for monitor mode' failed
  FAIL: 'Test setting monitor mode' failed

Introduction

The purpose of this note is to outline the installation steps for the IPW2200 driver for the Intel Pro 2200BG wireless adapter under Fedora Core 2 (FC2) and Fedora Core 3 (FC3). The experiments reported on below were done on an IBM Thinkpad T42.

The previously posted article, Dual Booting, Part 1 covered hard disk partitioning and installation of FC2, the article Dual Booting, Part 2 covered post-installation configuration, and the article Ndiswrapper Wireless Driver covered the use of the ndiswrapper module as an interface to the Windows XP 2200BG driver. The 2.6 kernels used in the initial release of FC2 and in subsequent updates have the 4kstack option hardwired, but ndiswrapper requires an 8kstack option. Consequently, a stock FC2 kernel could not be used with the ndiswrapper module. The IPW2200 driver will work with stock kernels. The article T42 FC3 Setup covers the installation of FC3.

On May 4, 2004 Intel launched an open source project to create a Linux driver (ipw2200) for the 2200BG wireless adapter. On May 28, 2004 version 0.1 was released and on September 3, 2004 version 0.7 was released. Here are the steps to install and configure version 0.7 on FC2.

Two methods of installation will work. The initscripts upgrade method fixes a bug (#112824) in the original FC2 release, while the legacy firmware loading method uses the rpm's provided by Axel Thimm at ATrpms.net.

FC3

The ipw2200 driver has worked with all FC3 kernels to date. I am currently running 2.6.9-1.724. With the FC3 kernels, there is no need to install the kernel source in order to compile a kernel module. The update kernel 2.6.9-1.724 was released with version 0.13 of the ipw2200 wireless driver. Since I am currently at version 0.19, I removed the kernel installation

  # cd /lib/modules/2.6.9-1.724_FC3/kernel/drivers/
      net/wireless
  # rm -rf ieee80211 ipw2100 ipw2200

and then reinstalled the wireless driver. Note that for Fedora Core 3 the firmware directory has changed to /lib/firmware.

Stock FC2 Kernel

I used the stock kernel and source:

  kernel-2.6.8-1.521.i686
  kernel-sourcecode-2.6.8-1.521.noarch

Hotplug support is compile into the kernel and is not a loadable module.

Initscripts Upgrade Method

The FC2 release contained the package hotplug-2004_04_01-1. This rpm appears to be missing the hotplug initscript. This omission was intentional. The hotplug.spec found in the source rpm says

  # We don't use this
  rm -f $RPM_BUILD_ROOT/etc/init.d/hotplug

The bug was not the omission of the hotplug initscript, but rather was in the package initscripts-7.55.1-1 contained in the initial FC2 release.

The solution then is to upgrade the initscripts package. The first thing to do is to remove the hotplug script if you previously installed it.

  # /etc/rc.d/rc5.d/S01hotplug stop
  # chkconfig --del hotplug
  # rm /etc/rc.d/init.d/hotplug

Download the lastest development initscripts and mkinitrd rpm's from

  http://download.fedora.redhat.com/
  pub/fedora/linux/core/development/i386/Fedora/RPMS/

but be forewarned that development rpm's can break your system. The current versions as of September 6, 2004 are

  initscripts-7.77-1.i386.rpm
  mkinitrd-4.1.9-1.i386.rpm

Install

  # rpm -Uvh mkinitrd-4.1.9-1.i386.rpm
  # rpm -Uvh initscripts-7.77-1.i386.rpm

The initscripts changelog has some useful information. The command

  # rpm -q --changelog initscripts-7.77-1.i386 | more

shows that important changes were made at version 7.70-1:

  7.70-1
  autoload hardware modules on startup
  fix firmware loading #129155

Note that these mkinitrd and initscripts updates are part of the Fedora Core 3 release.

Now we are ready to install the driver. Download ipw2200-0.7.tgz from

  http://ipw2200.sourceforge.net/

Unarchive and install

  # cd /root
  # tar zxvf ipw2200-0.xx.tgz
  # cd ipw2200-0.xx
  # make install

Download the adapter firmware ipw2200-fw-2.0.tgz from

  http://ipw2200.sourceforge.net/firmware.php

and unarchive in the directory /usr/lib/hotplug/firmware. Note that for Fedora Core 3 the firmware directory has changed to /lib/firmware.

Reboot and when the new hardware dialog box comes up, choose dhcp or set an ip address.

Configure and activate at the commandline by using the following commands as root.

  # /sbin/iwconfig eth1 essid xxxxxxxx
  # /sbin/iwconfig eth1 key xxxxxxxxxxxxxxxxxxxxxxxxxx
  # /sbin/dhclient eth1

Configure the wireless interface using the System Settings -> Network utility. Set ESSID, Mode, and WEP key. Check to see if the following two files have been created.

  /etc/sysconfig/network-scripts/ifcfg-eth1
  IPV6INIT=no
  ONBOOT=no
  USERCTL=yes
  PEERDNS=yes
  GATEWAY=
  TYPE=Wireless
  DEVICE=eth1
  HWADDR=xx:xx:xx:xx:xx:xx
  BOOTPROTO=dhcp
  NETMASK=
  DHCP_HOSTNAME=
  IPADDR=
  DOMAIN=
  ESSID=XXXXXX
  CHANNEL=1
  MODE=Managed
  RATE=54Mb/s

and

  /etc/sysconfig/network-scripts/keys-eth1
  KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx

Your MAC address, ESSID, and WEP key should appear in these files. Note that my wireless network uses a WEP key with 26 hex characters.

Activate the wireless inferface using the Systems Settings -> Network utility as root or the System Tools -> Network Device Control utility as a non-root user.

Check the configuration with iwconfig.

  # iwconfig eth1
  ieee 802.11b  ESSID:"cuairnet"  
      Nickname:"localhost.localdomain"
  Mode:Managed  Channel:6  Access Point: 00:01:24:F0:40:5A
  Bit Rate=11Mb/s   Tx-Power=20 dBm
  RTS thr:off   Fragment thr:off
  Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx 
      Security mode:open
  Power Management:off
  Link Quality:100/100  Signal level:-47 dBm  
      Noise level:-256 dBm
  Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
  Tx excessive retries:0  Invalid misc:0   Missed beacon:7

WEP Keys and Security Mode

There are several implementations of WEP and their different naming conventions do nothing but confuse people who are trying to implement WEP. Currently available wireless hardware uses the following WEP key names.

  WEP Encryption Name       Hexadecimal Characters
  
  64 bit (40 bits)          10
  128 bit (104 bits)        26
  (152 bits)                38
  256 bit (232 bits)        58

While the 64 bit implementation of WEP is part of the official standard, be aware that the 128 bit (and higher) implementations are not officially recognized and vary widely between manufacturers. If your wireless device claims to use a 128 bit WEP key, you may get a 'key too long' error if you try to enter 32 hexadecimal characters. In this case, enter 26 hexadecimal characters. The missing 6 hexadecimal characters (24 bits) are added by the encryption algorithm in the device. When I tried to put my 26 hexadecimal key into the NetworkManager 128 bit WEP key dialog box, I got a 'key too short' error. In this case, I had to append six 0's.

There is also a great deal of confusion about the WEP key security modes: restricted and open. Apparently, the interpretation of security mode is dependent on the manufacturer. Early, versions of the ipw2200 driver used the restricted mode by default but the latest version uses the open mode. My advice is to go with the default open mode and only experiment with the restricted mode if all else fails. The mode can be set using the iwconfig command.

  iwconfig eth1 key restricted

Legacy Firmware Loading Method

Download

  ipw2200-firmware-2.0-2.at.noarch.rpm

from http://atrpms.net/dist/common/ipw2200-firmware/ and install.

Download

  kernel-module-ipw2200-2.6.8-1.521-0.7-6.rhfc2.at.i686.rpm
  ipw2200-0.7-6.rhfc2.at.i386.rpm

from

  http://atrpms.net/dist/fc2/ipw2200/

and install.