Bug 769678

Summary: Intel Centrino-N 2200 wifi requires missing /lib/firmware/iwlwifi-2000-6.ucode
Product: [openSUSE] openSUSE 12.1 Reporter: Foolish Ewe <foolishewe>
Component: KernelAssignee: E-mail List <kernel-maintainers>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: foolishewe, tiwai
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Foolish Ewe 2012-07-02 21:59:26 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

I have a brand new Toshiba Satellite P855-S5200, and cannot get wifi working on it under OpenSuse 12.1 (now with a Tumbleweed kernel), but OpenSuse cannot drive the wifi.  This laptop has an Intel® Core™ i7-3610QM Processor, and Windows 7 drives the wifi flawlessly, claiming it is a Centrino-N 2200 device (if memory serves, I'll send a correction if this is wrong).  Neither Opensuse 12.1 nor the upgraded kernel worked, they gave the messages:
[code]
linux-6lhe:~ # cat /var/log/messages | grep iwlagn
Jul  2 13:48:29 linux kernel: [   13.067173] iwlagn 0000:02:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
Jul  2 13:48:29 linux kernel: [   13.067191] iwlagn 0000:02:00.0: setting latency timer to 64
Jul  2 13:48:29 linux kernel: [   13.067229] iwlagn 0000:02:00.0: pci_resource_len = 0x00002000
Jul  2 13:48:29 linux kernel: [   13.067232] iwlagn 0000:02:00.0: pci_resource_base = ffffc900057a8000
Jul  2 13:48:29 linux kernel: [   13.067235] iwlagn 0000:02:00.0: HW Revision ID = 0xC4
Jul  2 13:48:29 linux kernel: [   13.067348] iwlagn 0000:02:00.0: irq 44 for MSI/MSI-X
Jul  2 13:48:29 linux kernel: [   13.067398] iwlagn 0000:02:00.0: Detected 2000 Series 2x2 BGN, REV=0x104
Jul  2 13:48:29 linux kernel: [   13.067479] iwlagn 0000:02:00.0: L1 Disabled; Enabling L0S
Jul  2 13:48:29 linux kernel: [   13.086537] iwlagn 0000:02:00.0: device EEPROM VER=0x81c, CALIB=0x6
Jul  2 13:48:29 linux kernel: [   13.086541] iwlagn 0000:02:00.0: Device SKU: 0X150
Jul  2 13:48:29 linux kernel: [   13.086544] iwlagn 0000:02:00.0: Valid Tx ant: 0X3, Valid Rx ant: 0X3
Jul  2 13:48:29 linux kernel: [   13.086567] iwlagn 0000:02:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels
Jul  2 13:48:29 linux kernel: [   13.086679] iwlagn 0000:02:00.0: RF_KILL bit toggled to disable radio.
Jul  2 13:48:29 linux kernel: [   13.175154] iwlagn 0000:02:00.0: request for firmware file 'iwlwifi-2000-5.ucode' failed.
Jul  2 13:48:29 linux kernel: [   13.175253] iwlagn 0000:02:00.0: no suitable firmware found!
Jul  2 13:48:29 linux kernel: [   13.175466] iwlagn 0000:02:00.0: PCI INT A disabled
[/code]
Since the chip may be newer than the kernel version, I checked windows which said it was a Centrino Wireless-N 2200 and looked at http://www.intellinuxwireless.org/, which says: Intel® Centrino® Wireless-N 2200 (3.2.0), so I tried the tumbleweed kernel, so currently:
[code]
uname -a
Linux linux-6lhe.site 3.4.3-30-desktop #1 SMP PREEMPT Mon Jun 18 11:52:36 UTC 2012 (41613b0) x86_64 x86_64 x86_64 GNU/Linux
[/code]
However, in /var/log/messages I still get:
[code]
Jul  2 15:42:14 linux-6lhe kernel: [   17.097048] iwlagn 0000:02:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
Jul  2 15:42:14 linux-6lhe kernel: [   17.097057] iwlagn 0000:02:00.0: setting latency timer to 64
Jul  2 15:42:14 linux-6lhe kernel: [   17.097089] iwlagn 0000:02:00.0: pci_resource_len = 0x00002000
Jul  2 15:42:14 linux-6lhe kernel: [   17.097091] iwlagn 0000:02:00.0: pci_resource_base = ffffc900057cc000
Jul  2 15:42:14 linux-6lhe kernel: [   17.097094] iwlagn 0000:02:00.0: HW Revision ID = 0xC4
Jul  2 15:42:14 linux-6lhe kernel: [   17.097186] iwlagn 0000:02:00.0: irq 44 for MSI/MSI-X
Jul  2 15:42:14 linux-6lhe kernel: [   17.097230] iwlagn 0000:02:00.0: Detected 2000 Series 2x2 BGN, REV=0x104
Jul  2 15:42:14 linux-6lhe kernel: [   17.097305] iwlagn 0000:02:00.0: L1 Disabled; Enabling L0S
Jul  2 15:42:14 linux-6lhe kernel: [   17.116637] iwlagn 0000:02:00.0: device EEPROM VER=0x81c, CALIB=0x6
Jul  2 15:42:14 linux-6lhe kernel: [   17.116640] iwlagn 0000:02:00.0: Device SKU: 0X150
Jul  2 15:42:14 linux-6lhe kernel: [   17.116642] iwlagn 0000:02:00.0: Valid Tx ant: 0X3, Valid Rx ant: 0X3
Jul  2 15:42:14 linux-6lhe kernel: [   17.116657] iwlagn 0000:02:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels
Jul  2 15:42:14 linux-6lhe kernel: [   17.261379] iwlagn 0000:02:00.0: request for firmware file 'iwlwifi-2000-5.ucode' failed.
Jul  2 15:42:14 linux-6lhe kernel: [   17.261387] iwlagn 0000:02:00.0: no suitable firmware found!
Jul  2 15:42:14 linux-6lhe kernel: [   17.261505] iwlagn 0000:02:00.0: PCI INT A disabled
[/code]
Is there a workaround or fix for this?

Reproducible: Always

Steps to Reproduce:
1.Boot Windows 7, watch the wifi work flawlessly
2.Boot Linux, observe that the OS disabling wifi
3.Try KDE network manager and see that it cannot find my wireless ethernet adapter.
Actual Results:  
No special setup is required.

Expected Results:  
Have linux find the wifi like it does for every other intel wifi I've used in the last 4-6 years.
Comment 1 Foolish Ewe 2012-07-03 12:15:52 UTC
(In reply to comment #0)
Hello All:

I think I know how to fix this and what the problem is.

> User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101
> Firefox/7.0.1
> 
> I have a brand new Toshiba Satellite P855-S5200, and cannot get wifi working on
> it under OpenSuse 12.1 (now with a Tumbleweed kernel), but OpenSuse cannot
> drive the wifi.  This laptop has an Intel® Core™ i7-3610QM Processor, and
> Windows 7 drives the wifi flawlessly, claiming it is a Centrino-N 2200 device
> (if memory serves, I'll send a correction if this is wrong).  Neither Opensuse
> 12.1 nor the upgraded kernel worked, they gave the messages:
> [code]

> Jul  2 13:48:29 linux kernel: [   13.175154] iwlagn 0000:02:00.0: request for
> firmware file 'iwlwifi-2000-5.ucode' failed.
> Jul  2 13:48:29 linux kernel: [   13.175253] iwlagn 0000:02:00.0: no suitable
> firmware found!
> Jul  2 13:48:29 linux kernel: [   13.175466] iwlagn 0000:02:00.0: PCI INT A
> disabled

Would the maintainers please be so kind as ensure that the microcode is installed in /lib/firmware as per the hints at: http://mtekk.us/archives/guides/fixing-request-for-firmware-file-failed/

OpenSuse does use modules, however please note that there is now iwlwifi-2000-*.ucode module, where * wildcards the version number, in /lib/firmware.
Downloading and installing the iwlwifi-2000-*.ucode (in my case * = 6) from http://intellinuxwireless.org/?n=downloads into /lib/firmware fixed the problem with the tumbleweed kernel.  I have not reverted to Opensuse 12.1 yet, so that kernel remains untested, but the Tumbleweed kernel 3.4.30 appears to work.
Comment 2 Foolish Ewe 2012-07-05 01:53:13 UTC
I reverted to 12.1 and the iwlwifi-2000-6.ucode firmware fails with both the installed and updated versions of the kernel (in my case the desktop kernel).  Unfortunately I had no joy finding iwlwifi-2000-5.ucode (please note that I tried renaming the iwlwif-2000-6.ucode to iwlwifi-2000-5-ucode, but that did not work), so I'm stuck with tumbleweed. Now if I can only get sound working... but for that I'll open a different bug report.
Comment 3 Takashi Iwai 2012-07-06 06:57:15 UTC
You can find the updated firmware in Tumbleweed's kernel-firmware package (in noarch).  iwlwifi-2000-6.ucode is found there, too.

Reopen the bug if it still doesn't work.  Thanks.