How To: Fix Intel 8260 (rev 3a) slow / rubbish wireless issues in Linux

My laptop has an Intel Corporation Wireless 8260 (rev 3a) wireless card. It says so right in the lspci -v output:

However, in Linux it’s been dropping out and going slow and all sorts of rubbish. Looking in dmesg you can typically see stuff like (edited):

So can we fix it? Like Bob the Builder, yes we can – but it’s a two-step…

Part 1 – Kernel Modules

The 8260 card uses the iwlwifi kernel module, and the microcode for that is stored in /lib/firmware.

Specifically, you’re looking for the files: iwlwifi-8000C-SOME_NUMBER.ucode.

So for example, I see the following:

The kernel seems to pick the highest number in the 8000C range, so it’ll pick the 8000C-22 variant. Only this is borked. To revert to the previous 21 revision, simply rename the file extension of the 22 version to something different, for example:

However, at least in my experience, this isn’t enough to stop the module crash/restart issues – so we need to…

Part 2 – Disable Wireless N

If I just do the above, I still get issues in dmesg where the wireless card’s crashing and resetting itself – so to bypass the failing code, we need to disable wireless N (and only use B/G). Sure, this is going to be slower than N, but it’s going to be faster than a borked version of N – so off we go…

The parameters to the iwlwifi module include one called 11n_disable – and to set that on boot we need to have a /etc/modprobe.d folder (create the directory if necessary), then into that put a file with any name ending in .conf such as iwlwifi.conf (makes sense, right?) with the following contents:

Once that’s in and saved, reboot and your wireless should work properly again – no dmesg crash data, no slow-downs, no bullshit.

There are actually a few different values that can be used, but “1” works for me. The array of valid values for the 11n_disable property can be seen by entering:

And the current settings can be checked by hitting:

With the 21 revision of the microcode and wireless-N disabled you should find your wireless card now works properly. Huzzah!

Misc

You may want to know that I did this on an Arch Linux system (kernel: 4.8.13-1-ARCH linux-firmware: 20161005.9c71af9-1), and that I also set my regulatory authority code which controls allowable wireless frequencies/channels (via installing the crda package and setting the config to my local country, which is Australia, so “AU” – further reading: https://wiki.archlinux.org/index.php/Wireless_network_configuration#Respecting_the_regulatory_domain) – although I’m not sure if changing the regulatory domain actually did anything to the above fix instructions. Thought I’d mention it all the same.

Cheers!

4 thoughts on “How To: Fix Intel 8260 (rev 3a) slow / rubbish wireless issues in Linux”

  1. Thank you so much for this post! It fixed the abysmal wireless speeds. However, it’s still rather slow because of the switch to Wireless N. Is there a chance this will be fixed in the future?

    Wireless card: Intel Corporation Wireless 8260 (rev 3a)
    Kernel version: 4.9.12-200.fc25.x86_64

    1. You’re welcome! As for whether it gets fixed, you’d think it would considering that the wireless chipset in question is still quite modern (i.e. it came with the laptop I bought less than 12 months ago).

      The iwlwifi module is part of the ‘linux-firmware’ package, and on Arch that now contains a iwlwifi-8000C-27.ucode file:

      But… I don’t think that’s getting used for our chipset because hitting up dmesg | grep iwlwifi gives output like:

      Which I take to mean that the 27 version doesn’t support us, then it’s working backwards 26/25/24/23 (which don’t exist) before hitting 22 which does. Also note from the above “loaded firmware version” line that the version that got picked (22) is now at a later revision than when I wrote this article… so for all I know it might already be fixed.

      I guess it might come down to every time you see the linux-firmware package updated you could move that N-disabling conf file from /etc/modprobe into your home folder, reboot and see if you have any joy with AC or N. If so great, and if not then just sling the conf to disable N back so you at least have wireless G going without it crashing and grinding to a halt.

      Cheers!

  2. Simply deleting all ucode except 16 fixed it, though I wouldn’t have fixed it without your insight and this article thanks!
    440mbps is the max i can get now, vs 514 on windows not bad.
    No DC so far. Uptime of 2 days.
    22 with n-disable also works but too slow, ~8mbit max!

  3. Have any of you had problems with the signal strength? The speed is fine for me, but signal strength is really bad, about half to 1/3 of what it should be.

Leave a Reply

Your email address will not be published.