ipw2200-bss.fw request_firmware failed: Reason -2

Hi, I’m trying to get a Intel PRO/Wireless 2200BG to work. My details according to my-wireless-doesnt-work-primer-what-i-should-do-next.html are listed below.

I have installed the firmware but the network adapter doesn’t get a device name on startup (see section on dmesg output below). The wired ethernet interface is activated when a cable is plugged in, someone suggested to me that this is important because otherwise the wlan could never ever be activated on startup. I’m not sure I believe this.

So, any help is much appreciated since I’m trying to convince my wife that Linux is userfriendly (it is her laptop) :wink:

Device

84: udi = ‘/org/freedesktop/Hal/devices/pci_8086_4220’
pci.subsys_vendor = ‘Intel Corporation’
linux.hotplug_type = 2 (0x2)
linux.subsystem = ‘pci’
info.linux.driver = ‘ipw2200’
info.subsystem = ‘pci’
info.product = ‘PRO/Wireless 2200BG [Calexico2] Network Connection’
linux.sysfs_path = ‘/sys/devices/pci0000:00/0000:00:1e.0/0000:02:04.0’
info.parent = ‘/org/freedesktop/Hal/devices/pci_8086_2448’
pci.linux.sysfs_path = ‘/sys/devices/pci0000:00/0000:00:1e.0/0000:02:04.0’
info.udi = ‘/org/freedesktop/Hal/devices/pci_8086_4220’
pci.product_id = 16928 (0x4220)
pci.vendor_id = 32902 (0x8086)
pci.subsys_product_id = 9986 (0x2702)
pci.subsys_vendor_id = 32902 (0x8086)
pci.device_class = 2 (0x2)
pci.device_subclass = 128 (0x80)
pci.device_protocol = 0 (0x0)
pci.vendor = ‘Intel Corporation’
info.vendor = ‘Intel Corporation’
pci.product = ‘PRO/Wireless 2200BG [Calexico2] Network Connection’

PCI Bus:

maja@obsidian:~> /sbin/lspci
02:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)

maja@obsidian:~> /sbin/lspci -n
02:02.0 0200: 10ec:8139 (rev 10)
02:04.0 0280: 8086:4220 (rev 05)

Firmware:

obsidian:/lib/firmware # ls ipw*
ipw2100-1.3.fw ipw2200-sniffer.fw ipw-2.2-ibss_ucode.fw ipw-2.3-ibss_ucode.fw ipw-2.4-bss_ucode.fw
ipw2100-1.3-i.fw ipw-2.2-boot.fw ipw-2.3-boot.fw ipw-2.3-sniffer.fw ipw-2.4-ibss.fw
ipw2100-1.3-p.fw ipw-2.2-bss.fw ipw-2.3-bss.fw ipw-2.3-sniffer_ucode.fw ipw-2.4-ibss_ucode.fw
ipw2200-bss.fw ipw-2.2-bss_ucode.fw ipw-2.3-bss_ucode.fw ipw-2.4-boot.fw ipw-2.4-sniffer.fw
ipw2200-ibss.fw ipw-2.2-ibss.fw ipw-2.3-ibss.fw ipw-2.4-bss.fw ipw-2.4-sniffer_ucode.fw

Dmesg output:

533.722858] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kdmprq
533.722885] ipw2200: Copyright(c) 2003-2006 Intel Corporation
533.723025] ipw2200 0000:02:04.0: PCI INT A -> Link[LNKE] -> GSI 10 (level, low) -> IRQ 10
533.724606] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
593.724145] ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
593.724170] ipw2200: Unable to load firmware: -2
593.724183] ipw2200: failed to register network device
593.724309] ipw2200 0000:02:04.0: PCI INT A disabled
593.724376] ipw2200: probe of 0000:02:04.0 failed with error -5

obsidian:/home/maja # iwconfig
lo no wireless extensions.
eth0 no wireless extensions.

obsidian:/lib/firmware # /usr/sbin/iwlist scan
lo Interface doesn’t support scanning.
eth0 Interface doesn’t support scanning.

On 06/24/2010 03:36 AM, dgg3ps wrote:
>
> Hi, I’m trying to get a Intel PRO/Wireless 2200BG to work. My details
> according to ‘my-wireless-doesnt-work-primer-what-i-should-do-next.html’
> (http://tinyurl.com/2d62p8g) are listed below.
>
> I have installed the firmware but the network adapter doesn’t get a
> device name on startup (see section on dmesg output below). The wired
> ethernet interface is activated when a cable is plugged in, someone
> suggested to me that this is important because otherwise the wlan could
> never ever be activated on startup. I’m not sure I believe this.
>
> So, any help is much appreciated since I’m trying to convince my wife
> that Linux is userfriendly (it is her laptop) :wink:
>
>
> Device
> ---------
> 84: udi = ‘/org/freedesktop/Hal/devices/pci_8086_4220’
> pci.subsys_vendor = ‘Intel Corporation’
> linux.hotplug_type = 2 (0x2)
> linux.subsystem = ‘pci’
> info.linux.driver = ‘ipw2200’
> info.subsystem = ‘pci’
> info.product = ‘PRO/Wireless 2200BG [Calexico2] Network Connection’
> linux.sysfs_path =
> ‘/sys/devices/pci0000:00/0000:00:1e.0/0000:02:04.0’
> info.parent = ‘/org/freedesktop/Hal/devices/pci_8086_2448’
> pci.linux.sysfs_path =
> ‘/sys/devices/pci0000:00/0000:00:1e.0/0000:02:04.0’
> info.udi = ‘/org/freedesktop/Hal/devices/pci_8086_4220’
> pci.product_id = 16928 (0x4220)
> pci.vendor_id = 32902 (0x8086)
> pci.subsys_product_id = 9986 (0x2702)
> pci.subsys_vendor_id = 32902 (0x8086)
> pci.device_class = 2 (0x2)
> pci.device_subclass = 128 (0x80)
> pci.device_protocol = 0 (0x0)
> pci.vendor = ‘Intel Corporation’
> info.vendor = ‘Intel Corporation’
> pci.product = ‘PRO/Wireless 2200BG [Calexico2] Network Connection’
>
> PCI Bus:
> ----------
> maja@obsidian:~> /sbin/lspci
> 02:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
> RTL-8139/8139C/8139C+ (rev 10)
> 02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG
> [Calexico2] Network Connection (rev 05)
>
> maja@obsidian:~> /sbin/lspci -n
> 02:02.0 0200: 10ec:8139 (rev 10)
> 02:04.0 0280: 8086:4220 (rev 05)
>
> Firmware:
> --------
> obsidian:/lib/firmware # ls ipw*
> ipw2100-1.3.fw ipw2200-sniffer.fw ipw-2.2-ibss_ucode.fw
> ipw-2.3-ibss_ucode.fw ipw-2.4-bss_ucode.fw
> ipw2100-1.3-i.fw ipw-2.2-boot.fw ipw-2.3-boot.fw
> ipw-2.3-sniffer.fw ipw-2.4-ibss.fw
> ipw2100-1.3-p.fw ipw-2.2-bss.fw ipw-2.3-bss.fw
> ipw-2.3-sniffer_ucode.fw ipw-2.4-ibss_ucode.fw
> ipw2200-bss.fw ipw-2.2-bss_ucode.fw ipw-2.3-bss_ucode.fw
> ipw-2.4-boot.fw ipw-2.4-sniffer.fw
> ipw2200-ibss.fw ipw-2.2-ibss.fw ipw-2.3-ibss.fw
> ipw-2.4-bss.fw ipw-2.4-sniffer_ucode.fw
>
> Dmesg output:
> -------------
> 533.722858] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver,
> 1.2.2kdmprq
> 533.722885] ipw2200: Copyright(c) 2003-2006 Intel Corporation
> 533.723025] ipw2200 0000:02:04.0: PCI INT A → Link[LNKE] → GSI 10
> (level, low) → IRQ 10
> 533.724606] ipw2200: Detected Intel PRO/Wireless 2200BG Network
> Connection
> 593.724145] ipw2200: ipw2200-bss.fw request_firmware failed: Reason
> -2
> 593.724170] ipw2200: Unable to load firmware: -2
> 593.724183] ipw2200: failed to register network device
> 593.724309] ipw2200 0000:02:04.0: PCI INT A disabled
> 593.724376] ipw2200: probe of 0000:02:04.0 failed with error -5

The device will not work until the firmware is available. The dmesg output
says that the system was unable to load the file named “ipw2200-bss.fw”;
however, that file does exist in /lib/firmware. Perhaps you have a
permissions problem. Please post the output of


ls -l /lib/firmware/ipw2200*

Thanks, good thinking. Will try it as I get home tonight.

Here’s the output. hope this brings things closer to a solution of the prob.

maja@obsidian:~> ls -l /lib/firmware/ipw2200*
-rw-r–r-- 1 root root 191154 18. Mär 16:32 /lib/firmware/ipw2200-bss.fw
-rw-r–r-- 1 root root 185428 18. Mär 16:32 /lib/firmware/ipw2200-ibss.fw
-rw-r–r-- 1 root root 187836 18. Mär 16:32 /lib/firmware/ipw2200-sniffer.fw

On 06/28/2010 01:16 PM, dgg3ps wrote:
>
> Here’s the output. hope this brings things closer to a solution of the
> prob.
>
>
> maja@obsidian:~> ls -l /lib/firmware/ipw2200*
> -rw-r–r-- 1 root root 191154 18. Mär 16:32
> /lib/firmware/ipw2200-bss.fw
> -rw-r–r-- 1 root root 185428 18. Mär 16:32
> /lib/firmware/ipw2200-ibss.fw
> -rw-r–r-- 1 root root 187836 18. Mär 16:32
> /lib/firmware/ipw2200-sniffer.fw

It really does not. The files are in the correct place with the right
permissions. The reason -2 is for “file or directory not found”.

The only thing I can conclude is that the user-space code that is loading
the firmware is broken, but I don’t know what part does that, or why it
would yield this particular error. You should probably check the
permissions on the directory /lib/firmware, but I don’t expect a problem
there.

@dgg3ps: Although you have the same files and permissions I have, I’m wondering if this may be related to the firmware package you have installed, or did you get the firmware via tarball?

What is the output of

rpm -qa |grep ipw

http://packages.opensuse-community.org/index.jsp?distro=openSUSE_112&searchTerm=ipw-firmware

Apologies in advance if I’m on the wrong track here.

Output is:

rpm -qa | grep ipw
ipw-firmware-9-3.1.noarch

I installed it via Yast from the Suse repositories (don’t remember exactly which repo).

@ lwfinger:
What permissions do you expect for /lib/firmware??
same as for the files within it?

@ everybody:
Can I be sure that the problem has nothing to do with the wireless card beeing switched off? On this laptop on windos the card is by default switched off when the system is up. With <Fn> + <F2> I can switch the card on or off under Windows. Since Linux recognizes the card during boot, I don’t think this is the problem, however I want to be sure. Is there a way to check whether the card is switched on?
Thanks

On 06/29/2010 11:36 AM, dgg3ps wrote:
>
> @ lwfinger:
> What permissions do you expect for /lib/firmware??
> same as for the files within it?

It should have execute privilege for everyone. On my system, it is

drwxr-xr-x 44 root root 4096 2010-06-24 10:35 firmware

> @ everybody:
> Can I be sure that the problem has nothing to do with the wireless card
> beeing switched off? On this laptop on windos the card is by default
> switched off when the system is up. With <Fn> + <F2> I can switch the
> card on or off under Windows. Since Linux recognizes the card during
> boot, I don’t think this is the problem, however I want to be sure. Is
> there a way to check whether the card is switched on?
> Thanks

You are right. If the card were not seen at the PCI scan, you would not
get the firmware load failure.

Are you using SELinux?

@dgg3ps

Can you tell us which openSUSE version you’re using? Which kernel version?

uname -r

@Larry

On the surface, it looks like everything should just work, but I’m beginning to wonder if there is some kind of kernel issue at stake here?

This Gentoo thread dealt with a very similar issue where it was established that although the firmware was present, the kernel configuration (with respect to firmware loading) was eventually tracked down as being the cause. Now, I know you understand the technical details far better than myself, but could there be a problem with the inbuilt kernel driver here? Is it a viable option to compile an updated ipw2200 driver? Just some raw thoughts…

On 06/29/2010 05:36 PM, deano ferrari wrote:
>
> @dgg3ps
>
> Can you tell us which openSUSE version you’re using? Which kernel
> version?
>
>
> Code:
> --------------------
> uname -r
> --------------------
>
>
> @Larry
>
> On the surface, it looks like everything should just work, but I’m
> beginning to wonder if there is some kind of kernel issue at stake
> here?
>
> This ‘Gentoo thread’ (http://tinyurl.com/2aas7qp) dealt with a very
> similat issue where it was established that the firmware was present,
> but the kernel configuration (with respect to firmware loading) was
> eventually tracked down as being the cause. Now, I know you understand
> the technical details far better than myself, but could there be a
> problem with the inbuilt kernel driver here? Is it a viable option to
> compile an updated ipw2200 driver? Just some raw thoughts…

Any ipw2200 driver that you could compile would have the same problem
loading firmware if the kernel is messed up.

For me, the standard kernel loads firmware for b43 and p54usb with no
problems.

The Gentoo link is not relevant. All openSUSE kernels have
‘CONFIG_FW_LOADER=y’ in their configuration.

I thought of this just after sending the previous message. We can check
the configuration with the following:


zcat /proc/config.gz | grep FW_L

For reference, I get

CONFIG_FW_LOADER=m

openSUSE 11.0, kernel version 2.6.25.20-0.7-pae

On 06/29/2010 11:46 PM, deano ferrari wrote:
>
> For reference, I get
>
>
> Code:
> --------------------
> CONFIG_FW_LOADER=m
> --------------------
>
>
> openSUSE 11.0, kernel version 2.6.25.20-0.7-pae

I did not realize your version of openSUSE was this old.

Please see if there is a compat-wireless version available from Packman.
If there is, it should solve your problem.

Hi, permissions of /lib/firmware seem ok to me (same as deano_ferrari)
Kernel version and configuration below.


maja@obsidian:~> ls -lh /lib | grep firmware
drwxr-xr-x 3 root root 4,0K 23. Jun 10:39 firmware

maja@obsidian:~> uname -r
2.6.31.5-0.1-default

maja@obsidian:~> zcat /proc/config.gz | grep FW_L
CONFIG_FW_LOADER=y

Any ideas on how to proceed?

Is this a problem as suggested in this thread at the very bottom?


maja@obsidian:~> zcat /proc/config.gz | grep CONFIG_FIRMW
CONFIG_FIRMWARE_IN_KERNEL=y

On 06/30/2010 04:16 PM, dgg3ps wrote:
>
> Is this a problem as suggested in ‘this thread at the very bottom?’
> (http://tinyurl.com/2aas7qp)
>
>
> Code:
> --------------------
>
> maja@obsidian:~> zcat /proc/config.gz | grep CONFIG_FIRMW
> CONFIG_FIRMWARE_IN_KERNEL=y

I think that is a “red herring”. I have kernels with this parameter on and
others with it off. Both load external firmware just fine. That is for
some devices that have the firmware built into the kernel, and not for
your firmware.

I still think you should try the compat-wireless package.

I just got a suggestion on the wireless mailing list where I posted your
problem. This kind of firmware loading is handled by udevd. Please check
that it is running by using the command


ps ax | grep udev

On my system, I have 3 instances running.

If it is not running, then try


sudo  /etc/init.d/boot.udev  start

Please report any output.

On 06/29/2010 11:46 PM, deano ferrari wrote:
>
> For reference, I get
>
>
> Code:
> --------------------
> CONFIG_FW_LOADER=m
> --------------------
>
>
> openSUSE 11.0, kernel version 2.6.25.20-0.7-pae

I did not realize your version of openSUSE was this old.

Please see if there is a compat-wireless version available from Packman.
If there is, it should solve your problem.

@Larry

I just supplied my info for reference. Mine is working perfectly.

I just got a suggestion on the wireless mailing list where I posted your
problem. This kind of firmware loading is handled by udevd. Please check
that it is running by using the command

That suggestion looks interesting…

Thanks for continued support!
My udevd daemon seems to be running.


maja@obsidian:~> ps ax | grep udev
  324 ?        S<s    0:00 /sbin/udevd --daemon
 3300 ?        S<     0:00 /sbin/udevd --daemon
 3301 ?        S<     0:00 /sbin/udevd --daemon
 7093 pts/0    R+     0:00 grep udev

I found this file: compat-wireless-2.6.32.15.tar.bz2
here:
http://wireless.kernel.org

the oldest tarball is for kernel 2.6.32.15 while I have 2.6.31.5, is this a problem?
I didn’t find a rpm package on PackMan :: home