ipw2200 driver fails to load firmware (patch attached)

Bug #180544 reported by Tomasz Sterna on 2008-01-05
40
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
Undecided
Unassigned
linux (Ubuntu)
Medium
Unassigned

Bug Description

Today I upgraded my Hardy installation and it upgraded 2.6.22-14-generic kernel to 2.6.24-2-386 and my wireless network stopped working.

smoku@wing:~$ uname -a
Linux wing 2.6.24-2-386 #1 Thu Dec 20 16:56:01 GMT 2007 i686 GNU/Linux
smoku@wing:~$ dmesg | grep ipw
[ 26.893248] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[ 26.893253] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[ 26.960394] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
[ 28.421616] ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
[ 28.421622] ipw2200: Unable to load firmware: -2
[ 28.421626] ipw2200: failed to register network device
[ 28.422564] ipw2200: probe of 0000:06:0b.0 failed with error -5

No wonder... There is no ipw2200 firmware for 2.6.24-2-386 only for 2.6.24-2-generic

smoku@wing:~$ ls -1 /lib/firmware/2.6.24-2-*/ipw2200*
/lib/firmware/2.6.24-2-generic/ipw2200-bss.fw
/lib/firmware/2.6.24-2-generic/ipw2200-ibss.fw
/lib/firmware/2.6.24-2-generic/ipw2200-sniffer.fw

Tomasz Sterna (smoku) wrote :

After booting with 2.6.24-2-generic ipw2200 works fine.

Tomasz Sterna (smoku) wrote :

linux-image-2.6.24-4-386 upgrade had broken it again

Please do not setup broken kernel image as default after upgrade...

SKAL (sir-kalot) wrote :

Hi all...

It seems that I've lost all the ipw2200 firmware files.

I'm using a 2.6.24-10-386 kernel. But it seems linux-restricted-modules-2.6.24-10-386 linux-restricted-modules-2.6.24-10-generic linux-restricted-modules-2.6.24-10-server does not gives it.

Leo

Daniel Hahler (blueyed) wrote :

Assigning to the kernel package, because it's ipw2200.ko, which fails on -386, while it works with -generic.
SKAL, please keep your issue separate, e.g. in a new bug report. Thank you.

It can also happen the other way around, so that it works only for -generic, but not -386, see bug 158858.

It appears the problem is the missing firmware.
However, I cannot confirm this with current Hardy:
$ find /lib/firmware/2.6.24-11-386 /lib/firmware/2.6.24-11-generic -name ipw2200\*
/lib/firmware/2.6.24-11-386/ipw2200-bss.fw
/lib/firmware/2.6.24-11-386/ipw2200-sniffer.fw
/lib/firmware/2.6.24-11-386/ipw2200-ibss.fw
/lib/firmware/2.6.24-11-generic/ipw2200-bss.fw
/lib/firmware/2.6.24-11-generic/ipw2200-sniffer.fw
/lib/firmware/2.6.24-11-generic/ipw2200-ibss.fw

Is there anything that removes the files? (I've just installed linux-ubuntu-modules-2.6.24-11-386 to see if there's a difference)

So, SKAL, your issue _is_ related, of course. Sorry for the confusion.

Please try "sudo apt-get install --reinstall linux-ubuntu-modules-2.6.24-11-generic", the firmware files should be included there.

Ok... it seems that the fw files are in linux-ubuntu-modules-2.6.24-11-XXXXX pkg. After installing it everything seems ok...

Daniel Hahler (blueyed) wrote :

SKAL, you hadn't installed linux-ubuntu-modules-* for your current kernel?
The linux-image meta package (e.g. linux-image-generic) depends on the corresponding linux-ubuntu-modules-...-generic package.
Don't you have the meta package for your kernel installed?

Daniel Hahler wrote:
> SKAL, you hadn't installed linux-ubuntu-modules-* for your current kernel?
> The linux-image meta package (e.g. linux-image-generic) depends on the corresponding linux-ubuntu-modules-...-generic package.
> Don't you have the meta package for your kernel installed?
>
Yes it was, but I don't know why it was not working... anyway now it
seems ok for me now. tnx

Leo

I'm also getting this.

modprobe ipw2200

dmesg:
[33072.678722] ieee80211_crypt: registered algorithm 'NULL'
[14171.277726] ieee80211: 802.11 data/management/control stack, git-1.1.13
[14171.277733] ieee80211: Copyright (C) 2004-2005 Intel Corporation <email address hidden>
[14171.323906] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[14171.323915] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[14171.324472] ACPI: PCI Interrupt 0000:01:0d.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
[14171.324693] ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
[14208.629645] ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
[14208.629659] ipw2200: Unable to load firmware: -2
[14208.629667] ipw2200: failed to register network device
[14208.630542] ACPI: PCI interrupt for device 0000:01:0d.0 disabled
[14208.630569] ipw2200: probe of 0000:01:0d.0 failed with error -5

lspci:
01:0d.0 Network controller: Intel Corporation PRO/Wireless 2915ABG Network Connection (rev 05)
 Subsystem: Intel Corporation Unknown device 1001
 Flags: medium devsel, IRQ 11
 Memory at d0201000 (32-bit, non-prefetchable) [size=4K]
 Capabilities: [dc] Power Management version 2

uname -a:
Linux lifebook34 2.6.24-12-generic #1 SMP Mon Mar 10 15:32:00 UTC 2008 i686 GNU/Linux

ls -l /lib/firmware/2.6.24-12-generic/ipw2200-*
-rw-r--r-- 1 root root 191142 2008-03-11 14:02 /lib/firmware/2.6.24-12-generic/ipw2200-bss.fw
-rw-r--r-- 1 root root 185660 2008-03-11 14:02 /lib/firmware/2.6.24-12-generic/ipw2200-ibss.fw
-rw-r--r-- 1 root root 187836 2008-03-11 14:02 /lib/firmware/2.6.24-12-generic/ipw2200-sniffer.fw

Daniel Hahler (blueyed) wrote :

bhaagensen, that's odd: seems that the ipw2200 module is looking in the wrong path?!
Can you look at it using strace, to see where it looks up the path etc?
I'm not very used to strace either, so you may want to look at "man strace", but generally "sudo strace modprobe ipw2200 2>&1 | less -S" should do the trick.
Do you remember having installed some new packages, which may have caused this?

smoku (original reporter), does it fail for you with each new kernel release, because the 386 kernel gets installed again? (If so, it may be related to bug 188579, as the root cause)

bhaagensen (bhaagensen) wrote :

strace didn't return anything useful (I'm no expert)

open("/lib/modules/2.6.24-12-generic/kernel/drivers/net/wireless/ipw2200.ko", O_RDWR) = 3
fcntl64(3, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}) = 0
open("/proc/modules", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f77000
read(4, "ieee80211 35528 0 - Live 0xf8c61"..., 1024) = 1024
read(4, "ive 0xf8997000\nirda 203068 1 sms"..., 1024) = 1024
read(4, "ive 0xf88b1000\n8139too 27520 0 -"..., 1024) = 463
read(4, "", 1024) = 0
close(4) = 0
munmap(0xb7f77000, 4096) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=174604, ...}) = 0
mmap2(NULL, 174604, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb7de4000
init_module(0xb7de4000, 174604, "") = 0
munmap(0xb7de4000, 174604) = 0
close(3) = 0
exit_group(0) = ?
Process 14354 detached

The problem has been there since I upgraded from Gutsy a few days ago. Do you know how one can get a trace of the files that ipw2200.ko opens?

Ryan Sinn (ryan-sinn) wrote :

same issue coming from a gusty dist-upgrade to hardy...

it seems as though hardy only partially installs the correct modules...

Installing ALL generic and 386 kernel image module packages fixed my wireless card and sound problems (neither were detected and modules would NOT load even though they were in the /lib/ directory.)

Nick Leverton (nick-leverton) wrote :
Download full text (4.4 KiB)

I have the same symptom at boot time. However once the system is booted, I can rmmod ipw2200 and then insert it again, and the adaptor then works.

The ipw2200 adaptor worked right from boot time with dapper, edgy and feisty. The adaptor always fails at boot and has to be removed/inserted since I dist-upgraded to hardy last week.

Dmesg excerpt from boot time showing firmware load failure:

[ 0.000000] Linux version 2.6.24-12-generic (buildd@palmer) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu4)) #1 SMP Wed Mar 12 23:01:54 UTC 2008 (Ubuntu 2.6.24-12.22-generic)
...snips...
[ 17.918662] ieee80211_crypt: registered algorithm 'NULL'
[ 17.924905] ieee80211: 802.11 data/management/control stack, git-1.1.13
[ 17.924971] ieee80211: Copyright (C) 2004-2005 Intel Corporation <email address hidden>
[ 17.931693] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[ 17.931774] ipw2200: Copyright(c) 2003-2006 Intel Corporation
...snips...
[ 18.501492] ACPI: PCI Interrupt 0000:03:03.0[A] -> GSI 17 (level, low) -> IRQ 17
[ 18.502188] ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
[ 18.503108] ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
[ 18.503171] ipw2200: Unable to load firmware: -2
[ 18.503229] ipw2200: failed to register network device
[ 18.503328] ACPI: PCI interrupt for device 0000:03:03.0 disabled
[ 18.503396] ipw2200: probe of 0000:03:03.0 failed with error -5
...snips...
[ 19.229148] PM: Resume from disk failed.
[ 19.248154] ReiserFS: dm-4: found reiserfs format "3.6" with standard journal
...etc...

Device 03:03.0 is the wireless adaptor:
03:03.0 Network controller: Intel Corporation PRO/Wireless 2915ABG Network Connection (rev 05)

Dmesg excerpt from immediately after boot, showing results of rmmod/insmod:

[ 125.636667] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[ 125.636675] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[ 125.638717] ACPI: PCI Interrupt 0000:03:03.0[A] -> GSI 17 (level, low) -> IRQ 17
[ 125.640986] ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
[ 125.829906] ipw2200: Detected geography ZZE (13 802.11bg channels, 19 802.11a channels)
[ 126.439979] eth0: no IPv6 routers present
[ 126.654021] ieee80211_crypt: registered algorithm 'TKIP'
[ 127.153299] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 129.404845] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 139.849429] eth0: no IPv6 routers present

The firmware file exists:
# ls -l /lib/firmware/2.6.24-12-generic/ipw2200-bss.fw
-rw-r--r-- 1 root root 191142 2008-03-11 13:02 /lib/firmware/2.6.24-12-generic/ipw2200-bss.fw

The following excerpt from an old dmesg log shows ipw2200 working, even with the gutsy kernel that I briefly installed before deciding to jump right to hardy.

[ 0.000000] Linux version 2.6.20-15-generic (root@palmer) (gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)) #2 SMP Sun Apr 15 07:36:31 UTC 2007 (Ubuntu 2.6.20-15.27-generic)
...snips...
[ 4.552000] PM: Resume from disk failed.
[ 4.580000] ReiserFS: dm-4: found reiserfs format "3.6" with standard journal
...snips...
[ 19.304000] ieee80211_crypt: registered algorit...

Read more...

Nick Leverton (nick-leverton) wrote :

I've managed to capture the full firmware error message at boot time (many device driver error messages, such as this one, are still only printed to console not logged, which can be awkward at times like this).

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ACPI: PCI interrupt for device 0000:03:03.0 disabled
ipw2200: probe of 0000:03:03.0 failed with error -5
firmware_helper[2429]: main: error loading '/lib/firmware/ipw2200-bss.fw' for device '/devices/pci0000:00/0000:00:1e/0/0000:03:03.0/firmware/0000:03:03.0' with driver '(unknown)'

As you see firmware_helper is trying to load the firmware from /lib/firmware/ipw2200-bss.fw rather than its actual location of /lib/firmware/`uname -r`/ipw2200-bss.fw

Hope this info helps,

Nick

Nick Leverton (nick-leverton) wrote :

Still trying to track this one backwards ...

Just confirmed that if I revert to Gutsy 2.6.22 (keeping Hardy userland/udev/etc), then the ipfw2200 loads fine. The interface doesn't come up for reasons not yet known, but driver/firmware loads OK and a simple ifdown/ifup will fix the interface.

In Hardy 2.6.24, presumably we are running from initrd at the time of the new "early module load". My /boot/initrd.img-2.6.24-12-generic does not contain /lib/firmware at all. I wonder if firmware_loader is being correctly called, perhaps it is the initramfs that's being created wrongly ?

If so, this might also account for why some people find that reinstalling the kernel makes the problem go away: the initrd would be rebuilt.

I did have some problems with my initrd in the Hardy upgrade because I had yaird as my initrd builder (in edgy/feisty it worked fine, but in gutsy/hardy yaird fails). Unfortunately uninstalling yaird doesn't change /etc/kernel-img.conf back. So I had to manually change it to use update-initramfs. My /etc/kernel-img.conf is as follows:

do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
ramdisk = /usr/sbin/update-initramfs

Not sure where to go from here: comment/help would be welcome ...

Nick Leverton (nick-leverton) wrote :

Final note for the evening: don't know if it's relevant, but my initramfs.conf has "MODULES=dep". It originally had "MODULES=most" but in hardy this gave me an unbootable system because the initrd was too large and overflowed low memory.

Nick Leverton (nick-leverton) wrote :

Confirmed that the problem with firmware loading is because update-initramfs does not include the firmware in the initrd.

The attached patch to initramfs-tools lets the ipw2200 module load at boot time.

I am not very happy about having to special-case this module but on the other hand it is no worse than the several dozen other special cases in initramfs.

It really needs a generic way to sort out all these non-depmod special dependencies, most especially of all the firmware dependencies ! However I am not going to tackle such a major segment of work just a month before hardy is released.

I'm sure all contributors to this and the half dozen other duplicates would be very grateful if you developers can get this fix in before the release though.

Nick Leverton (nick-leverton) wrote :

Umm, this problem is a killer under hardy 2.6.24 for anyone running an ipw2200 wireless adaptor. initramfs-tools fails to include the needed firmware in the initrd. Any chance my patch could be included in initramfs-tools please ? If you need more evidence than I already posted, please contact me !

Jeff (la3875) wrote :

All;

Being a noob I have barely any idea how to participate in this except to say that my card stopped working after recent upgrade and installation of the restricted packages. I gets closer to working in 2.6.24-12 but still no love. I hope they fix this soon, because I was very impressed at the wireless success on the Hardy beta install.

Keep up the great work everyone!

smlx (sml) wrote :

Thanks for all your work Nick! This bug has been driving me crazy.

Any chance this could be updated in the repos?

GeneW (etwilson) wrote :

I installed that patch to initramfs-tools and rebooted but am still getting the same firmware errors. Looks like I'm re-installing Gibbon until this bug gets fixed.

Nick Leverton (nick-leverton) wrote :

Hi GeneW,

I'm sorry to hear it. Do you have /etc/kernel-img.conf that looks like mine ?

do_symlinks = yes
 relative_links = yes
 do_bootloader = yes
 do_bootfloppy = no
 do_initrd = yes
 link_in_boot = no
 ramdisk = /usr/sbin/update-initramfs

If update-initramfs is being called with the patch applied then it should add the firmware.

On the other hand there could well be more than one problem here ...
I see the initramfs-tools package has just been re-issued but this fix is still not applied. But - I now have working ipw2200 even though this patch is not included in it. And I've had no "firmware error, restarting" messages recently (last five days). Has something else changed concerning module firmware behaviour I wonder ?

I think it's safe to say that "Hardy 8.04 LTS" means "long term support" not necessarily "long term stability" :-)

Nick

On Sat, Jun 14, 2008 at 03:34:36PM -0000, Nick Leverton wrote:

> On the other hand there could well be more than one problem here ...
> I see the initramfs-tools package has just been re-issued but this fix
> is still not applied. But - I now have working ipw2200 even though this
> patch is not included in it.

I spoke too soon, just rebooted into latest kernel and once again the
same error:

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2

I can apply the above patch to the new
/usr/share/initramfs-tools/hook-functions and rebuild initramfs to get
a working driver at boot again.

Don't know how to raise the visibility on this bugfix ... anyone ?

> And I've had no "firmware error, restarting"
> messages recently (last five days). Has something else changed concerning
> module firmware behaviour I wonder ?

At least this remains true, I've had only three "Firmware error,
restarting" since 8th June. Prior to that it was several times per hour
so this at least has improved a lot :)

Nick
--
Serendipity: http://www.leverton.org/blosxom (last update 6th June 2008)
        "The Internet, a sort of ersatz counterfeit of real life"
                -- Janet Street-Porter, BBC2, 19th March 1996

nick, any chance of some step-by-step instructions for applying your patch
in latest hardy?

On Tue, Jun 17, 2008 at 10:55 AM, Nick Leverton <email address hidden> wrote:

> On Sat, Jun 14, 2008 at 03:34:36PM -0000, Nick Leverton wrote:
>
> > On the other hand there could well be more than one problem here ...
> > I see the initramfs-tools package has just been re-issued but this fix
> > is still not applied. But - I now have working ipw2200 even though this
> > patch is not included in it.
>
> I spoke too soon, just rebooted into latest kernel and once again the
> same error:
>
> ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
> ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
>
> I can apply the above patch to the new
> /usr/share/initramfs-tools/hook-functions and rebuild initramfs to get
> a working driver at boot again.
>
> Don't know how to raise the visibility on this bugfix ... anyone ?
>
> > And I've had no "firmware error,
> restarting"
> > messages recently (last five days). Has something else changed concerning
> > module firmware behaviour I wonder ?
>
> At least this remains true, I've had only three "Firmware error,
> restarting" since 8th June. Prior to that it was several times per hour
> so this at least has improved a lot :)
>
> Nick
> --
> Serendipity: http://www.leverton.org/blosxom (last update 6th June 2008)
> "The Internet, a sort of ersatz counterfeit of real life"
> -- Janet Street-Porter, BBC2, 19th March 1996
>
> --
> ipw2200 driver fails to load firmware (patch attached)
> https://bugs.launchpad.net/bugs/180544
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Nick Leverton (nick-leverton) wrote :

Krazyd, sorry I missed your query until I had the same problem crop up yet again after an upgrade, due to the fact the Ubuntu devs are still ignoring this bug :-(

Save the patch into your home directory, then it's just two steps:

# Apply the patch
sudo cat ipw200-initramfs-firmware.diff | patch -p0
# Update the initramfs with the needed firmware
sudo update-initramfs -u

Keep the patch around as you will have to do this each time initramfs-tools is updated.

Frederik Sdun (playya) wrote :

I still have this error.
i rebuilded the initramfs with the patch and it includes the firmwares, but i always get some "Rx invalid crypt" errors if i try to connect to a wpa encrypted network. Open aps aren't a problem. WEP not tested.

i got this error on intrepid and debian lenny too.

But the driver is installed twice:
backports-modules installes to /lib/modules/`uname -r`/updates/
linux-image to /lib/modules/`uname -r`/kernel/drivers/net/wireless/

i tried both in initramfs but no result :(

On Wed, Oct 29, 2008 at 11:06:01AM -0000, playya wrote:
> I still have this error.
> i rebuilded the initramfs with the patch and it includes the firmwares, but i always get some "Rx invalid crypt" errors if i try to connect to a wpa encrypted network. Open aps aren't a problem. WEP not tested.
>
> i got this error on intrepid and debian lenny too.

Playya, your problem sounds like a different bug from the one in this
report. You would be better off opening a new issue and re-posting your
error message there (especially since this bug is getting no attention
anyway).

Nick

Hey Nick,
my firmware is loading properly now in Intrepid - is this bug still an issue
for you?

On Sat, Nov 1, 2008 at 7:56 PM, Nick Leverton <email address hidden> wrote:

> On Wed, Oct 29, 2008 at 11:06:01AM -0000, playya wrote:
> > I still have this error.
> > i rebuilded the initramfs with the patch and it includes the firmwares,
> but i always get some "Rx invalid crypt" errors if i try to connect to a wpa
> encrypted network. Open aps aren't a problem. WEP not tested.
> >
> > i got this error on intrepid and debian lenny too.
>
> Playya, your problem sounds like a different bug from the one in this
> report. You would be better off opening a new issue and re-posting your
> error message there (especially since this bug is getting no attention
> anyway).
>
> Nick
>
> --
> ipw2200 driver fails to load firmware (patch attached)
> https://bugs.launchpad.net/bugs/180544
> You received this bug notification because you are a direct subscriber
> of the bug.
>

On Tue, Nov 04, 2008 at 01:55:55AM -0000, krazyd wrote:
> Hey Nick,
> my firmware is loading properly now in Intrepid - is this bug still an issue
> for you?

Hi Krazy

I haven't tried Intrepid yet - this laptop is getting a bit unreliable
(failing to boot or unexpected shutdowns, no apparent cause except age !)
I don't want to do anything which might destabilise it, so it's still
running Hardy. I'm happy to hear the firmware loading problem is fixed
in Intrepid, and thanks for checking back with me.

Nick

During the Intrepid development cycle the linux-ubuntu-modules package was merged with the linux kernel package. I'm moving this forward to target the linux kernel package. If and when you are able to test Intrepid please let us know your results regarding this issue. Thanks.

Changed in linux-ubuntu-modules-2.6.24:
status: Triaged → Incomplete

I received an email from Jeff which doesn't seem to have been updated here. I'll paste the response below:

"I have been successful with the wireless driver in both the 8.04.1 and 8.10 packages from the live disks and more specifically am currently running gOS gadgets (8.04.1) on my Dell 600m laptop. As far as I'm concerned, the issue is resolved for me.

Thanks all!"

smlx (sml) wrote :

marking fixed, as has been confirmed twice now.

Changed in linux:
status: Incomplete → Fix Released
Changed in initramfs-tools (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers