First, we build and install the ieee80211 subsystem. You can obtain
the latest ieee80211 subsystem from
http://ieee80211.sf.net. We
recommend version 1.1.12 or newer:
% tar xzvf ieee80211-1.1.14.tgz
% cd ieee80211-1.1.14
% make
# make install <--- You may need to be root
% cd ..
If you encounter problems with the above, you may need to install the
ieee80211 sources into your kernel and then build it as part of your
kernel image. See the INSTALL and README.ieee80211 files provided in
the ieee80211 subsystem package for more information.
Once the ieee80211 subsystem is installed, we build the ipw3945.ko module:
% tar xzvf ipw3945-1.1.3.tgz
% cd ipw3945-1.1.3
% make
Now we install the firmware files (first finding where to install them):
% wget
http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.13.tgz .
% DIR=$(sed -ne "s:^FIRMWARE_DIR=\([^, ]*\).*:\1

" \
/etc/hotplug/firmware.agent)
% tar xzvf ipw3945-ucode-1.13.tgz
% less ipw3945-ucode-1.13/LICENSE.ipw3945-ucode
# cp ipw3945-ucode-1.13/ipw3945.ucode $DIR
NOTE: 'DIR' above typically works out to /lib/firmware.
Now we obtain the regulatory daemon:
% wget
http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz .
% tar xzvf ipw3945d-1.7.22.tgz
% less ipw3945d-1.7.22/LICENSE.ipw3945d