Intel PRO/Wireless 2100 802.11b Linux Driver
Copyright (C) 2004, Intel Corporation
For additional information, contact James Ketrenos <jketreno@linux.intel.com>

COMPILER REQUIREMENTS
---------   ------     ----       ---    --       --       -          -

You need to be using GCC v 3.0 or higher in order to build the ipw2100 project.
Using older versions will result in several compilation errors.


INSTALLING THE BITS
------------ -----   -----       ----       ---       --         -     

There are two ways to build the module, either via a patch to your kernel, or
as a stand alone module.  For the first, read on, for the later skip to 
BUILDING EXTERNAL

To install the driver download the package appropriate for your kernel (2.4 or 
2.6).  Once you have that, simply change to the root of your kernel and
apply the patch:

% export K=2.4.24
% export V=0.17
% tar xzfO ~/ipw2100-$K-$V.tgz ipw2100-$K-$V-patch | patch -p1

NOTE:  If you are upgrading to a new version, first remove the old one by 
reversing the previous patch.  For example:

% export V=0.16
% tar xzfO ~/ipw2100-$K-$V.tgz ipw2100-$K-$V-patch | patch -p1 -R

You can then apply the new patch.  

The patch should proceed without errors.  Once you have applied the patch, you
can configure and build the kernel:


CONFIGURING THE KERNEL
------------ -----   -----       ----       ---       --         -     

# Configure the kernel
% make menuconfig

# Enable Intel PRO/Wireless 2100 under Network Devices => Wireless
#
# NOTE:  You must have EXPERIMENTAL turned on to see the Intel PRO/Wireless
#        option.  You can set this in Code Maturity Setting Options.
#
# ALSO NOTE:  
#        You only need the av5100 module if you have an Averatec laptop.
#

BUILDING THE MODULE
------------ -----   -----       ----       ---       --         -     

# Build the kernel module

% make modules modules_install

If you built as a module and didn't change any other kernel options, you are 
ready to go.  Proceed to LOADING THE DRIVER


BUILDING EXTERNAL
----------- -----   ----   ----      ---       --       -             -

The -full driver package now contains a Makefile that can be used for building
the driver outside of the kernel tree.  To build it for the currently running
kernel, sipmly type:

# make && make install

To build it for a different kernel than the running one, use the KSRC 
parameter:

# make KSRC=/path/to/kernel/ && make install

Thanks to Peter Johanson for the original Makefile, and several others on the
ipw2100-devel mailing list for helping to enhance it.

Now proceed to LOADING THE DRIVER


LOADING THE FIRMWARE
------------ -----   -----       ----       ---       --         -     

Before you can load the driver, you need the firmware image.  You can find
instructions for obtaining the firmware by going to 
http://ipw2100.sf.net/firmware.php.

Once you have the firmware, uncompress the archive (it may be a .zip which 
in turn contains a .tgz that you need to uncompress).  You should find a file
named ipw2100-1.0.fw.  

LOADING FIRMWARE VIA HOTPLUG... (new 0.33)
------- ----    --    -      -        -
As of v0.33, the IPW2100 supports loading of firmware via the Linux firmware 
hotplug capability.  In order to use this, you must enable CONFIG_FW_LOADER in
your kernel configuration.  In 2.6.x this option is enabled via: 

	Device Drivers -> 
		Generic Driver Options -> 
			Hotplug firmware loading support

In 2.4.x, it can be found here:
	Library Routines ->
		Hotplug firmware loading support

In addition, you will need the Linux hotplug scripts dated later than 
2003_10_07 (if you do not have /etc/hotplug/firmware.agent then you need to 
upgrade).  

You will also need to have sysfs mounted.  You can do this by adding an entry
to /etc/fstab similar to this:

none            /sys            sysfs   defaults                0       0

You can obtain the latest hotplug scripts via the following link:

http://sourceforge.net/project/showfiles.php?group_id=17679

Once set up, you can copy ipw2100-1.0.fw into /usr/lib/hotplug/firmware/ (you 
may need to create that directory).  When the driver requests the firmware, 
the hotplug agent will then push the firmware image to it.

LOADING THE LEGACY WAY... 
------- ----    --    -      -        -
If, for some reason, you do not wish to use the hotplug system, IPW2100 still 
provides a direct mechanism for loading the firmware.  To use this, simply 
configure your kernel to use the CONFIG_IPW2100_LEGACY_FW_LOAD option. 

You can then place a copy of ipw2100-1.0.fw into /etc/firmware.  The driver will
then load the firmware directly from the file system.


LOADING THE DRIVER
------------ -----   -----       ----       ---       --         -     

First, create a file in /etc/sysconfig/network-scripts/ called ifcfg-eth1 
(or eth2, etc. as appropriate).  Place the following within it:

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Wireless

% modprobe ipw2100
% ifup eth1

If you have DHCP configured on your network, and you have a wireless access
point nearby, you should be up and running.

You can check and see if your interface is up by running 

% ifconfig eth1

To test the connection, you can ping a machine using the wireless interface:

% ping www.intel.com -I eth1

If you want to use the wireless interface for all traffic, set up the default
gateway to go through it.  I usually perform the following:

# Disable eth0 completely
% ifdown eth0

# Configure the routing table to go through the wireless NIC
% route add default gw 192.168.1.1 eth1

If you had brought down eth0 before you load the ipw2100 module, the system
should set up your routes for you.

