Ubuntu – Which iwlwifi firmware for Intel WiFi Link 5100

13.04firmwareintel-wireless

After upgrading to 13.04 the wifi usually fails to find a network and after a while the network manager crashes. After some digging it looks like the iwlwifi firmware version for my PC Intel WiFi Link 5100 adapter is wrong.

sudo lshw -class network

shows that

[...]
description: Wireless interface
product: WiFi Link 5100
vendor: Intel Corporation  
[...]
configuration: broadcast=yes driver=iwlwifi driverversion=3.8.0-21-generic firmware=8.83.5.1 build 33692 ip=192.168.0.109 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn

but according to http://wireless.kernel.org/en/users/Drivers/iwlwifi the IntelĀ® Wireless WiFi 5100AGN driver should be iwlwifi-5000-ucode-5.4.A.11.tar.gz (the firmware=8.83.5.1 above refers to an other wifi device namely to IntelĀ® Wireless WiFi 5350AGN).

Why does 13.04 use iwlwifi firmware=8.83.5.1 and not firmware=5.4.1.16 as suggested at http://wireless.kernel.org/en/users/Drivers/iwlwifi ?

In order to correct the situation I downloaded the iwlwifi-5000-ucode-5.4.A.11.tar.gz which contains a file iwlwifi-5000-1.ucode. I also removed existing /lib/firmware/iwlwifi* files (e.g. iwlwifi-5000-5.ucode) and copied the new iwlwifi-5000-1.ucode in the firmware directory

sudo mv /lib/firmware/*iwlwifi* ~/keep_iwlwif
sudo cp iwlwifi-5000-1.ucode /lib/firmware

After rebooting sudo lshw -class network displayed the firmware=5.4.1.16 which seemed good to me but the dmesg displayed following iwlwifi errors.

[   14.196502] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-5.ucode' failed.
[   14.200629] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-4.ucode' failed.
[   14.204814] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-3.ucode' failed.
[   14.253843] iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-5000-2.ucode' failed.

I decided to add the iwlwifi-5000-5.ucode back to /lib/firmware and rebooted. After reboot I was back in where I started, sudo lshw -class network displayed again the firmware=8.83.5.1 and no dmesg errors for iwlwifi. Moreover, the wifi didn't work any better.

Best Answer

I have the same wireless card and downloaded the iwlwifi-5000-5.ucode from here and added that to the lib/firmware director and its working well. I'm using an Intel Galileo board with Yachto Linux build on it.