« 802.11a Configuration Woes ... with Solution | Main | Linux Device Drivers Really Are Easy to Write »

May 27, 2005

Updating the IPW2200 Driver & Firmware

Version 1.0.4 of the open source IPW2200 driver, which supports Intel's IPW2200 802.11b/g & IPW2915 802.11a/b/g cards was released.

This driver is fairly easy to install and use.

Before going over the steps needed to get these cards working, I should tell you that I have only done this on Fedora Core. These instructions should work unmodified for RHEL3, RHEL4 and any distributions derived from Red Hat, but I can not guarantee that you will not need to tweak this a little bit. In other words, "Your Mileage May Vary."

With that out of the way, let's get into the setup.

Download the driver and firmware files

It is important to read through the information related to each new release of this driver. These cards do not have their firmware stored on-board; it is loaded into the card by the driver when it starts up.

I did not pay sufficiently close attention when I downloaded the 1.0.4 driver. I have been running 1.0.3 since I installed the IPW2915 in my notebook. For the 1.0.4 release, updated firmware must be installed. I failed to notice that requirement and had to go get the files using another computer (thanks to Evan for the use of his notebook for this) and place them on a USB KeyChain Drive. The ipw2200 1.0.4 driver will not work without the corresponding updated (version 2.3) firmware files.

Extract the Source Code & Firmware Files

After downloading all the needed files, extract the tarballs in a working directory. Some people prefer to use /tmp/ for such things. I like to use my ~/src/ directory. Whereever you choose to extract the tarballs, these commands will do the trick:
$ cd ~/src/
$ tar -zxf /path/to/downloaded/files/ipw2200-1.0.4.tgz
$ mkdir ipw2200-fw-2.3

A Little Housekeeping

Although the code is ready to be built, there are a couple of housecleaning chores to take care of, first. As root (I prefer to use a separate shell, so I can just bounce back an forth between the non-priviledged user shell and root, only running commands as root that absolutely have to be), go into the wireless network driver modules directory for the currently running kernel:
# cd /lib/modules/$(uname -r)/kernel/drivers/net/wireless/

Delete the existing IPW2200 and 80211 files & directories.

# rm -R 80211* ipw2200*

These files must be eradicated in order for the new driver to work.

Build the Driver

Return to the unprivileged user shell, change into the driver source code directory and build the driver:
$ cd ipw2200-1.0.4
$ make

Install the Driver

After the build completes, use the root shell to install the driver:
# cd ~username/src/ipw2200-1.0.4
# make install

Make the Firmware Files Available to the Driver

Before trying to load the driver, you have to place the firmware files in the proper directory so the driver can find and load them. Remove any old firmware files, if present, as well:
# rm /lib/firmware/ipw*fw
# cd ../ipw220-fw-2.3
# cp ipw*fw /lib/firmware/

Use the New Driver

That's it. The updated ipw2200 driver is now ready to function. If you were already running an older version of the driver, unload it first, then load the new driver. Here is the way I prefer to do it:
# rmmod ipw2200
# ifup eth1
NOTE: Of course, replace "eth1" with whichever value is appropriate for your system.

The new driver is now in use. Enjoy!
--
Lamont R. Peterson

Posted by lamontp at May 27, 2005 12:14 PM

Trackback Pings

TrackBack URL for this entry:
http://blogs.gurulabs.com/cgi-bin/mt-tb.cgi/62

Comments

Post a comment




Remember Me?

(you may use HTML tags for style)