To load your ipw2200 driver you need to:
(last updated: 30-6-2006)
Do a:
modprobe ipw2200
modprobe arc4 (for crypto)
modprobe crc32c (for crypto)
Or place the module names on seperate lines in your /etc/modprobe.preload (for Mandrakelinux)
or in /etc/modules.conf (for most other distros)
Do a:
iwconfig eth2 power on
iwconfig eth2 essid "MYSSID"
iwconfig eth2 key open "MYWEPKEY"
to test the card, but you can also add the rules for your device so that
it starts on boot (Some cards/machines won't work without rebooting the machine):
(<- for Mandrakelinux. With, for instance Debian, it's /etc/network/interfaces.)
Example for /etc/sysconfig/network-scripts/ifcfg-eth1 (home, wireless)
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.1.46
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
HWADDR=00:0e:35:7a:16:19
METRIC=10
MII_NOT_SUPPORTED=no
WIRELESS_MODE=Managed
WIRELESS_ESSID=any
Example 2 for /etc/sysconfig/network-scripts/ifcfg-eth1 (home, wireless)
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
HWADDR=00:0e:35:7a:16:19
METRIC=10
MII_NOT_SUPPORTED=no
WIRELESS_MODE=Ad-hoc
WIRELESS_ESSID=any
Example 3 (this one workd "as-is", unlike the 2 earlier examples, but you'll have to remove the commentary first!)
DEVICE=eth0
BOOTPROTO=static (or dhcp, when that's what you use)
IPADDR=192.168.0.1 (only needed when using bootproto=static)
NETMASK=255.255.255.0 (idem)
NETWORK=192.168.0.0 (idem)
BROADCAST=192.168.0.255 (idem)
ONBOOT=yes (or "no" when you don't want to start the card during boot)
MII_NOT_SUPPORTED=yes (standard value, no real importance here)
#WIRELESS_KEY="12345678910111213141516171" (use this line if you want to use a (128-bits) WEP key, but please use a real value here! Attention: don't forget to remove the "#"!)
WIRELESS_IWCONFIG="key 12345678910111213141516171 restricted" (use this line instead of the one above if you want to force the used of a WEP-key)
WIRELESS_MODE=Ad-hoc (or "Managed")
WIRELESS_ESSID=essid-naam (essid name when you use one)
Troubleshooting
When you get the following error message through "dmesg"
ieee80211_crypt: registered algorithm 'NULL'
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.1
ipw2200: Copyright(c) 2003-2004 Intel Corporation
ACPI: PCI interrupt 0000:00:0b.0[A] -> GSI 19 (level, low)
-> IRQ 19
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: ipw-2.2-boot.fw load failed: Reason -2
ipw2200: Unable to load firmware: 0xFFFFFFFE
ipw2200: failed to register network device
ipw2200: probe of 0000:00:0b.0 failed with error -5
Then you have a too short timeout for the loading of the firmware.
First load the module "firmware_class"
and next do a: "echo 100 > /sys/class/firmware/timeout"
and then load the ipw2200 module.
In Mandrake you can also "automate" this fix with the following line in
/etc/modprobe.preload te zetten:
firmware_class && echo 100 > /sys/class/firmware/timeout &
Don't forget to also place "ipw2200" somewhere below that on a new line.
In kernels NEWER than 2.6.10 this problem does not seem to exist.
In these kernels hotplug/firmware/usb support has been tweaked
and is a lot more reliable.
With driver version 1.0.4 & 1.0.6
When you, after downloading, unpacking, doing "make" and "make install",
do not see the option monitor mode after the command "iwpriv ethX",
then your driver isn't built with the monitor mode option.
This is because the drivers Makefile refers to your kernel to get its
settings right. The kernels in most distro's don't support monitor mode (yet).
The solution:
in the Makefile of the driver, you change:
# NOTE: If you have previously added IPW2200 to your kernel and configured it
# for inclusion, these settings will be overridden by your kernel
# configuration.
ifndef CONFIG_IPW2200
EXTERNAL_BUILD=y
CONFIG_IPW2200=m
CONFIG_IPW_DEBUG=y
CONFIG_IPW_MONITOR=y
# Experimental QoS support.
CONFIG_IPW_QOS=y
endif
to:
# NOTE: If you have previously added IPW2200 to your kernel and configured it
# for inclusion, these settings will be overridden by your kernel
# configuration.
#ifndef CONFIG_IPW2200
EXTERNAL_BUILD=y
CONFIG_IPW2200=m
CONFIG_IPW_DEBUG=y
CONFIG_IPW_MONITOR=y
# Experimental QoS support.
CONFIG_IPW_QOS=y
#endif
Now do "make" and "make install" again, and you will have monitor mode.
For WPA support, you need the wpa_supplicant rpm.
The WPA support will be added as a service on your system.
Attention!!!! Since kernel 2.6.15, WPA support is delivered no longer thru
driver IPW, but wext (so on the commandline, use "-Dwext" instead of "-dIPW"
The ipw2200 driver should be loaded with "hwcrypto=0"; so: "modprobe ipw2200 hwcrypto=0"
This parameter is not needed with ipw2200 driver versions 1.1.x and higher.
Please don't forget to CONFIGURE the WPA support!
For more info, go to:
http://hostap.epitest.fi/wpa_supplicant/
Example config file for wpa_supplicant:
http://hostap.epitest.fi/cgi-bin/viewcvs.cgi/*checkout*/hostap/wpa_supplicant/wpa_supplicant.conf?rev=HEAD&content-type=text/plain
Remember: especially for managed mode that less settings can be more!
Example for an AP with a WPA2 key and a cloaked ssid:
network{
ssid
psk ''
ap-scan 1
scan-ssid 1
}
More settings won't work in many cases!!! the AP sets the rest.