# Intel PRO/Wireless (ipw2200): Can't get wireless to work

## maystorm

(This has been moved from thread "Wireless just won't go.")

I've got an ACER Travelmate 4101WLMi on which I recently installed Gentoo. However, I can't get my ipw2200-based network card to work. Here are some details:

Modules loaded:

ipw2200

ieee80211

ieee80211_crypt

ieee80211_crypt_wep

According to 'iwconfig' my interface with wireless extensions is 'eth1'. I've also got a wired interface on 'eth0' which is running fine. 'net.eth0' and 'net.eth1' are symlinks to 'net.lo' in /etc/init.d.

My /etc/conf.d/net contains:

# Stuff for wired eth0:

config_eth0=( "192.168.2.189 netmask 255.255.255.0" )

routes_eth0=( "default gw 192.168.2.1" )

# Stuff for wireless eth1 (ipw2200):

config_eth1=( "192.168.2.188 netmask 255.255.255.0" )

routes_eth1=( "default gw 192.168.2.1" )

modules=( "iwconfig" )

essid_eth1="TANGO"

key_TANGO="xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx"

preferred_aps=( "TANGO" )

I've set RC_VERBOSE="yes" in /etc/conf.d/rc. When doing a "/etc/init.d/net.eth1 start" I get following output:

* Starting eth1

* Loading networking modules for eth1

* modules: apipa iwconfig essidnet iptunnel ifconfig

* iwconfig provides wireless

* ifconfig provides interface

* Configuring wireless network for eth1

* Connecting to "TANGO" (WEP enabled - open) ... [!!]

* Failed to configure wireless for eth1 [!!]

The failure message appears after aprox. 8 to 10 seconds. Using Ubuntu it works fine - however, I noticed that in Ubuntu the wireless i/f is 'eth0' and the wired i/f is 'eth1', so just vice versa as in Gentoo.

Any hint or advice is very much appreciated!

TIA

----------

## elestedt

Can you do 

```
iwlist scan
```

 and paste the results?

The obvious error is that it doesn't 'see' the AP...

----------

## maystorm

Yep, here we go:

```
lo      Interface doesn't support scanning.

eth0    Interface doesn't support scanning.

dummy0  Interface doesn't support scanning.

eth1    No scan result
```

BTW, when I do a "rmmod ipw2200 && modprobe ipw2200" dmesg shows following strange entries:

```
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.3

ipw2200: Copyright(c) 2003-2004 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

ipw2200: Radio Frequency Kill Switch is On:

Kill switch must be turned off for wireless networking to work.

ipw2200: No space for Tx

ipw2200: failed to send RTS_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send FRAG_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send POWER_MODE command

ipw2200: No space for Tx

ipw2200: failed to send TX_POWER command

ipw2200: No space for Tx

ipw2200: failed to send RTS_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send FRAG_THRESHOLD command

ipw2200: No space for Tx    

ipw2200: failed to send POWER_MODE command

ipw2200: No space for Tx

ipw2200: failed to send TX_POWER command
```

This doesn't look too healthy.  :Sad:  What's going wrong here?

----------

## elestedt

I might have identified the problem - your "wireless radio" button on the computer seems to be in a "off" state...

There two lines seem to imply that:

```
ipw2200: Radio Frequency Kill Switch is On:

Kill switch must be turned off for wireless networking to work. 
```

Try pressing it and then run 

```
iwlist scanning
```

 again.

(EDIT) NOTE: I have the same in mine when the wireless Kill Switch is On (or the les is not lit in my case, i have a ipw2200 as well)Last edited by elestedt on Wed Jul 20, 2005 8:44 am; edited 1 time in total

----------

## thesnowman

Which version of ipw2200 are you using?

Also, there's two scripts included with ipw2200 to load and unload the modules in the correct order.  The scripts are meant to be run from within the directory where the modules are built.  I've modified them to fit with where gentoo installs the modules.

/usr/local/bin/ipw2200unload:

```
#!/bin/sh

if [ `whoami` != "root" ]; then

        echo "You must be root to run this script."

        return

fi

unset UNLOADED

for i in ipw2200 ieee80211{,_crypt{_{tkip,ccmp,wep},}}; do

        if lsmod | grep -q $i; then

                UNLOADED="${UNLOADED}${i} "

                /sbin/rmmod $i

        fi

done

if [ -z "${UNLOADED}" ]; then

        echo "No modules unloaded."

else

        echo "Unloaded: $UNLOADED"

fi
```

/usr/local/bin/ipw2200load:

```
#!/bin/sh

# Copyright (C) 2004-2005 Intel Corporation

MODULE=ipw2200

if [ `whoami` != "root" ]; then

    echo "You must be root to run this script."

    return

fi

. /usr/local/bin/ipw2200unload

unset LOADED

modulesdir="/lib/modules/`uname -r`/net/"

#modulesdir="/lib/modules/`uname -r`/net/ieee80211/"

function load_pre

{

        for i in firmware_class; do

                if ! (lsmod | grep -q $i) && \

                        ! (modprobe $i > /dev/null 2>&1 && LOADED="${LOADED}${i} ") && \

                        ! (grep -q request_firmware /proc/kallsyms); then

                        if [ ! -e /proc/kallsyms ]; then

                                echo "Could not be determine if firmware_class is already loaded."

                                echo "Attempting to load driver anyway..."

                        else

                                echo "Firmware capabilities not found.  See INSTALL."

                        return 0

                fi

        fi

        done

        return 1

}

function load_modules

{

        IPW_DEBUG=""

        I_DEBUG=""

        for i in ieee80211_crypt ieee80211_crypt_{wep,tkip,ccmp}; do

                if [ -e "${modulesdir}/${i}.ko" ]; then

                        /sbin/modprobe ${i} && LOADED="${LOADED}${i} "

                fi

        done

        for i in ieee80211; do

                if [ -e "${modulesdir}/${i}.ko" ]; then

                        /sbin/modprobe ${i} ${I_DEBUG} && LOADED="${LOADED}${i} "

                fi

        done

        if [ -z $1 ]; then

                /sbin/modprobe ${MODULE} ${IPW_DEBUG} && LOADED="${LOADED}${MODULE} "

        else

                /sbin/modprobe ${MODULE} $@ && LOADED="${LOADED}${MODULE} "

        fi

        return 1

}

if ! load_pre && ! load_modules $@; then

        if [ -z "${LOADED}" ]; then

                echo "No modules loaded."

        else

                echo "Loaded: ${LOADED}"

        fi

else

        echo "Load failed."

fi
```

If you're using ipw2200-1.0.4 or earlier leave the modulesdir line as it is.  If you are using 1.0.5 or later comment out the modulesdir line and uncomment the other one.

Run ipw2200unload to unload all of the modules, then ipw2200load to load them in the correct order.

I've found it's sometimes necessary to unload the ipw firmware as well:

```
rmmod firmware_class
```

----------

## maystorm

@elestedt:

I shortly pressed the "wireless lan" switch and ran "iwlist scan" which gave no difference. Then I pressed the switch a bit longer (for about two to three seconds), then I got:

```
bash_prompt # Disabling IRQ #10
```

on the screen and afterwards an "iwlist scan" shows:

```
lo      Interface doesn't support scanning.

eth0    Interface doesn't support scanning.

dummy0  Interface doesn't support scanning.

eth1    Interface doesn't support scanning : Input/output error
```

Something seems to have changed but not for the better...  :Sad: 

----------

## maystorm

@thesnowman:

I'll check these scripts...

----------

## maystorm

BTW, when booting from the Gentoo Minimal CD the card works, but only after issuing this command (as explained here: http://ipw2200.sourceforge.net/):

```
echo 100 > /sys/class/firmware/timeout
```

It seems that everything is fine when using the hotplug system. Does this info help?

----------

## elestedt

 *maystorm wrote:*   

> @elestedt:
> 
> I shortly pressed the "wireless lan" switch and ran "iwlist scan" which gave no difference. Then I pressed the switch a bit longer (for about two to three seconds), then I got:
> 
> ```
> ...

 

I just compared which modules we have loaded - and I have one loaded which you do not...

```
firmware_class
```

 which is used by ipw2200.

have you installed net-wireless/ipw2200-firmware properly?

The only module in my modules.autoload.d/kernel-2.6 (relevant to ipw2200) is ipw2200 - the rest are loaded automatically.

----------

## maystorm

Module 'firmware_class' is indeed missing on my system. Is it supposed to be installed along with 'ipw2200-firmware'? I've got those installed:

```
net-wireless/ipw2200-firmware-2.2

net-wireless/ipw2200-1.0.3
```

However, an "etcat -f ipw2200-firmware" doesn't show any 'firmware_class.o' module and I can't do a "modprobe firmware_class" either. I noticed this module when booting from the Gentoo CD and within Ubuntu.

Would this mean something is corrupt in my installation?

----------

## elestedt

 *maystorm wrote:*   

> Module 'firmware_class' is indeed missing on my system. Is it supposed to be installed along with 'ipw2200-firmware'? I've got those installed:
> 
> ```
> net-wireless/ipw2200-firmware-2.2
> 
> ...

 

Actually that module *seems* to be part of the kernel - I don't know how I got it though... just went through the config but cannot find it.

equery gives this:

```
 # equery b firmware_class

[ Searching for file(s) firmware_class in *... ]

sys-kernel/gentoo-sources-2.6.12-r6 (/usr/src/linux-2.6.12-gentoo-r6/Documentation/firmware_class)

```

```
/lib/modules/2.6.12-gentoo-r6/kernel/drivers/base:

total 12K

-rw-r--r--  1 root root 11K Jul 19 19:15 firmware_class.ko

```

Hope that helps - i'll try to find the option...

One thing to try: have you enabled " Prevent firmware from being built" in the kernel?

----------

## maystorm

I've got this in Device Drivers -> Generic Driver Options:

```
[ ] Select only drivers that don't need compile-time external firmware

[ ] Prevent firmware from being built

<*> Hotplug firmware loading support
```

----------

## maystorm

Now module 'firmware_class' is loaded (after I have set both a.m. Generic driver options and recompiled kernel plus modules), however, to no avail. The card is still not working, both before and after pressing the "wireless LAN" switch.  :Sad: 

----------

## maystorm

Sorry, I forgot to mention that I also changed the "Hotplug firmware loading support" option to be a module. Obviously, "firmware_class" is provided and needed by the hotplug system.

----------

## elestedt

What do you get in dmesg and messages when loading and after you press the button?

Which kernel are you using?

Does the card work if you issue the echo command you mentoined earlier?

----------

## maystorm

I will answer later this evening as I'm now out.

Thanks anyway for your help and patience so far!

----------

## maystorm

 *elestedt wrote:*   

> What do you get in dmesg and messages when loading and after you press the button?
> 
> Which kernel are you using?
> 
> Does the card work if you issue the echo command you mentoined earlier?

 

1) Kernel is: gentoo-sources-2.6.12-r4

2) Issuing the echo command would not help.

3) This is the output of dmesg after "modprobe ipw2200":

```
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.3

ipw2200: Copyright(c) 2003-2004 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

ipw2200: Radio Frequency Kill Switch is On:

Kill switch must be turned off for wireless networking to work.

ipw2200: No space for Tx

ipw2200: failed to send RTS_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send FRAG_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send POWER_MODE command

ipw2200: No space for Tx

ipw2200: failed to send TX_POWER command

ipw2200: No space for Tx

ipw2200: failed to send RTS_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send FRAG_THRESHOLD command

ipw2200: No space for Tx

ipw2200: failed to send POWER_MODE command

ipw2200: No space for Tx

ipw2200: failed to send TX_POWER command
```

4) This is "modprobe ipw2200" after pressing the "wireless lan" switch (and after "Disabling IRQ #10" has appeared on the screen):

```
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.3

ipw2200: Copyright(c) 2003-2004 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: Unable to initialize device after 5 attempts.

ipw2200: failed to register network device

ipw2200: probe of 0000:06:03.0 failed with error -5
```

 :Sad: 

----------

## elestedt

I Would do the following:

1. Purge ipw2200* from the system

2. Upgrade kernel (or at least recompile with: make && make modules_install) - gentoo-sources-2.6.12-r6 is stable

3. Install ipw again.

Probably won't do any difference - but it's worth a try?

----------

## maystorm

As a first step I unmerged ipw2200*. Funny enough, after I rebooted the modules "ipw2200" and "ieee80211*" are still there and being loaded!  :Shocked: 

I've the impression that something on my system is plain wrong. Since I've just installed a fresh Gentoo a couple of days ago I'm considering just to start all over again...

----------

## elestedt

Sounds like a reinstall could work...

But epgrading the kernel should be enough.

----------

## maystorm

Okay, upgraded to gentoo-sources-2.6.12-r6, however, same result: Wireless card doesn't work and the same strange error messages in dmesg. However, I know for sure that yesterday evening these error messages were not present although I already had this

```
ipw2200: Radio Frequency Kill Switch is On:

Kill switch must be turned off for wireless networking to work.
```

message.

If the hardware was broken the card wouldn't work from the Gentoo CD, so we can exclude that. I'm still thinking to do a re-install. However, this is by far not my first Gentoo installation (it's the first one on a notebook) and I can't see what should have gone wrong this time...  :Sad: 

----------

## elestedt

```
ipw2200: Radio Frequency Kill Switch is On:

Kill switch must be turned off for wireless networking to work.
```

seems to be part of the driver - since I have this and my card works.

Many things seem to be able to go wrong in any number of ways... most of the errors I've had was due to bad USE-flags or optimizations.

I can tell you that gentoo-sources-2.6.12-r6 and ipw2200-1.0.3 and ipw2200-firmware-2.2 since that what I use...

----------

## milu

Maybe looking for acerhk module in portage will help a little. I know that there is support for additional keys in acer laptops.

This error about Radio switch is from HW - it shouldn't be driver issue.

----------

## swimmer

Hi maystorm, 

it has indeed to do with the radio on setting and your button on the front of your nice 4101WLMI  :Smile: 

I have the following in /etc/modules.d/ipw2200

```
options ipw2200 disable=1 led=1
```

After you entered this you have to run 

```
modules-update
```

Then you can remove the ipw2200 module and load it again with modprobe and look if you get the red led in the front already burning - try to start net.eth1 and if it does not work press the button and try it again ...

This should work ...

HTH

swimmer

PS: (I have an 4001WLMI btw)

----------

## maystorm

Thanks for all your replies. I'll check your hints and give an update this evening.

----------

## maystorm

@swimmer:

I added those two options in /etc/modules.d/ipw2200, and after booting dmesg shows:

```
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.3

ipw2200: Copyright(c) 2003-2004 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

ipw2200: Radio disabled by module parameter.
```

However, the LED in front does not light up and a 'net.eth1 start' doesn't work. When pressing the LED switch it doesn't light up either. BTW: It does also not light up in Ubuntu where the wireless card works; it only lights up in Windoze XP.

Now I will try the acerhk module as suggested by milu; I hope installing this module is a straightforward task and the documentation contains everything to understand what it does?

I saw that in the ~x86 branch there are newer versions of ipw2200 and ip2200-firmware; would it make sense to try those or is it not recommended to use them?

----------

## maystorm

@milu:

I've emerged acerhk and modprobe'd the module, loaded ipw2200 and tried 'net.eth1 start'. To no avail. I ended up now with lots of error messages in dmesg:

```
atkbd.c: Unknown key pressed (translated set 2, code 0xd5 on isa0060/serio0).

atkbd.c: Use 'setkeycodes e055 <keycode>' to make it known.

atkbd.c: Unknown key released (translated set 2, code 0xd5 on isa0060/serio0).

atkbd.c: Use 'setkeycodes e055 <keycode>' to make it known.

irq 10: nobody cared (try booting with the "irqpoll" option)

 [<c0137a0a>] __report_bad_irq+0x2a/0xa0

 [<c0137250>] handle_IRQ_event+0x30/0x70

 [<c0137b20>] note_interrupt+0x80/0xf0

 [<c01373a8>] __do_IRQ+0x118/0x130

 [<c0105279>] do_IRQ+0x19/0x30

 [<c01035e2>] common_interrupt+0x1a/0x20

 [<c011dcfe>] __do_softirq+0x2e/0x90

 [<c011dd86>] do_softirq+0x26/0x30

 [<c011de55>] irq_exit+0x35/0x40

 [<c010527e>] do_IRQ+0x1e/0x30

 [<c01035e2>] common_interrupt+0x1a/0x20

handlers:

[<e08ae850>] (snd_intel8x0_interrupt+0x0/0x240 [snd_intel8x0])

Disabling IRQ #10

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: Unable to initialize device after 5 attempts.

ipw2200: Failed to up device

ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.3

ipw2200: Copyright(c) 2003-2004 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: failed to send TX_POWER command

ipw2200: Unable to initialize device after 5 attempts.

ipw2200: failed to register network device

ipw2200: probe of 0000:06:03.0 failed with error -5
```

 :Sad: 

I must admit that I have now absolutely no clue what to do: In which order do I have to make things? Loading the modules in which order? Passing which options? At what stage pressing the LED switch?

I'd very much appreciate if somebody could tell me the correct sequence of things, at best doing those things manually on the command line without loading anything automatically during the Gentoo boot process. Once I have the card working manually I then can start configuring the boot/init scripts.

Many, many thanks in advance!

----------

## elestedt

I do thing like this:

1) modprobe ipw2200

2) press led button if needed (my computer, or linux driver, seems to remember which state it was in the last time)

3) /etc/init.d/net.eth1 start

That's all I need to do... it loads some more modules automagically when I load ipw2200:

```
firmware_class

ieee80211

ieee80211_crypt
```

There might be more things done automagically - but that's the only thing I know of...

But in your case the driver seems to have some problems with the card at the hardware level...

----------

## maystorm

 *elestedt wrote:*   

> But in your case the driver seems to have some problems with the card at the hardware level...

 

Those error messages indeed seem to point to hardware problems.

As the card is working when booting from the Gentoo CD I wonder whether I could build exactly the same kernel and modules as are used on that CD? Does anybody know by heart how to do this?

----------

## maystorm

Okay, I finally made some progress.

What I did is: I added the "irqpoll" kernel option in my GRUB config file (by this I got rid of this annoying "Disabling IRQ #10" error message), and when I now press the LED switch twice I can do a 'net.eth1 start' and the card works! Without acerhk module or anything else, that is.

At least this is a starting point although I've not yet completely understood what's going on here...

----------

## maystorm

 *swimmer wrote:*   

> it has indeed to do with the radio on setting and your button on the front of your nice 4101WLMI 
> 
> I have the following in /etc/modules.d/ipw2200
> 
> ```
> ...

 

Hi swimmer,

Have you found a way to activate the RF setting automatically during boot or do you also need to start wireless comm's manually?

----------

## milu

If you don't have led when ipw2200 is turned on you should do this

```
echo 1 > /sys/bus/pci/drivers/ipw2200/0000\:02\:04.0/led
```

----------

## mnagl

 *maystorm wrote:*   

> Okay, upgraded to gentoo-sources-2.6.12-r6, however, same result: Wireless card doesn't work and the same strange error messages in dmesg. However, I know for sure that yesterday evening these error messages were not present although I already had this
> 
> ```
> ipw2200: Radio Frequency Kill Switch is On:
> 
> ...

 

I tried the same on an Acer Extensa 2900 Notebook. After several hours I had success with the following:

-Installing acerhk

-Installing ipw2200 and ipw2200-firmware

-Loading the acerhk module before loading ipw2200 this way:

```
modprobe acerhk force_series=290 usedritek=1

echo 1 > /proc/driver/acerhk/wirelessled
```

-/etc/init.d/net.eth1 start where eth1 is the wlan-interface determined with iwconfig

-----------------------------

Matthias[/quote]

----------

## taskara

Did anyone resolve this?

I note this thread in the forums.

-c

----------

