# iwlwifi and the firmware user-helper

## Longcast

I've been running fine with internet access on kernel 4.14.83, but when configuring my wireless LAN card, I could only get iwlwifi drivers (8265) going by enabling

```
Device Drivers -> Generic Driver Options -> Fallback user-helper invocation for firmware loading
```

It loads the correct driver after going through a couple (iwlwifi-8265-31.ucode), but for some reason, this causes X to take ~60 seconds to start and about 200 seconds for my wifi interface to start. There are very long gaps in dmesg that I can't explain. When loading the firmware directly with the kernel option disabled, the firmware is loaded (X and the wifi interface have normal start times as well) but the card will not connect to an access point.

The important end of dmesg:

```
[   11.757640] IPv6: ADDRCONF(NETDEV_UP): enp31s0: link is not ready

[   11.838671] r8169 0000:1f:00.0 enp31s0: link down

[   11.838756] IPv6: ADDRCONF(NETDEV_UP): enp31s0: link is not ready

[   62.439162] nvidia-smi (2484) used greatest stack depth: 12800 bytes left

[   62.453159] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-33.ucode failed with error -2

[   62.453160] iwlwifi 0000:1e:00.0: Falling back to user helper

[   62.465865] resource sanity check: requesting [mem 0x000c0000-0x000fffff], which spans more than PCI Bus 0000:00 [mem 0x000c0000-0x000dffff window]

[   62.465938] caller _nv001112rm+0xe3/0x1d0 [nvidia] mapping multiple BARs

[  123.899963] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-32.ucode failed with error -2

[  123.899964] iwlwifi 0000:1e:00.0: Falling back to user helper

[  185.311700] iwlwifi 0000:1e:00.0: loaded firmware version 31.560484.0 op_mode iwlmvm

[  185.311713] iwlwifi 0000:1e:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230

[  185.367307] iwlwifi 0000:1e:00.0: base HW address: *********************

[  185.441008] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'

[  185.441134] (NULL device *): hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info().

[  185.441142] thermal thermal_zone0: failed to read out thermal zone (-61)

[  185.455374] iwlwifi 0000:1e:00.0 wlp30s0: renamed from wlan0
```

dmesg|grep iwlwifi:

```
[    0.478016] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-34.ucode failed with error -2

[    0.478205] iwlwifi 0000:1e:00.0: Falling back to user helper

[   62.453159] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-33.ucode failed with error -2

[   62.453160] iwlwifi 0000:1e:00.0: Falling back to user helper

[  123.899963] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-32.ucode failed with error -2

[  123.899964] iwlwifi 0000:1e:00.0: Falling back to user helper

[  185.311700] iwlwifi 0000:1e:00.0: loaded firmware version 31.560484.0 op_mode iwlmvm

[  185.311713] iwlwifi 0000:1e:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230

[  185.367307] iwlwifi 0000:1e:00.0: base HW address: *********************

[  185.455374] iwlwifi 0000:1e:00.0 wlp30s0: renamed from wlan0

```

What does the fallback user-helper do exactly in that time period that makes the wifi interface function as opposed to setting a firmware file to load at start? Am I able to fix this time gap without a kernel upgrade?

----------

## bunder

While I can't answer your question about the helper, I've seen those iwlwifi firmware messages before.  Problem was, the firmware files it complained about weren't in the linux-firmware package, so what I did was symlink the version that loaded to the first version it tries (at least until the updated file it wants is in the firmware bundle).  (in your case 31 symlinked to 34)

Cheers

----------

## Longcast

 *bunder wrote:*   

> I've seen those iwlwifi firmware messages before.  Problem was, the firmware files it complained about weren't in the linux-firmware package, so what I did was symlink the version that loaded to the first version it tries (at least until the updated file it wants is in the firmware bundle).  (in your case 31 symlinked to 34)

 

Interesting, making a symlink from iwlwifi-8265-34.ucode doesn't fix trying to load it, but making a symlink for 8265-33 directs to the right file. This actually cuts my overall wifi start time to 60 seconds, so I've got progess.

EDIT: here's my dmesg|grep iwlwifi by the way

```
[    0.470047] iwlwifi 0000:1e:00.0: Direct firmware load for iwlwifi-8265-34.ucode failed with error -2

[    0.470229] iwlwifi 0000:1e:00.0: Falling back to user helper

[   62.478743] iwlwifi 0000:1e:00.0: loaded firmware version 31.560484.0 op_mode iwlmvm

[   62.478754] iwlwifi 0000:1e:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230

[   62.532401] iwlwifi 0000:1e:00.0: base HW address: *******************

[   62.618935] iwlwifi 0000:1e:00.0 wlp30s0: renamed from wlan0
```

----------

