2

The problem is that wifi becomes available only in about 2 minutes after the system is turned on. But after that network works just fine.

/var/log/messages contains the following error messages:

Apr 22 17:52:41 glorx530 kernel: [    1.967945] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
Apr 22 17:52:41 glorx530 kernel: [    1.968497] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-6.ucode failed with error -2
Apr 22 17:52:41 glorx530 kernel: [    1.968790] iwlwifi 0000:03:00.0: Falling back to user helper
....
Apr 22 17:53:23 glorx530 kernel: [   62.477819] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000-5.ucode failed with error -2
Apr 22 17:53:23 glorx530 kernel: [   62.477820] iwlwifi 0000:03:00.0: Falling back to user helper
....
Apr 22 17:54:24 glorx530 kernel: [  123.954134] iwlwifi 0000:03:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm

It looks like the kernel (or iwlwifi driver?) tries to load firmware from iwlwifi-6000-6.ucode, then from iwlwifi-6000-5.ucode and then from some other file (which one?), this time successfully and at that moment network becomes available.

There are no iwlwifi-6000-6.ucode and iwlwifi-6000-5.ucode files in /lib/firmware directory (however there is iwlwifi-6000-4.ucode).

I tried to find the firmware for my network card on manufacturer site (I have "Intel Corporation Centrino Ultimate-N 6300" network card), but the package I downloaded contains iwlwifi-6000-4.ucode - and it's identical to the file I have already installed into /lib/firmware.

I suspect that the real problem is not the missing firmware files, but the fact that driver waits for 1 minute to try to load the next firmware file from it's list.

Any ideas how to fix this problem are welcome.

UPDATE: I'll try to copy (or link) iwlwifi-6000-4.ucode to iwlwifi-6000-6.ucode but it's not a true way.

UPDATE 1: I tried, it wouldn't help.

This problem is discussed here:

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1398458

Workaround suggested there helped me. I have created a file /etc/udev/rules.d/50-firmware.rules :

SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1"
  • Well, also I wouldn't give a medal for the wifi driver implementors of the Linux kernel for their work quality. :-( It seems, we have to live with it. I use mainly home-developed helper scripts to periodically reset my wifi devices in the case of a lock-down. Sometimes I use windows VMs as wifi routers. – peterh Apr 22 '17 at 18:09
  • Btw, what about to hunting this iwlwifi-5000-6.ucode somewhere on the net and copy it to /lib/firmware? It is probably accessible in a newer version of your distro. – peterh Apr 22 '17 at 18:18
  • @peterh Looks like iwlwifi-5000-6.ucode does not exist (see the link in update to question). And looks like iwlwifi-6000-4.ucode is not suitable for my card as well. How it works now is a mistery for me :( – lesnik Apr 22 '17 at 20:00
  • This is how it works, citate from your own dmesg log: "Falling back to user helper....". If iwlwifi-5000-6.ucode wouldn't exist, your driver wouldn't try to load it. Yes, it exists somewhere, in a fresh kernel source or somewhere in a newer distro. The net forums around except SE tend to be full with... well... not very useful advices. – peterh Apr 22 '17 at 21:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.