# ipw2200 still not working - firmware load result -2

## omega71122

Hi all,

I'm relatively new to Gentoo (tried it out on the recommendation of my friend who still can't believe I've switched to Linux on my Laptop).  Anyway, after following the Gentoo Wiki article (http://gentoo-wiki.com/HARDWARE_ipw2200) on how to set up the Intel IPW2200 wireless card, it still doesn't work.  I followed it to the letter.  When I run a dmesg, it gives me this output:

```
ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, git-1.1.7

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:02:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

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

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

ACPI: PCI interrupt for device 0000:02:09.0 disabled

ipw2200: probe of 0000:02:09.0 failed with error -5

ieee80211_crypt: registered algorithm 'WEP'
```

When I do a locate for the file ipw-2.4-boot.fw, it shows up as being in /lib/firmware.  I made sure that the radio switch on my laptop (Gateway 4520GZ) is on, and all my kernel modules (as far as I know) are in place.  Just to be sure I didn't miss anything, here's a listing of my kernel modules:

```

defiant chris # lsmod

Module                  Size  Used by

ieee80211_crypt_wep     4352  0

ipw2200               183108  0

ieee80211              30024  1 ipw2200

ieee80211_crypt         5120  2 ieee80211_crypt_wep,ieee80211

snd_mixer_oss          17408  1

snd_intel8x0           30236  2

snd_ac97_codec         94368  1 snd_intel8x0

snd_ac97_bus            2176  1 snd_ac97_codec

snd_pcm                82312  3 snd_intel8x0,snd_ac97_codec

snd_timer              21764  1 snd_pcm

snd_page_alloc          8968  2 snd_intel8x0,snd_pcm

snd                    50020  6 snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer

soundcore               8032  2 snd

evdev                   7936  1

cpufreq_stats           4740  0

cpufreq_powersave       1792  0

cpufreq_performance     1920  0

cpufreq_ondemand        5532  0

cpufreq_conservative     6564  0

video                  14340  0

thermal                11272  0

fan                     3588  0

button                  5136  0

battery                 8580  0

ac                      3716  0

microcode               5920  0

cpuid                   2820  0

acpi_cpufreq            5512  1

freq_table              3716  2 cpufreq_stats,acpi_cpufreq

processor              19904  2 thermal,acpi_cpufreq

8139too                24576  0

mii                     5120  1 8139too

```

I loaded the wep module after I loaded ipw2200.  Does anyone have any thoughts on this?  Thanks in advance.

----------

## acolin

Do you have hotplug firmware loading support enabled ?

You sysfs is mounted correctly ?

----------

## TerranAce007

The ipw2200 drivers that have just recently been added to the kernel tree are older, and I haven't had much luck with them. Compile your kernel without the drivers, then emerge ieee80211, ipw2200, ipw2200-firmware, and wireless-tools. Once completed, do iwconfig (as root) and see what it says.

This is the output of my desktop system, which has a different wireless card, but yours should be very similar:

```
ra0       RT2500 Wireless  ESSID:"roomnet"

          Mode:Ad-Hoc  Frequency=2.462 GHz  Cell: 66:88:7A:2A:31:D8

          Bit Rate=11 Mb/s

          RTS thr=2312 B   Fragment thr=2312 B

          Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX   Security mode:open

          Link Quality=0/100  Signal level=-120 dBm  Noise level:-194 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

```

----------

## omega71122

acolin: Hotplug firmware is compiled in the kernel, and I'm not sure what sysfs is.  I can tell you that I followed the Gentoo installation manual pretty much to the letter (2005.1), so if it's a step in there, then I did it.

I just double-checked that all the stuff for the ipw2200 and ieee80211 were up to date (emerge --sync;emerge --update --deep world), ran modprobe ipw2200, and iwconfig, and it still tells me that I don't have a wireless card.  The dmesg output is basically the same.  I'm gonna restart the machine and see if it helps.

Okay...  I just restarted, and redid the modprobe, and here's the output in dmesg:

```
ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, git-1.1.7

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:02:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

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

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

ACPI: PCI interrupt for device 0000:02:09.0 disabled

ipw2200: probe of 0000:02:09.0 failed with error -5

ieee80211_crypt: unregistered algorithm 'NULL'

```

It looks like it's the same as before.  If anyone knows what the error codes mean, I'd appreciate it.

----------

## DynamicPink

I have this card in my laptop and got it to work by compiling the kernel drivers for the IPW2200 first, and then doing an emerge ipw2200. Portage bombed out after it installed the firmware. After I rebooted, the card began working with the kernel drivers. You have to install both the kernel drivers and the portage version of ipw2200. I'm writing this from memory, but it should be correct. In any case, it worked for me.   :Very Happy: 

----------

## dgaffuri

 *DynamicPink wrote:*   

> I have this card in my laptop and got it to work by compiling the kernel drivers for the IPW2200 first, and then doing an emerge ipw2200. Portage bombed out after it installed the firmware. After I rebooted, the card began working with the kernel drivers. You have to install both the kernel drivers and the portage version of ipw2200. I'm writing this from memory, but it should be correct. In any case, it worked for me.  

 

Emerging ipw2200-firmware instead of ipw2200 would have been simpler, no bomb out at all  :Smile:  . In any case omega71122 is trying to use out of kernel ipw2200 (version 1.0.10).

@omega71122

Do you have hotplug installed? Which version of kernel and udev?

----------

## omega71122

Assuming udev is sys-fs/udev in the portage tree, I'm using version 079-r1 and my kernel version is 2.6.15-gentoo-r1.  I do have hotplug installed.  Here's a screencap of that section of make menuconfig (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
```

I think I'm gonna try unmerging the wireless stuff, cleaning the kernel tree, and remerging it.  And if that doesn't work, I'll see if I can find someone around here who knows a bit about getting Linux on a laptop.

Yep, that didn't work.  Same output...

----------

## dgaffuri

I meant the hotplug package, you already mentioned you kernel config.

----------

## omega71122

I think so...

```
defiant chris # emerge --search hotplug

Searching...

[ Results for search key : hotplug ]

[ Applications found : 2 ]

*  sys-apps/hotplug

      Latest version available: 20040923-r1

      Latest version installed: 20040923-r1

      Size of downloaded files: 43 kB

      Homepage:    http://linux-hotplug.sourceforge.net

      Description: USB and PCI hotplug scripts

      License:     GPL-2

*  sys-apps/hotplug-base

      Latest version available: 20040401

      Latest version installed: 20040401

      Size of downloaded files: 40 kB

      Homepage:    http://linux-hotplug.sourceforge.net

      Description: Base Hotplug framework

      License:     GPL-2
```

I just tried something.  It occured to me that I didn't modprobe the crypt stuff, and when I did, it didn't work (module not found), so I recompiled my kernel with crc32c and arc4c compiled into the kernel.  I got this output.  I've seen it before, but I didn't think it was important because it appeared to be about my sound not working (which is annoying because I don't have the sound stuff in my autoload file).  In any case, here's the whole output from the operation:

```
ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, git-1.1.7

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:02:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

Unable to handle kernel NULL pointer dereference at virtual address 00000000

 printing eip:

c01140c3

*pde = 00000000

Oops: 0000 [#1]

PREEMPT 

Modules linked in: ipw2200 ieee80211 ieee80211_crypt snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd_page_alloc snd soundcore evdev cpufreq_stats cpufreq_powersave cpufreq_performance cpufreq_ondemand cpufreq_conservative video thermal fan button battery ac microcode cpuid acpi_cpufreq freq_table processor 8139too mii

CPU:    0

EIP:    0060:[<c01140c3>]    Not tainted VLI

EFLAGS: 00010017   (2.6.15-gentoo-r1) 

EIP is at __wake_up_common+0x13/0x70

eax: dd1237dc   ebx: dd1237d4   ecx: 00000001   edx: 00000000

esi: 00000246   edi: 00000001   ebp: d88f3e8c   esp: d88f3e70

ds: 007b   es: 007b   ss: 0068

Process artsd (pid: 5869, threadinfo=d88f2000 task=dd14a5a0)

Stack: 00000068 00000000 d88f3e8c de9b686b dd1237d4 00000246 d88f2000 d88f3ea8 

       c01141b7 dd1237dc 00000003 00000001 00000000 00000000 dd14a5a0 c040370e 

       dd1237dc 00000001 dd14a5a0 c0114090 00100100 00200200 d88f3edc d88f3ee0 

Call Trace:

 [<de9b686b>] snd_pcm_sw_params_user+0x6b/0x90 [snd_pcm]

 [<c01141b7>] __wake_up_locked+0x27/0x30

 [<c040370e>] __down+0xce/0x100

 [<c0114090>] default_wake_function+0x0/0x20

 [<c040207f>] __down_failed+0x7/0xc

 [<de9bb58e>] .text.lock.pcm_native+0x6d/0x1df [snd_pcm]

 [<c01499b9>] vma_prio_tree_insert+0x29/0x60

 [<de9ba27e>] snd_pcm_playback_ioctl1+0x4e/0x2d0 [snd_pcm]

 [<c014f108>] do_mmap_pgoff+0x458/0x760

 [<c016f2ee>] do_ioctl+0x8e/0xa0

 [<c016f4b5>] vfs_ioctl+0x65/0x1f0

 [<c016f685>] sys_ioctl+0x45/0x70

 [<c0103185>] syscall_call+0x7/0xb

Code: 04 89 55 08 5d e9 3e f6 ff ff 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 57 56 53 83 ec 10 8b 45 08 8b 7d 10 8b 10 39 c2 <8b> 32 74 42 89 f6 8d bc 27 00 00 00 00 8b 5a f4 8d 42 f4 8b 55 

 <6>note: artsd[5869] exited with preempt_count 1

scheduling while atomic: artsd/0x00000001/5869

 [<c04026c2>] schedule+0x612/0x620

 [<c04036c5>] __down+0x85/0x100

 [<c0114090>] default_wake_function+0x0/0x20

 [<c015e131>] invalidate_inode_buffers+0x11/0x80

 [<c040207f>] __down_failed+0x7/0xc

 [<de9b9730>] snd_pcm_release+0x0/0xe0 [snd_pcm]

 [<de9bb644>] .text.lock.pcm_native+0x123/0x1df [snd_pcm]

 [<c01766f1>] destroy_inode+0x51/0x60

 [<de9b9753>] snd_pcm_release+0x23/0xe0 [snd_pcm]

 [<c015cd9a>] __fput+0x15a/0x170

 [<c015b1fd>] filp_close+0x4d/0x80

 [<c0119234>] put_files_struct+0x74/0xb0

 [<c0119f2e>] do_exit+0x11e/0x430

 [<c0103b0b>] die+0x17b/0x180

 [<c0117d27>] printk+0x17/0x20

 [<c011257e>] do_page_fault+0x2ee/0x5b7

 [<de9ca381>] snd_intel8x0_codec_read+0x61/0x120 [snd_intel8x0]

 [<c0112290>] do_page_fault+0x0/0x5b7

 [<c01033af>] error_code+0x4f/0x54

 [<c01140c3>] __wake_up_common+0x13/0x70

 [<de9b686b>] snd_pcm_sw_params_user+0x6b/0x90 [snd_pcm]

 [<c01141b7>] __wake_up_locked+0x27/0x30

 [<c040370e>] __down+0xce/0x100

 [<c0114090>] default_wake_function+0x0/0x20

 [<c040207f>] __down_failed+0x7/0xc

 [<de9bb58e>] .text.lock.pcm_native+0x6d/0x1df [snd_pcm]

 [<c01499b9>] vma_prio_tree_insert+0x29/0x60

 [<de9ba27e>] snd_pcm_playback_ioctl1+0x4e/0x2d0 [snd_pcm]

 [<c014f108>] do_mmap_pgoff+0x458/0x760

 [<c016f2ee>] do_ioctl+0x8e/0xa0

 [<c016f4b5>] vfs_ioctl+0x65/0x1f0

 [<c016f685>] sys_ioctl+0x45/0x70

 [<c0103185>] syscall_call+0x7/0xb

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

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

ACPI: PCI interrupt for device 0000:02:09.0 disabled

ipw2200: probe of 0000:02:09.0 failed with error -5

ieee80211_crypt: unregistered algorithm 'NULL'

ieee80211_crypt: registered algorithm 'NULL'

ieee80211: 802.11 data/management/control stack, git-1.1.7

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:02:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

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

ipw2200: Unable to load firmware: -2

ipw2200: failed to register network device

ACPI: PCI interrupt for device 0000:02:09.0 disabled

ipw2200: probe of 0000:02:09.0 failed with error -5

```

----------

## dakwo

hi !

sounds exactly like the problem i had ... 4 month ago   :Very Happy:  !

There seems to be an error while loading the firmware ...

I was told, that newer versions of udev register themselves as the default firmware handler .. sometimes even without being 

able to load the firmware properly ... nice  :Wink: !

Here you can find the solution that worked for me ...

http://www.openthought.org/blosxom.cgi/Blog

... good luck   :Wink: 

----------

## g4j

Thanks dakwo.  I've been fighting with ipw2200 for a while. Tried the suggestion that you linked to. It worked... sort of. I've been using ifplugd to prevent the wireless from running if when a cable is connected. It seems that when the wiresless is brought up by hotplugging firmware, ifplugd can't turn it off. And when both connections are active, neither works.

Do you have any suggestions for getting hotplugd firmware to work with ifplugd?

Thanks.

----------

## omega71122

dakwo, I tried both methods listed in that link.  The first (using /sbin/firmware_helper) produced a Segmentation Fault (I didn't check the dmesg), and the second...  well, let's just say that when I ran iwconfig after loading the ipw2200 module, iwconfig wouldn't even respond to a kill -9 command.  It just hang there as a zombie when I killed its parent process (it became owned by pid 1).  It looks like it's hanging.  When I did a "ps -Aef | grep ipw", it gives me this result (using the second method):

```
root      6202     5  0 21:49 ?        00:00:00 [ipw2200/0]

root      6276  6191  0 21:51 pts/1    00:00:00 modprobe -r ipw2200

root      6288  6191  0 21:53 pts/1    00:00:00 grep ipw
```

The modprobe -r is me trying to get rid of the module, with no luck.  The first process (pid 6202) is owned by the process "kthread".  I'm pretty much lost right about now.  I'm gonna browse around and try to find anything else that might be of use.

----------

## dakwo

@g4j

well ... sounds to me that your network devices are all loaded automatically ... why??  :Question: 

I'm not shure getting your problem right ... but if you just start your devices manually there's no need to use ifplugd??!

----------

## dakwo

@omega71122

what about dmesg?

----------

## omega71122

I have absolutely no clue what I did to make it work, but, somehow, I think it works now.  Here's some output to make sure I'm not crazy:

```
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:02:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

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.

spurious 8259A interrupt: IRQ7.

defiant linux # iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

eth1      unassociated  ESSID:off/any

          Mode:Managed  Channel=0  Access Point: 00:00:00:00:00:00

          Bit Rate=0 kb/s   Tx-Power=20 dBm

          Retry limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

defiant linux # iwlist eth1 scanning

eth1      Scan completed :

          Cell 01 - Address: 00:06:25:DB:5A:95

                    ESSID:"<hidden>"

                    Protocol:IEEE 802.11b

                    Mode:Master

                    Channel:11

                    Encryption key:on

                    Bit Rate:11 Mb/s

                    Extra: Rates (Mb/s): 1 2 5.5 11

                    Quality:97  Signal level:0  Noise level:0

                    Extra: Last beacon: 100ms ago

          Cell 02 - Address: 00:14:95:3B:0C:7A

                    ESSID:"2WIRE487"

                    Protocol:IEEE 802.11bg

                    Mode:Master

                    Channel:6

                    Encryption key:on

                    Bit Rate:54 Mb/s

                    Extra: Rates (Mb/s): 1 2 5.5 11 6 9 12 18 24 36 48 54

                    Quality:35  Signal level:0  Noise level:0

                    Extra: Last beacon: 840ms ago

          Cell 03 - Address: 9A:13:AC:10:95:4F

                    ESSID:"AL ASSAULT"

                    Protocol:IEEE 802.11b

                    Mode:Ad-Hoc

                    Channel:11

                    Encryption key:off

                    Bit Rate:11 Mb/s

                    Extra: Rates (Mb/s): 1 2 5.5 11

                    Quality:27  Signal level:0  Noise level:0

                    Extra: Last beacon: 2892ms ago

```

At the top is the end of the dmesg output (the part after I ran modprobe ipw2200).  The good part is Cell 01, which is my WAP (It's the only access point (I think that's what Mode: Master means) that is running on channel 11 at 802.11b, and it's like 4 feet away from my laptop right now, and it's the strongest).

----------

## dakwo

congrat. ...   :Very Happy:   !

Any idea about the ACPI problem ...? 

Same problem I have, when I remove the battery from my notebook ...!

----------

## omega71122

Going back through root's .bash_history, I think that the command "make modules_install" in /usr/src/linux made a difference.  Yep, I feel pretty stupid.  Though for some reason, I can't connect to an access point.  It tries, and (using wlassistant) it appears to connect, but it doesn't for some reason.  It fails at "Testing connection".  I'm gonna be looking more into this in a few days (project due tonight and a lab report due Wednesday - both I really haven't started on  :Smile:  )

As for the ACPI, I think it has to do with the Centrino stuff, but don't quote me on that.  Probably something with the power saving stuff in the IPW2200 chipset.  Once I do get the wireless really working, on to the sound!

----------

## Nick C

dont use the firmware_helper file in the udev rules, use the program/script that comes with newer versions of udev: /sbin/udev_run_hotplugd, seems to stop the firmware loading errors for me although i havnt been able to test whether everything works as ive not taken my laptop into work yet.

----------

## far0k

thanks for that tip iIdown graded my udev to 70 but after reading that upgraded again ran udev_run_hotplugd and now everything works fine with my 2915

----------

