# ipw2200 fails to load firmware [SOLVED]

## stefan.ciobaca

I have a problem with my 2195 wireless card.

I emerged recently ipw2200, ipw2200-firmware and ieee81211 and everything compiled smoothly.

However, I don't get a eth1/wlan0/whatever interface. When I do 'modprobe ipw2200', dmesg reveals the cause:

```

ieee80211_crypt: unregistered algorithm 'NULL' (deinit)

ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, 1.1.6

ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>

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

ipw2200: Copyright(c) 2003-2005 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection

ipw2200: ipw-2.4-boot.fw load failed: Reason -2

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

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

```

Looking into ipw2200 docs, I see the firmware might be in the wrong place. So I checked that, and it's in /lib/firmware, as /etc/hotplug/firmware.agent reads.

And yes, I have hot plug setup into my kernel.

What's wrong?Last edited by stefan.ciobaca on Wed Jan 18, 2006 2:36 pm; edited 1 time in total

----------

## unclecharlie

stefan,

A couple of things to check-

1. Is hotplug running in your default runlevel?

2. What kernel are you running? (If it's 2.6.15 then you don't need the ipw2200 and ieee80211 packages. The inbuilt kernel packages are equivalent. If it's an earlier kernel then you need those packages.)

3. Are you running the right driver? You said you're trying to get your 2195 card working... This suggests you need the ipw2100 driver.  :Wink: 

hope this helps, 

Charlie

----------

## stefan.ciobaca

1. not by default, I think. But modprobe ipw2200 fails (dmesg shows the failure) when done by hand, after /etc/init.d/hotplug start.

2. I'm running 2.6.14-r5.

3. Yes, it's the right driver. I spelled the card name incorrectly. 

06:03.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)

2200 and 2915 both use the ipw2200 driver.

I've checked some other threads and there seems to be a problem with udev. But I don't know how to recompile it using different options...

----------

## stefan.ciobaca

Hellppp! I really have no more ideas on this. I'm posting some more info on my configuration, so plsss helpppp

```
 

* /sbin/runscript.sh: must be root to run init scripts

stefan@mytux ~ $ su

Password:

mytux stefan # /etc/init.d/hotplug start

mytux stefan # modprobe ipw2200

mytux stefan # dmesg | grep ipw2200

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

ipw2200: Copyright(c) 2003-2005 Intel Corporation

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection

ipw2200: ipw-2.4-boot.fw load failed: Reason -2

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

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

mytux stefan # lspci | grep Wireless

06:03.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)

mytux stefan # cd /lib/firmware/

mytux firmware # ls

ipw-2.4-LICENSE  ipw-2.4-bss.fw        ipw-2.4-ibss.fw        ipw-2.4-sniffer.fw

ipw-2.4-boot.fw  ipw-2.4-bss_ucode.fw  ipw-2.4-ibss_ucode.fw  ipw-2.4-sniffer_ucode.fw

mytux firmware # cat /etc/hotplug/firmware.agent

#!/bin/sh

#

# Firmware-specific hotplug policy agent.

#

# Kernel firmware hotplug params include:

#

#       ACTION=%s [add or remove]

#       DEVPATH=%s [in 2.5 kernels, /sys/$DEVPATH]

#       FIRMWARE=%s

#

# HISTORY:

#

# 24-Jul-2003   Initial version of "new" hotplug agent.

#

# $Id: firmware.agent,v 1.4 2004/09/20 21:23:51 kroah Exp $

#

cd /etc/hotplug

. ./hotplug.functions

# DEBUG=yes export DEBUG

 directory of the firmware files

FIRMWARE_DIR=/lib/firmware

# mountpoint of sysfs

SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts)

# use /proc for 2.4 kernels

if [ "$SYSFS" = "" ]; then

    SYSFS=/proc

fi

#

# What to do with this firmware hotplug event?

#

case "$ACTION" in

add)

    if [ ! -e $SYSFS/$DEVPATH/loading ]; then

        sleep 1

    fi

    if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then

        echo 1 > $SYSFS/$DEVPATH/loading

        cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data

        echo 0 > $SYSFS/$DEVPATH/loading

    else

        echo -1 > $SYSFS/$DEVPATH/loading

    fi

    ;;

remove)

    ;;

*)

    mesg "Firmware '$ACTION' event not supported"

    exit 1

    ;;

esac

mytux firmware # cd /usr/src/linux

mytux linux # cat .config | grep NET

CONFIG_NET=y

# CONFIG_NET_KEY is not set

CONFIG_INET=y

# CONFIG_NET_IPIP is not set

# CONFIG_NET_IPGRE is not set

# CONFIG_INET_AH is not set

# CONFIG_INET_ESP is not set

# CONFIG_INET_IPCOMP is not set

# CONFIG_INET_TUNNEL is not set

CONFIG_INET_DIAG=y

CONFIG_INET_TCP_DIAG=y

CONFIG_NETFILTER=y

# CONFIG_NETFILTER_DEBUG is not set

# CONFIG_NETFILTER_NETLINK is not set

# CONFIG_IP_NF_NETBIOS_NS is not set

CONFIG_IP_NF_TARGET_NETMAP=y

# CONFIG_DECNET is not set

# CONFIG_NET_DIVERT is not set

# CONFIG_ECONET is not set

# CONFIG_NET_SCHED is not set

# CONFIG_NET_CLS_ROUTE is not set

# CONFIG_NET_PKTGEN is not set

CONFIG_NETDEVICES=y

# CONFIG_NET_SB1000 is not set

# CONFIG_ARCNET is not set

CONFIG_NET_ETHERNET=y

# CONFIG_NET_VENDOR_3COM is not set

# CONFIG_NET_VENDOR_SMC is not set

# CONFIG_NET_VENDOR_RACAL is not set

# CONFIG_NET_TULIP is not set

# CONFIG_NET_ISA is not set

# CONFIG_NET_PCI is not set

# CONFIG_NET_POCKET is not set

CONFIG_NET_RADIO=y

# CONFIG_PCMCIA_NETWAVE is not set

CONFIG_NET_WIRELESS=y

# CONFIG_NET_PCMCIA is not set

# CONFIG_NET_FC is not set

# CONFIG_NETCONSOLE is not set

# CONFIG_NETPOLL is not set

# CONFIG_NET_POLL_CONTROLLER is not set

# CONFIG_USB_USBNET is not set

CONFIG_USB_GADGET_NET2280=y

CONFIG_USB_NET2280=m

mytux linux # cat .config | grep FW

CONFIG_FW_LOADER=y

mytux linux # cat .config | grep WIRE

CONFIG_NET_WIRELESS=y

```

What's wrong here? What can I do?

----------

## unclecharlie

stefan,

You're running 2.6.14-r5...

I'd try putting 

sys-kernel/gentoo-sources      ~x86

into your /etc/portage/package.keywords file. Then download install and build the 2.6.15 kernel.

The built in drivers in the 2.6.15 kernel are the latest ones. So you don't need to reemerge the ipw2200 or ieee80211 modules. Just turn on those options in the kernel config. If you want WEP you need to make sure you have AES, SHA1, etc. enabled in crypto...

Charlie

----------

## stefan.ciobaca

Ok, I'll give that a shot and see what happens.

----------

## stefan.ciobaca

Ok. I have 2.6.15 up & running and I still get the same firmware loading error. Where do I look next? I'm really stuck on this...

----------

## dgaffuri

Which version of udev are you running?

----------

## unclecharlie

I've heard of udev firmware problems with 079. But I think it has been /etc related. Mainly because the problem only affects some users. Which makes me think that the config files for udev are being kludged during etc-update. (Best just to overwrite old files with new for udev) I'm running udev 070-r1(the current non-beta version.) on an ipw2200 without problems. I haven't tried udev-079 (the current ~x86 version) with my wireless yet...

So if you're on 079 and it doesn't work you can-

a) reemerge udev and overwrite the old config files with the new during etc-update.

b) downgrade to 070-r1 (which works for sure) and again, overwrite any existing udev config files with the new ones during etc-update.

If the problem is udev, then one of these options should fix it.

Charlie

----------

## dgaffuri

 *unclecharlie wrote:*   

> I've heard of udev firmware problems with 079. But I think it has been /etc related. Mainly because the problem only affects some users. Which makes me think that the config files for udev are being kludged during etc-update. (Best just to overwrite old files with new for udev) I'm running udev 070-r1(the current non-beta version.) on an ipw2200 without problems. I haven't tried udev-079 (the current ~x86 version) with my wireless yet...

 

You surely have to overwrite files during update, and to check your custom rules if you have any. No problem with 2.6.15,  udev-079 and in-kernel ipw2200 here. Note that the input event device requires udev-079 to work in 2.6.15, see this bug.

----------

## Martin Wagner

Hello!

I've had the same problem and solved it by emerging firmware 2.2, 2.3 and 2.4 and ipw2200 modules.

It works so far, but fails loading the ipw2200-module. I have to unload and reload the module for a couple of times until it suceeds. No idea why it's still failing - maybe its some kind of timeout problem...

----------

## unclecharlie

dgaffuri,

Thanks for the fyi. I just upgraded to 2.6.15 so I wouldn't have to mess with the ipw2200 and ieee80211 packages.

Looks like I'll be upgrading udev too... 

Charlie  :Wink: 

----------

## numbaonestunna

 *stefan.ciobaca wrote:*   

> I have a problem with my 2195 wireless card.
> 
> I emerged recently ipw2200, ipw2200-firmware and ieee81211 and everything compiled smoothly.
> 
> However, I don't get a eth1/wlan0/whatever interface. When I do 'modprobe ipw2200', dmesg reveals the cause:
> ...

 

I thought I put my firmware in /etc/firmware.... dumb idea, but you could try that.  You might have your firmware in the wrong directory.

----------

## stefan.ciobaca

Moving the files to /etc/firmware (easy is first) didn't work, as expected...

I'm running udev 070:

[code]mytux stefan # udevinfo -V

udevinfo, version 070[/code]

I'm going to try different versions, but this looks like some configuration problem. How can I debug it in more depth?

----------

## stefan.ciobaca

I'm now running gentoo-2.6.15-r1 and udev 079 and still I get the same error. It _must_ be something with the configuration files.Can someone help me ?

----------

## unclecharlie

Stefan,

Did you run etc-update?

And if so, did you make sure to overwrite the old udev files with the new ones? (Not merge them...)

Charlie

----------

## unclecharlie

stefan,

been thinking.

When you created the file /etc/init.d/net.eth1 did you copy it or just link it from /etc/init.d/net.lo?

If you copied it, then delete it (and any other interfaces) and link from /etc/init.d/net.lo like-

```

ln -s /etc/init.d/net.lo /etc/init.d/net.eth1

```

Check and see, this may be your issue.

Charlie

----------

## stefan.ciobaca

I don't think it's related. The firmware simply fails to load. The driver is the problem here.

Anyway, it was a link to net.eth0, but changed it to net.lo. Doesn't help. Firmware still doesn't load.

----------

## stefan.ciobaca

I ran etc-update but I think something is broken because it didn't find new config files for udev. Where are these located?

----------

## stefan.ciobaca

Just to make this clear:

1) I have a problem with etc-update. It doesn't find config files.

2) I did everything "by hand" in the /etc/udev and indeed there were some new config. Are there any other directories that I should specifically check?

----------

## jubajuba

I've got the same problem.

dmesg error output

```

ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, 1.1.9

ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>

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

ipw2200: Copyright(c) 2003-2005 Intel Corporation

ACPI: PCI Interrupt 0000:04:02.0[A] -> GSI 21 (level, low) -> IRQ 22

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection

ipw2200: 'ipw-2.4-boot.fw' firmware version not compatible (78 != 2)

ipw2200: Unable to load firmware: -22

ipw2200: failed to register network device

ACPI: PCI interrupt for device 0000:04:02.0 disabled

ipw2200: probe of 0000:04:02.0 failed with error -5

```

Kernel

```

sys-kernel/suspend2-sources

Latest version installed: 2.6.15-r2

```

ipw2200 driver and firmware

```

ipw2200 firmware

Latest version installed: 1.0.10

net-wireless/ipw2200-firmware

Latest version installed: 2.4

```

udev

```

sys-fs/udev

Latest version installed: 081

```

Any tips to a solution?

----------

## stefan.ciobaca

You have a different problem. In you case it tells you what the problem is:

[code]ipw2200: 'ipw-2.4-boot.fw' firmware version not compatible (78 != 2) [/code]

What kind of wireless card do you have? Check it with [code]lspci[/code]

In my case, it doesn't give me any reason (except for the -2 error code, which doesn't help me at all).

----------

## jubajuba

hm.. I tthink it's the ipw2200 driver I'm supposed to use. My card is:

```

04:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)

```

Portage thinks it's the right card atleast   :Confused: 

```

*  net-wireless/ipw2200

      Latest version available: 1.0.10

      Latest version installed: 1.0.10

      Size of downloaded files: 122 kB

      Homepage:    http://ipw2200.sourceforge.net

      Description: Driver for the Intel PRO/Wireless 2200BG/2915ABG miniPCI and 2225BG PCI adapters

      License:     GPL-2

*  net-wireless/ipw2200-firmware

      Latest version available: 2.4

      Latest version installed: 2.4

      Size of downloaded files: 264 kB

      Homepage:    http://ipw2200.sourceforge.net

      Description: Firmware for the Intel PRO/Wireless 2200BG/2915ABG miniPCI and 2225BG PCI adapters

      License:     ipw2200-fw

```

----------

## jubajuba

a reemerge of ipw2200-firmware solved the dmesg error.

this looks much better

```

ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, 1.1.9

ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>

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

ipw2200: Copyright(c) 2003-2005 Intel Corporation

ACPI: PCI Interrupt 0000:04:02.0[A] -> GSI 21 (level, low) -> IRQ 22

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection

```

But ifconfig still only lists my wire-basted (tg3) card.

----------

## stefan.ciobaca

unmerged ipw2200, got the latest kernel, recompiled, emerged again ipw2200, and now it works.

There was a  version change in ipw2200, and I think it fixed this.

Thanks for you support.

----------

