ipw2100 mini-HOWTO
May 31, 2004
Table of Contents
1. Introduction
This is a short guide to install the Intel PRO/Wireless 2100 Driver for
Linux. The ipw2100
project, created by Intel, provides support
for the PRO/Wireless 2100 mini PCI adapter found in many Centrino based
systems. Parts of this mini-HOWTO are specific to a fresh installation of
Fedora Core 2 on a standard i386 system but these steps should translate to
other distributions quite easily. I have also appended a section at the end
which is specific to Debian systems.
Note: At the time of the first draft of this HOWTO, ipw2100
was at
version 0.45 and still required hostap
but more recent versions have
dropped this dependency. Most of the steps below were written as of version
0.45 but the Debian section is current as of version 0.60 which does not
require hostap
.
Notation: A %
prompt indicates a command executed as a normal user
while a #
prompt indicates a command executed as root.
2. Preliminary Checks
There are a few dependencies to check before installing the driver. According to the ipw2100 documentation:
In order to use the ipw2100 driver you will need the following:
1. hostap-driver-0.1.3 (for WEP {en,de}cryption)
2. Linux (of course) with a 2.4.23+ or 2.6.1+ kernel
3. Wireless Extensions (v16) and Tools (v27)
4. The ipw2100 driver.
5. The ipw2100 binary firmware image.
Fedora Core 2 ships with the 2.6.5 kernel which includes the wireless
extensions, and the wireless-tools
package should be installed by
default. If you want to make sure you have everything you need, confirm that
you have wireless-tools
, hotplug
, and pcmcia-cs
installed:
% rpm -q hotplug pcmcia-cs wireless-tools
hotplug-2004_04_01-1
pcmcia-cs-3.2.7-1.5
wireless-tools-26-4
If you issue the above command and all three packages are listed, you should have everything you need to begin.
3. Install hostap-driver
Download the hostap-driver source code at
http://hostap.epitest.fi
As of this writing, the latest version was 0.1.3.Extract the source code:
% tar xzvf hostap-driver-0.1.3.tar.gz % cd hostap-driver-0.1.3
Follow the instructions for “Systems using kernel tree PCMCIA modules” in the README file.
Edit the
Makefile
to point to the kernel module build directory. For a normal Fedora Core 2 install, change the lineKERNEL_PATH=/usr/src/linux
to
KERNEL_PATH=/lib/modules/2.6.5-1.358/build/
Compile and install the modules:
% make # make install
4. Install ipw2100
Download the source code at http://ipw2100.sf.net
and uncompress
it into a temporary directory:
% tar zxvf ipw2100-0.45.tgz
% cd ipw2100-0.45
Follow the “BUILDING EXTERNAL” section in the ipw2100
INSTALL file:
% make HOSTAP=/path/to/hostap-driver-0.1.3
In my case this was /home/jrblevin/src/hostap-driver-0.1.3
.
Then install the modules:
# make HOSTAP=/home/jrblevin/src/hostap-driver-0.1.3 install
5. Install the firmware
Download the firmware corresponding to your version of ipw2100
and
uncompress it to a temporary directory.
% unzip 96377_96377.zip
Archive: 96377_96377.zip
inflating: LICENSE
inflating: ipw2100-1.1-p.fw
inflating: ipw2100-1.1-i.fw
inflating: ipw2100-1.1.fw
The firmware must be placed in /usr/lib/hotplug/firmware
:
# mkdir -p /usr/lib/hotplug/firmware/
# cp ipw2100-1.1-p.fw ipw2100-1.1-i.fw ipw2100-1.1.fw /usr/lib/hotplug/firmware/
Note [2005.05.28]: In Fedora Core 4 Test 2 (and presumably all versions
thereafter) the firmware should be placed in /etc/firmware
instead. Thanks to Robert Williams for pointing this out on Bugzilla.
6. Loading the module
Load the module with
# modprobe ipw2100
Then check the output of dmesg
to see if it was successful. If so you
should see something like the following:
# dmesg | tail
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.45
ipw2100: Copyright(c) 2003-2004 Intel Corporation
divert: allocating divert_blk for eth1
Detected ipw2100 PCI device at 0000:02:0b.0, dev: eth1, mem: 0xD0201000-0xD0201FFF -> 229c4000, irq: 9
eth1: Using hotplug firmware load.
ipw2100: Associated with '22cshepherd' at 11Mbps, channel 6
This shows that the wireless card is on eth1
, the firmware was loaded, and
a wireless access point was found. You can now configure the device for your
distribution. This is described in the INSTALL file in the section
titled “LOADING THE DRIVER.” On Fedora Core 2, you can use
system-config-network
.
7. Debian GNU/Linux
On a Debian system, begin with the steps in this section. There are (at least) two ways to build and install the module: module-assistant or make-kpkg. The first is probably the best choice if you only want to build the ipw2100 module. However, if you also want to build a custom kernel while you are at it, the second option is better.
First off, make sure you are running a 2.6.x kernel. No matter which method
you use to build the module, make sure the ipw2100-source
package is
installed. It is available in the Debian testing
branch:
# apt-get install ipw2100-source
module-assistant
Make sure the module-assistant
package is installed.
# m-a update ; m-a a-i ipw2100
Example:
# m-a update ; m-a a-i ipw2100
Updated infos about 57 packages
Extracting the package tarball, /usr/src/ipw2100-source.tar.gz
Done with /usr/src/ipw2100-modules-2.6.8-v505dx_0.60-1+20041223_i386.deb .
(Reading database ... 165610 files and directories currently installed.)
Preparing to replace ipw2100-modules-2.6.8-v505dx 0.60-1+20041223
(using .../ipw2100-modules-2.6.8-v505dx_0.60-1+20041223_i386.deb) ...
Unpacking replacement ipw2100-modules-2.6.8-v505dx ...
Setting up ipw2100-modules-2.6.8-v505dx (0.60-1+20041223) ...
m-a
is an abbreviated command for module-assistant
,m-a update
updates
the internal information about the available modules, and a-i
is an
abbreviation for “auto-install” which automatically builds and installs the
module.
make-kpkg
This is the method I use since each time you build a custom kernel, you also have to rebuild the ipw2100 module. Assuming all the required packages are installed (kernel-source, etc.) and you have uncompressed and configured the kernel sources, everything can be done in one step. For example, I use the following command when building a kernel for my laptop:
# cd /usr/src/kernel-source-2.6.8
# fakeroot make-kpkg --append-to-version "-v505dx" --revision "20041223"
--added_modules ipw2100 kernel_image modules_image
For more information on building kernels on Debian, see Chapter 7 of the Debian Reference.
Installation
The package will be placed in /usr/src
after it is built. Simply install it
like this:
# cd /usr/src
# dpkg -i ipw2100-modules-2.6.8-v505dx_0.60-1+20041223_i386.deb
Configuration
First, download the firmware corresponding to your version of ipw2100
and place it in /usr/lib/hotplug/firmware/
.
You might also want to add some options in /etc/modprobe.d/aliases
. I
prefer to keep the wireless card on wlan0
so my aliases file looks like
this:
alias wlan0 ipw2100
options ipw2100 ifname=wlan0
Next, you must configure the interface in
/etc/network/interfaces
. Something like this should do:
iface wlan0 inet dhcp
pre-up modprobe ipw2100 ifname=wlan0
post-down rmmod ipw2100
Then, to bring the interface up or down, use
# ifup wlan0
# ifdown wlan0