2.6.32-33-generic iwlagn firmware broken

Bug #796336 reported by Patrick Welche
This bug affects 19 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released

Bug Description

With 2.6.32-32 (which is what I am using to write this using wireless, so all of your automatic data gathering will have happened with the working kernel), the Intel Corporation Wireless WiFi Link 5100
works. After the upgrade to 2.6.32-33 it doesn't because:

2.6.32-32 iwlagn:
firmware: requesting iwlwifi-5000-2.ucode
loaded firmware version

2.6.32-33 iwlagn:
firmware: requesting iwlwifi-5000-5.ucode
Driver unable to support your firmware API. Driver supports v5, firmware is v0.
Could not read microcode: -22

Which suggests that the firmware in iwlwifi-5000-5.ucode is broken...

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: linux-image-2.6.32-33-generic 2.6.32-33.65
Regression: Yes
Reproducible: Yes
ProcVersionSignature: Ubuntu 2.6.32-32.62-generic
Uname: Linux 2.6.32-32-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC262 Analog [ALC262 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Architecture: amd64
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC262 Analog [ALC262 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 /dev/snd/controlC0: prlw1 1694 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
 Card hw:0 'Intel'/'HDA Intel at 0xff9f8000 irq 22'
   Mixer name : 'Realtek ALC262'
   Components : 'HDA:10ec0262,11790606,00100302'
   Controls : 20
   Simple ctrls : 13
Date: Sun Jun 12 21:24:07 2011
HibernationDevice: RESUME=UUID=b1f69a43-a673-4525-aa05-46506afa8206
ProcCmdLine: root=UUID=b38ed20a-c3e9-4a95-a982-f8884c425177 ro quiet splash quiet
RelatedPackageVersions: linux-firmware 1.34.10
SourcePackage: linux

dmi.bios.date: 01/26/2010
dmi.bios.vendor: TOSHIBA
dmi.bios.version: Version 3.10
dmi.board.asset.tag: 0000000000
dmi.board.name: Portable PC
dmi.board.vendor: TOSHIBA
dmi.board.version: Version A0
dmi.chassis.asset.tag: 0000000000
dmi.chassis.type: 10
dmi.chassis.vendor: TOSHIBA
dmi.chassis.version: Version 1.0
dmi.modalias: dmi:bvnTOSHIBA:bvrVersion3.10:bd01/26/2010:svnTOSHIBA:pnPORTEGER600:pvrPPR61E-01900CEN:rvnTOSHIBA:rnPortablePC:rvrVersionA0:cvnTOSHIBA:ct10:cvrVersion1.0:
dmi.product.name: PORTEGE R600
dmi.product.version: PPR61E-01900CEN
dmi.sys.vendor: TOSHIBA

Revision history for this message
Patrick Welche (prlw1) wrote :
Brad Figg (brad-figg)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
lith (minilith) wrote :

Duplicate of bug #794291?

Andy Whitcroft (apw)
tags: added: regression-proposed
removed: regression-update
Revision history for this message
Jörg Baach (jbaach) wrote :

I can confirm this bug on my t400 running ubuntu lucid, "2.6.32-33-generic-pae", and a "03:00.0 Network controller: Intel Corporation Wireless WiFi Link 530". The solution in #794291 worked for me.

Revision history for this message
Julian Wiedmann (jwiedmann) wrote :

There's multiple things going on here.

1. lucid-proposed now claims to support API version 5 (http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-lucid.git;a=commit;h=19449afc28addded0724437c9952efb0d3efaabf), although it's lacking the necessary code to handle the new firmware file format.
The new format has an all-zero header (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e9a44dc0bb718c28b20a48f551818036ef090ab), so when verifying the firmware the driver ends up calculating the API as v0 - but as it expects at least v1, it complains and refuses to load the ucode.

2. after failing to verify the 5000-5.ucode, the driver doesn't try to load any of the older, working firmware files (such as 5000-2.ucode).

Revision history for this message
Julian Wiedmann (jwiedmann) wrote :

(for people testing -proposed: the easiest workaround right now is probably renaming the 5000-5.ucode, so that the driver never tries to pick it up)

Revision history for this message
linrunner (linrunner) wrote :

Another possibilty is restricting the driver to use iwlwifi-5000-2.ucode (see patch).

Andy Whitcroft (apw)
Changed in linux (Ubuntu):
status: Confirmed → Triaged
Andy Whitcroft (apw)
tags: added: regression-updates
removed: regression-proposed
Revision history for this message
Patrick Welche (prlw1) wrote :

I just grabbed


and was surprised to find sha1sum:

22bf6093ed8204027cc3207c739d2cab9cc92ea3 iwlwifi-5000-ucode-
8d94177b509be3fb653ce8ba0c633244e4abf5f3 /lib/firmware/iwlwifi-5000-5.ucode

Replacing the package distributed microcode with the one from intellinuxwireless didn't help. The excellent analysis in comment 4 shows why that obviously wouldn't have helped, but this suggests a third possible error...

Revision history for this message
Andy Whitcroft (apw) wrote :

To confirm what Julian says, when we offer up an ABI#5 ucode binary lucid does not understand it and the new format has a zero version number in the legacy version location (as marker of the new version). This breaks the old driver and prevents the older version being tried.

it is not all clear that it is appropriate for the patch below to have been applied. Seems we got it via stable. Bad.

  commit 19449afc28addded0724437c9952efb0d3efaabf
  Author: Fry, Donald H <email address hidden>
  Date: Wed Feb 16 11:49:34 2011 -0800

    iwlagn: Support new 5000 microcode.

    BugLink: http://bugs.launchpad.net/bugs/780588

    commit 41504cce240f791f1e16561db95728c5537fbad9 upstream.

    New iwlwifi-5000 microcode requires driver support for API version 5.

    Signed-off-by: Don Fry <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: Stanislaw Gruszka <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

Revision history for this message
Herton R. Krzesinski (herton) wrote :

Yes, the patch ("iwlagn: Support new 5000 microcode") shoudn't have been applied on 2.6.32 and 2.6.33 stable trees.

Support for the iwlagn new firmware file format was only added beginning with 2.6.35 (commit "iwlagn: implement loading a new firmware file type"), so the patch is only for 2.6.35 or later.

Revision history for this message
Ben James (something-for-the-pain) wrote :

Can the 2.6.32 tree be rolled back in that case then? As it's an LTS and a fix is known, can it be applied?

Revision history for this message
Steve Conklin (sconklin) wrote :

Yes, we'll revert this patch and upload again at the end of this verification cycle, and will not release to -updates with this problem

Revision history for this message
rduke15 (rduke15) wrote :

The following workaround can be used until this bug is fixed (renaming the new firmware, to force loading the older one):

    mv /lib/firmware/iwlwifi-5000-5.ucode /lib/firmware/iwlwifi-5000-5.ucode.off

Other more complex workarounds are proposed in the duplicate bug reports #794291 and #794814

Revision history for this message
Steve Conklin (sconklin) wrote :

The offending patch has been reverted in the latest kernel build 2.6.32-33.67, which is currently building and should be available in -proposed within a day or so.

Revision history for this message
Greg Gorman (gregg-public) wrote :

Regards to comment 5 - didn't work on my Lenovo x201, still hangs so waiting on this to hit Lucid LTS!

Revision history for this message
Julian Wiedmann (jwiedmann) wrote :

Should be fixed with 2.6.32-33.68 in -proposed.

Per thinkwiki.org, the x201 has a 6000 series wireless chip - that means it's not affected by this bug. This seems like a different issue, please open a new bug for it.

Changed in linux (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Greg Gorman (gregg-public) wrote :

@Julian - Not sure I agree. I see several 6000 "-5" firmware updates too, so I wonder if we are seeing the same thing. The symptoms are similar - GNOME locks up when the wifi card associates with an endpoint. Here's the list in /lib/firmware, if you still think I should open an new bug I will.

[BTW: I feel stupid not renaming the 6000 series files to see if that fixes it...will try that over the weekend when I get a chance. :) ]

ggo@ggo-laptop:/lib/firmware$ ls -la iwlwifi*
-rw-r--r-- 1 root root 335056 2010-12-14 09:25 iwlwifi-1000-3.ucode
-rw-r--r-- 1 root root 150100 2010-12-14 09:25 iwlwifi-3945-2.ucode
-rw-r--r-- 1 root root 187972 2010-12-14 09:25 iwlwifi-4965-2.ucode
-rw-r--r-- 1 root root 345008 2010-12-14 09:25 iwlwifi-5000-1.ucode
-rw-r--r-- 1 root root 353240 2010-12-14 09:25 iwlwifi-5000-2.ucode
-rw-r--r-- 1 root root 340696 2011-03-03 09:00 iwlwifi-5000-5.ucode
-rw-r--r-- 1 root root 337400 2010-12-14 09:25 iwlwifi-5150-2.ucode
-rw-r--r-- 1 root root 462280 2010-12-14 09:25 iwlwifi-6000-4.ucode
-rw-r--r-- 1 root root 444128 2011-02-11 07:26 iwlwifi-6000g2a-5.ucode
-rw-r--r-- 1 root root 460912 2011-02-11 07:26 iwlwifi-6000g2b-5.ucode
-rw-r--r-- 1 root root 463692 2011-03-03 09:00 iwlwifi-6050-4.ucode
-rw-r--r-- 1 root root 469780 2010-12-14 09:26 iwlwifi-6050-5.ucode

Revision history for this message
linrunner (linrunner) wrote :

@Greg: this bug is about the 5000 firmware not loading at all. It is not about a malfunction in the running firmware, as in your case when associating with an access point. The symptom in this bug is (see above):
$ dmesg | grep iwl
[ 28.457204] iwlagn 0000:03:00.0: firmware: requesting iwlwifi-5000-5.ucode
[ 28.464827] iwlagn 0000:03:00.0: Driver unable to support your firmware API. Driver supports v5, firmware is v0.
[ 28.464839] iwlagn 0000:03:00.0: Could not read microcode: -22

Revision history for this message
Greg Gorman (gregg-public) wrote :

@linrunner @Julian ok filed bug 800798

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.