Gentoo Wiki ArchivesGentoo Wiki

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.

Note: Use wpa_supplicant with the 'ext' driver, not 'ipw'.

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

Retrieved from "http://www.gentoo-wiki.info/Ipw2200"

Last modified: Sun, 07 Sep 2008 14:07:00 +1000 Hits: 89,203

Created by NickStallman.net, Luxury Homes Australia
Real estate agents should list their apartments, townhouses and units in Australia.