# ipw2200 module firware not getting loaded

## Are`awn

I have a Dell C840 laptop and have recently reinstalled gentoo. My first problem is that the ipw2200 kernel module is not loading due to firmware load failure. The following are the versions I am running:

```

sys-kernel/gentoo-sources-2.6.20-r8

sys-fs/udev-104-r12

sys-apps/hotplug-20040923-r2

sys-apps/hotplug-base-20040401

net-wireless/ipw2200-firmware-3.0

net-wireless/wireless-tools-28

```

I have followed the gentoo wiki hardware entry for ipw2200 (http://gentoo-wiki.com/HARDWARE_ipw2200). Seems to be a tad out-of-date. My issue seems to stem from udev running, '/lib/udev/firmware.sh'. I ran the command, 'udevcontrol log_priority=debug', to get udev debug messages in my /var/log/messages. I also edited the firmware.sh script to see what piece is failing, basically so I can see what $DEVPATH is set to.

the error in messages is the following: 

```

Jul 19 11:02:00 C840 udevd[1090]: udev_event_run: seq 1824 forked, pid [6045], 'remove' 'firmware', 0 seconds old

Jul 19 11:02:00 C840 ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2

Jul 19 11:02:00 C840 ipw2200: Unable to load firmware: -2

Jul 19 11:02:00 C840 ipw2200: failed to register network device

Jul 19 11:02:00 C840 ipw2200: probe of 0000:02:03.0 failed with error -5

Jul 19 11:02:00 C840 udevd-event[6045]: run_program: 'udev_run_devd firmware'

Jul 19 11:02:00 C840 udevd-event[6045]: run_program: '/lib/udev/udev_run_devd' returned with status 0

Jul 19 11:02:00 C840 udevd-event[6045]: pass_env_to_socket: passed -1 bytes to socket '/org/kernel/udev/monitor',

Jul 19 11:02:00 C840 udevd-event[6045]: pass_env_to_socket: passed 191 bytes to socket '/org/freedesktop/hal/udev_event',

Jul 19 11:02:00 C840 udevd-event[6045]: udev_event_run: seq 1824 finished

Jul 19 11:02:00 C840 udevd-event[6040]: run_program: '/lib/udev/firmware.sh' (stderr) 'udev firmware loader misses sysfs directory'

Jul 19 11:02:00 C840 udevd-event[6040]: run_program: '/lib/udev/firmware.sh' returned with status 1

Jul 19 11:02:00 C840 udevd-event[6040]: run_program: 'udev_run_devd firmware'

Jul 19 11:02:00 C840 udevd-event[6040]: run_program: '/lib/udev/udev_run_devd' returned with status 0

Jul 19 11:02:00 C840 udevd-event[6040]: pass_env_to_socket: passed -1 bytes to socket '/org/kernel/udev/monitor',

Jul 19 11:02:00 C840 udevd-event[6040]: pass_env_to_socket: passed 185 bytes to socket '/org/freedesktop/hal/udev_event',

Jul 19 11:02:00 C840 udevd-event[6040]: udev_event_run: seq 1823 finished

Jul 19 11:02:00 C840 udevd[1090]: udev_done: seq 1823, pid [6040] exit with 1, 10 seconds old

Jul 19 11:02:00 C840 udevd[1090]: udev_done: seq 1824, pid [6045] exit with 0, 0 seconds old
```

$DEVPATH for the script, /lib/udev/firmware.sh , has the value, "/class/firmware/0000:02:03.0". And the script is failing since the directory, "/sys/class/firmware/0000:02:03.0" does not exists (at least it doesn't when I check after the modprobe ipw2200). My kernel supports loading of firmware, so I am unsure what is the root cause of the issue. Details of my kernel:

```

Generic Driver Options  --->

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

   [ ] Prevent firmware from being built

  <*> Userspace firmware loading support

  Network device support  --->

    Wireless LAN (non-hamradio)  --->

      [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions

      <M>   Intel PRO/Wireless 2200BG and 2915ABG Network Connection
```

My kernel options are only lapic, I have tried tons of other options (i.e. noapci, pciroute=irq, etc) with no luck. Thoughs, ideas, advice ?

----------

## crime_minister

Hey, looks like I'm experiencing the same difficulties as you are, though my laptop is an HP dv4000; otherwise the essential details are the same.

I'm looking forward to hearing any advice people have to offer about this little hiccup.  :Smile: 

----------

## marinheiro

Identical symptoms on a sony vaio vgn-bx294vp after upgrading to kernel 2.6.22-r5. Anyone found a solution yet?

Graham

----------

## bLUEbYTE84

In Linux 2.6.22, the whole wireless layer is replaced. That means incompatibility with older drivers and I guess, older firmware.

Only solution I can think of is downgrading to 2.6.21. Or waiting for newer drivers&firmware.

----------

## G2k

same issue here, Sony Vaio VGN FS-660

----------

## marinheiro

The original poster in this thread was using 2.6.20, so there must be an ipw2200 specific problem as well as the overall kernel changes in the current version, no?

----------

## Mark Clegg

If it's any help, my system's reporting the following, and it's working fine, and has done since I installed the card, many kernel versions ago...

/var/log/messages

```
Aug 29 17:50:35 darkstar ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0km

Aug 29 17:50:35 darkstar ipw2200: Copyright(c) 2003-2006 Intel Corporation

Aug 29 17:50:35 darkstar ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

Aug 29 17:50:35 darkstar ipw2200: Detected geography ZZR (14 802.11bg channels, 0 802.11a channels)
```

Kernel version (gentoo-sources-2.6.22-r5)

```

darkstar ~ # uname -a

Linux darkstar 2.6.22-gentoo-r5 #1 PREEMPT Thu Aug 23 19:52:52 BST 2007 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz GenuineIntel GNU/Linux

```

Wireless card (2200BG Mini PCI card)

```

darkstar ~ # lspci

02:0b.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)

```

Modules

```

darkstar ~ # lsmod

aes                    27584  2

ieee80211_crypt_ccmp    6144  2

ipw2200               125872  0

ieee80211              29384  1 ipw2200

ieee80211_crypt         4736  2 ieee80211_crypt_ccmp,ieee80211

```

I have net-wireless/ipw2200-firmware version 3.0 installed.

----------

## marinheiro

I reran make menuconfig and removed all the additional options (debug etc) with the ipw2200 module. After reinstalling the kernel, everything worked fine. 

Graham

----------

## sirlark

I had the same problem, after upgrading to kernel 2.6.22-r5. It turns out I made the ipw2200bg driver built in, instead of a module. I recompiled the kernel with the driver as a module, and now the firmware loads fine...

----------

