Ipw2200
Contents |
About
This is Intel's opensource driver for the Intel PRO/Wireless 2200BG and 2915ABG wireless network cards.
Basic Setup
Kernel Setup
| Linux Kernel Configuration: |
Networking --->
Wireless --->
[*] Wireless extensions
<*> Generic IEEE 802.11 Networking Stack (DEPRECATED)
<*> IEEE 802.11 WEP encryption (802.1x)
<*> IEEE 802.11i CCMP support
<*> IEEE 802.11i TKIP encryption
Device Drivers --->
Generic Driver Options --->
[*] Userspace firmware loading support
[*] Network device support --->
Wireless LAN --->
[*] Wireless LAN (IEEE 802.11)
It is highly recommend to compile the driver as module, see below
<M> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
[*] Cryptographic API --->
--- Cryptographic API
<*> Cryptographic algorithm manager
<*> SHA1 digest algorithm
<*> SHA224 and SHA256 digest algorithm
<*> ECB support
<*> CBC support
<*> PCBC support
<*> AES cipher algorithms
<*> ARC4 cipher algorithm
<*> Michael MIC keyed digest algorithm
|
Because there is no easy way to add the firmware at kernel boot time, the driver gets initalized without firmware. So it is highly recommend to compile the driver as module and let udev automatically load the driver at init boot time. For more informations see this bug report.
Software Setup
Install the firmware: ipw2200-firmware:
emerge -a ipw2200-firmware
If you compiled the driver in as a module (as my .config does), you'll need to load it at boot:
echo "ipw2200" >> /etc/modules.autoload.d/kernel-2.6
Then run update-modules. This should also load it's dependencies such as ieee80211.
Now you can try to load the wireless driver:
modprobe ipw2200
Run an lsmod|grep ipw2200 to make sure it was actually loaded.
Make sure your wireless card is not disabled. Most laptops have a button for enabling/disabling wireless. Press this button (and hold for a second) and it should activate your card.
For further configuration follow the Gentoo Handbook.
Advanced Topics
Kismet
Kismet works fine with the Intel 2200BG card. Here's the relevant config line one has to modify:
source=ipw2200,eth1,2200BG
Ensure that your wireless transmitter/receiver is on
If can't get a connection, check the status of the radio kill switch:
# cat /sys/bus/pci/drivers/ipw2200/*/rf_kill
And here, what the status means:
0 = RF kill not enabled (radio on) 1 = SW based RF kill active (radio off) 2 = HW based RF kill active (radio off) 3 = Both HW and SW RF kill active (radio off)
Check the Laptop Table on how to toggle the transmitter state.
LED
For laptops with wireless LEDs, simply add led=1 to /etc/modprobe.d/ipw2200:
| File: /etc/modprobe.d/ipw2200 |
options ipw2200 other options led=1 |
If there is already an "options ipw2200" line, then just add "led=1" at the end. Afterwards run update-modules and reload the ipw2200 module.
Troubleshooting
Failure with ioctl[xxxx]: No such device
- emerge -av ipw2200-firmware. Reload the driver and try again.
Problems with the firmware and kernel 2.6.14 to 2.6.16'
- You need to install ipw2200-firmware version 2.4 (3.0 won't work). Mask the newer version with {{{1}}} and downgrade the firmware with emerge --oneshot ipw2200-firmware
Trouble with WEP and / or WPA
- If you see errors in /var/log/messages like:
ieee80211: eth1: Unknown management packet: 0 ipw2200: Firmware error detected. Restarting. ieee80211: eth1: Unknown management packet: 0 ipw2200: failed to send SYSTEM_CONFIG command
- or
ipw2200: Firmware error detected. Restarting. ipw2200: Sysfs 'error' log already exists.
- you can turn off hardware crypto by adding hwcrypto=0 to /etc/modprobe.d/ipw2200:
| File: /etc/modprobe.d/ipw2200 |
options ipw2200 other options hwcrypto=0 |
- Afterwards run update-modules.
Necessary configuration
After my first attempt, the wireless connection appeared to be working, but it would grind to a halt when transfering files larger than a couple of MB. Setting 'hwcrypto=0' as a module parameter was insufficient. I had to disable two more options as module parameters in order to get the network working reliably. Make sure you have compiled the driver as a module. Then edit /etc/modprobe.d/ipw2200 and add the following line:
| File: /etc/modprobe.d/ipw2200 |
options ipw2200 hwcrypto=0 qos_enable=0 qos_burst_enable=0 |
The option hwcrypto=0 turns off the hardware encryption function of the card (causes problems and slows transfers).
Then run update-modules and reboot. (Manually unloading and reloading the module may be sufficient, but you will need to reboot anyways if you have rebuilt your kernel.) Everything should work properly after this.
Encryption
If you want to connect to a network with WPA or WPA2 encryption, you can use net-wireless/wpa_supplicant. With my home network, I have tested WEP, WPA Personal and WPA2 Personal encryption. You may also want to use wpa_supplicant even if you are using no encryption or WEP, because it provides a flexible way of defining networks with which to auto-associate. If you are going to use wpa_supplicant, then you should edit /etc/conf.d/wireless and add the following lines:
| File: /etc/conf.d/wireless |
modules_eth1=( "wpa_supplicant" ) wpa_supplicant_eth1="-B -Dwext -ieth1 -c/etc/wpa_supplicant.conf" |
(Of course, this assumes that your wireless card is detected as eth1, and your wired card is detected as eth0.) The '-B' option tells wpa_supplicant to run in the background, which will prevent your bootup process from pausing until timeout if there is no wireless network available. The '-Dwext' tells wpa_supplicant to use the generic Linux wireless extensions driver. '-ieth1' tells wpa_supplciant to use the network interface 'eth1'. '-c' tells it where the configuration file is.
Although wpa_supplicant has a driver called 'ipw', which is supposed to work with the ipw2200 driver, it does not appear to work. When I tried to use it, I got numerous error messages of the form:
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
Using the 'ext' driver instead got rid of the problem. (Maybe this will be fixed in a future version of wpa_supplicant.)
Alternatively edit /etc/conf.d/net and add the following lines: open up /etc/conf.d/wireless with your favorite text editor
| File: /etc/conf.d/net |
modules=("wpa_supplicant")
wpa_supplicant_eth1=("-c /etc/wpa_supplicant.conf -Dwext")
config_eth1=("dhcp")
essid_eth1="insert_your_essid_here" # Default ESSID used for the card
mode_eth1="auto"
wpa_timeout_eth1=60
channel_eth1="6"
sleep_scan_eth1="1"
# This is supposed to be preferred access points that it will use if found after scanning
preferred_aps=("essid 1" "essid 2") # Replace with your actual essids
associate_order="any"
|
Note that the 'ipw' driver of wpa_supplicant doesn't work. Use 'wext' instead.
Now you need to edit your /etc/wpa_supplicant.conf for your wireless network configuration.
Make sure the kernel module ipw2200 is running, and then start /etc/init.d/net.eth1 service.
Unable to load firmware
If wireless is detected but an error occurs loading the firmware binary file:
| Code: Output of "dmesg | grep ipw2200" |
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.1 ipw2200: Copyright(c) 2003-2004 Intel Corporation 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 |
To work around this, increase the default timeout value:
echo 100 > /sys/class/firmware/timeout
and then reload the ipw2200 module:
rmmod ipw2200 && modprobe ipw2200
irqpoll
If you are getting messages like these, try booting with irqpoll option:
| Code: dmesg | grep ipw2200 |
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.3mprq ipw2200: Copyright(c) 2003-2006 Intel Corporation ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection ipw2200: Radio Frequency Kill Switch is On: ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels) ipw2200: Failed to send TX_POWER: Command timed out. ipw2200: Failed to send TX_POWER: Command timed out. ipw2200: Failed to send TX_POWER: Command timed out. ipw2200: Failed to send TX_POWER: Command timed out. ipw2200: Failed to send TX_POWER: Command timed out. ipw2200: Failed to register device after 5 attempts |
Links
Created by NickStallman.net, Luxury Homes Australia
Real estate agents should list their apartments, townhouses and units in Australia.
