Intel WiFi 2x slower on OpenSuse than Windows

Hello!

I’m new.

I’ve got a dual boot setup on my machine (Win 10 / OpenSUSE LEAP 15.3 w/Gnome Desktop) and I’ve been having some problems with my Intel Wireless NIC (Wireless-AC 8260)

I use Firefox on both operating systems, but browser related tasks generally feel less responsive in OpenSUSE. When performing a speedtest (litespeedtest.com) OpenSUSE consistently gets much slower speeds than when I reboot into Windows and perform the same speed test.

I’m wondering if this is a MIMO issue because the speed is roughly half of what it is on Windows (60 vs. 35 Mbps).

I’ve done a little reading and here are some things I’ve tried so far

  • Verified that my wi-fi router is set to WPA/AES.
  • Verified the router is set to WMM
  • created /etc/modprobe.d/iwlwifi.conf and tried various combinations of these settings:
    [LIST]
  • 11n_disabled=0
  • 11n_disabled=1
  • 11n_disabled=8
  • bt_coex_active=0
  • swcrypto=1

[/LIST]

The existence of the iwlwifi.conf file does not appear to make any difference in performance. It would be nice to verify its even loading the contents of the file, but I don’t even know how to determine which driver is currently in use.

And speaking of drivers, I did see Intel has some available (https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html), but their instructions say to copy the files into /lib/firmware which is filled with .xz files (no idea how to turn that tar.gz into a .xz).

Any guidance appreciated, and if you need me to post some output let me know, I’m still learning bash.

Welcome to openSUSE Forums!

The existence of the iwlwifi.conf file does not appear to make any difference in performance. It would be nice to verify its even loading the contents of the file, but I don’t even know how to determine which driver is currently in use.

That’s easy enough. Check the driver loaded with…

/usr/sbin/hwinfo --wlan

The loaded module parameters can be verified with systool eg for the iwlwifi driver…

sudo systool -vm iwlwifi

[HR][/HR]Thanks for the cmd info.

I determined that the iwlwifi config file was not loading due to an incorrect format.

After fixing it, it appears 11n_disable=1 helps, but not enough to account for the 2x discrepancy.

The output of hwifno output:


06: PCI 100.0: 0282 WLAN controller                              
  [Created at pci.386] 
  Unique ID: y9sn.5U5jxg3LUR0 
  Parent ID: z8Q3.+HmMOUBwHD7 
  SysFS ID: /devices/pci0000:00/0000:00:1c.0/0000:01:00.0 
  SysFS BusID: 0000:01:00.0 
  Hardware Class: network 
  Model: "Intel Dual Band Wireless-AC 8260" 
  Vendor: pci 0x8086 "Intel Corporation" 
  Device: pci 0x24f3 "Wireless 8260" 
  SubVendor: pci 0x8086 "Intel Corporation" 
  SubDevice: pci 0x1010 "Dual Band Wireless-AC 8260" 
  Revision: 0x3a 
  Driver: "iwlwifi" 
  Driver Modules: "iwlwifi" 
  Device File: wlan0 
  Features: WLAN 
  Memory Range: 0xdf000000-0xdf001fff (rw,non-prefetchable) 
  IRQ: 126 (no events) 
  HW Address: a4:34:d9:81:06:b4 
  Permanent HW Address: a4:34:d9:81:06:b4 
  Link detected: yes 
  WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 
  WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472 5.18 5.2 5.22 5.24 5.26 5.28 5.3 5.32 5.5 5.52 5.54 5.56 5.58 5.6 5.62 5.64 5.66 5.68 5.7 
  WLAN encryption modes: WEP40 WEP104 TKIP CCMP 
  WLAN authentication modes: open sharedkey wpa-psk wpa-eap 
  Module Alias: "pci:v00008086d000024F3sv00008086sd00001010bc02sc80i00" 
  Driver Info #0: 
    Driver Status: iwlwifi is active 
    Driver Activation Cmd: "modprobe iwlwifi" 
  Config Status: cfg=no, avail=yes, need=no, active=unknown 
  Attached to: #3 (PCI bridge)

Please share the output of “sudo iwconfig”

That will list give you the name of your wireless iterface with details.
Would be also good to install the iw tool (sudo zypper in iw) and that will give even more relevant output:

> sudo iw dev wlp0s20u14 link 
Connected to 00:a9:5f:3d:5a:ba (on wlp0s20u14) 
        SSID: Abajo
        freq: 2412 
        RX: 4705848 bytes (46368 packets) 
        TX: 44907 bytes (1590 packets) 
        signal: -63 dBm 
        rx bitrate: 1.0 MBit/s 
        tx bitrate: 1.0 MBit/s 

        bss flags:      short-preamble short-slot-time 
        dtim period:    2 
        beacon int:     100

Then try to get the same stats from Windows and compare.

NB: My tx/rx bitrate is very low because there is one concrete wall, one wooden door and about 30 meters of distance.

Ok, so the driver is loaded with the parameters that you specified. It would have been useful to see the systool output (loaded parameters section).

Let’s see the bitrate and RSSI…

/usr/sbin/iw dev wlan0 link

So the output is how I determined it was not picking up the config file contents, which it is now, as shown below:


Module = "iwlwifi" 
 
  Attributes: 
    coresize            = "339968" 
    initsize            = "0" 
    initstate           = "live" 
    refcnt              = "1" 
    srcversion          = "2A2248A321BDED128441849" 
    supported           = "Yes" 
    taint               = "" 
    uevent              = <store method only> 
 
  Parameters: 
**    11n_disable         = "1" **
    amsdu_size          = "0" 
**    bt_coex_active      = "N" **
    debug               = "0" 
    disable_11ac        = "N" 
    disable_11ax        = "N" 
    enable_ini          = "Y" 
    fw_restart          = "Y" 
    led_mode            = "0" 
    nvm_file            = "(null)" 
    power_level         = "0" 
    power_save          = "N" 
    remove_when_gone    = "N" 
    swcrypto            = "0" 
    uapsd_disable       = "3" 
 
  Sections: 
    .altinstr_aux       = "0xffffffffc11fdbbd" 
    .altinstr_replacement= "0xffffffffc11fdb60" 
    .altinstructions    = "0xffffffffc121e690" 
    .bss                = "0xffffffffc1220fc0" 
    .data.once          = "0xffffffffc1220c0c" 
    .data               = "0xffffffffc1220000" 
    .exit.text          = "0xffffffffc11fdb4f" 
    .gnu.linkonce.this_module= "0xffffffffc1220c40" 
    .init.text          = "0xffffffffc122f000" 
    .note.Linux         = "0xffffffffc121edb0" 
    .note.gnu.build-id  = "0xffffffffc11fe000" 
    .orc_unwind         = "0xffffffffc121831f" 
    .orc_unwind_ip      = "0xffffffffc1214267" 
    .parainstructions   = "0xffffffffc121e850" 
    .rodata             = "0xffffffffc11fe560" 
    .rodata.str1.1      = "0xffffffffc120d0d8" 
    .rodata.str1.8      = "0xffffffffc120f0f8" 
    .smp_locks          = "0xffffffffc121ec5c" 
    .strtab             = "0xffffffffc123b208" 
    .symtab             = "0xffffffffc1230000" 
    .text               = "0xffffffffc11db000" 
    __bug_table         = "0xffffffffc1220468" 
    __jump_table        = "0xffffffffc121f000" 
    __kcrctab_gpl       = "0xffffffffc11fe408" 
    __ksymtab_gpl       = "0xffffffffc11fe024" 
    __ksymtab_strings   = "0xffffffffc1213b9b" 
    __mcount_loc        = "0xffffffffc120c580" 
    __param             = "0xffffffffc121e438" 


Here is the bitrate/RSSI


Connected to 6c:b0:ce:af:4a:a8 (on wlan0) 
    SSID: WIFI_8568 
    freq: 5180 
    RX: 13489215 bytes (12770 packets) 
    TX: 1142769 bytes (7772 packets) 
    signal: -70 dBm 
    tx bitrate: 36.0 MBit/s 
 
    bss flags:    short-slot-time 
    dtim period:    2 
    beacon int:    100

and iwconfig output for u/Marel


lo        no wireless extensions. 
 
eth0      no wireless extensions. 
 
wlan0     IEEE 802.11  ESSID:"WIFI_8568"   
          Mode:Managed  Frequency:5.18 GHz  Access Point: 6C:B0:CE:AF:4A:A8    
          Bit Rate=54 Mb/s   Tx-Power=22 dBm    
          Retry short limit:7   RTS thr:off   Fragment thr:off 
          Encryption key:off 
          Power Management:on 
          Link Quality=42/70  Signal level=-68 dBm   
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0 
          Tx excessive retries:0  Invalid misc:45   Missed beacon:0 

Once again, I’m getting ~60Mbps on Windows. Same machine/wifi network.

I knew that, but we’re not over your shoulder to check for ourselves, hence why it is good practice to post requested commands and the resulting output.

Here is the bitrate/RSSI

Connected to 6c:b0:ce:af:4a:a8 (on wlan0)
SSID: WIFI_8568
freq: 5180
RX: 13489215 bytes (12770 packets)
TX: 1142769 bytes (7772 packets)
signal: -70 dBm
tx bitrate: 36.0 MBit/s

bss flags:    short-slot-time 
dtim period:    2 
beacon int:    100

This is consistent with a legacy wifi mode (802.11a/g) in use. Not surprising since you’ve disabled 802.11n mode.

As you already know some experimentation is required. Can you try enabling link aggregation with

options iwlwifi 11n_disable=8

and perhaps together with swcrypto

swcrypto=1

FWIW, many others struggling with this (and similar) hardware…
https://bugzilla.kernel.org/show_bug.cgi?id=203709

BTW, does your AP support 2.4GHz connectivity as well? That might be worth a shot as some users found in the bugzilla thread.

Sorry for the slow reply.

It does support 2.4Ghz but that won’t be necessary, looks like the 11n_disable=8 by itself did the trick.

BEFORE:


Module = "iwlwifi" 
 
  Attributes: 
    coresize            = "339968" 
    initsize            = "0" 
    initstate           = "live" 
    refcnt              = "1" 
    srcversion          = "2A2248A321BDED128441849" 
    supported           = "Yes" 
    taint               = "" 
    uevent              = <store method only> 
 
  Parameters: 
**    11n_disable         = "1" **
    amsdu_size          = "0" 
**    bt_coex_active      = "N" **
    debug               = "0" 
    disable_11ac        = "N" 
    disable_11ax        = "N" 
    enable_ini          = "Y" 
    fw_restart          = "Y" 
    led_mode            = "0" 
    nvm_file            = "(null)" 
    power_level         = "0" 
    power_save          = "N" 
    remove_when_gone    = "N" 
    swcrypto            = "0" 
    uapsd_disable       = "3" 
 
  Sections: 
    .altinstr_aux       = "0xffffffffc1232bbd" 
    .altinstr_replacement= "0xffffffffc1232b60" 
    .altinstructions    = "0xffffffffc1253690" 
    .bss                = "0xffffffffc1255fc0" 
    .data.once          = "0xffffffffc1255c0c" 
    .data               = "0xffffffffc1255000" 
    .exit.text          = "0xffffffffc1232b4f" 
    .gnu.linkonce.this_module= "0xffffffffc1255c40" 
    .init.text          = "0xffffffffc1264000" 
    .note.Linux         = "0xffffffffc1253db0" 
    .note.gnu.build-id  = "0xffffffffc1233000" 
    .orc_unwind         = "0xffffffffc124d31f" 
    .orc_unwind_ip      = "0xffffffffc1249267" 
    .parainstructions   = "0xffffffffc1253850" 
    .rodata             = "0xffffffffc1233560" 
    .rodata.str1.1      = "0xffffffffc12420d8" 
    .rodata.str1.8      = "0xffffffffc12440f8" 
    .smp_locks          = "0xffffffffc1253c5c" 
    .strtab             = "0xffffffffc1270208" 
    .symtab             = "0xffffffffc1265000" 
    .text               = "0xffffffffc1210000" 
    __bug_table         = "0xffffffffc1255468" 
    __jump_table        = "0xffffffffc1254000" 
    __kcrctab_gpl       = "0xffffffffc1233408" 
    __ksymtab_gpl       = "0xffffffffc1233024" 
    __ksymtab_strings   = "0xffffffffc1248b9b" 
    __mcount_loc        = "0xffffffffc1241580" 
    __param             = "0xffffffffc1253438"


Connected to 6c:b0:ce:af:4a:a8 (on wlan0) 
    SSID: WIFI_8568 
    freq: 5180 
    RX: 90513368 bytes (63246 packets) 
    TX: 3015460 bytes (22208 packets) 
    signal: -69 dBm 
**    tx bitrate: 36.0 MBit/s **
 
    bss flags:    short-slot-time 
    dtim period:    2 
    beacon int:    100

web speed test shows ~25Mbps down

AFTER:


Module = "iwlwifi" 
 
  Attributes: 
    coresize            = "339968" 
    initsize            = "0" 
    initstate           = "live" 
    refcnt              = "1" 
    srcversion          = "2A2248A321BDED128441849" 
    supported           = "Yes" 
    taint               = "" 
    uevent              = <store method only> 
 
  Parameters: 
**    11n_disable         = "8" **
    amsdu_size          = "0" 
    bt_coex_active      = "Y" 
    debug               = "0" 
    disable_11ac        = "N" 
    disable_11ax        = "N" 
    enable_ini          = "Y" 
    fw_restart          = "Y" 
    led_mode            = "0" 
    nvm_file            = "(null)" 
    power_level         = "0" 
    power_save          = "N" 
    remove_when_gone    = "N" 
    swcrypto            = "0" 
    uapsd_disable       = "3" 
 
  Sections: 
    .altinstr_aux       = "0xffffffffc1223bbd" 
    .altinstr_replacement= "0xffffffffc1223b60" 
    .altinstructions    = "0xffffffffc1244690" 
    .bss                = "0xffffffffc1246fc0" 
    .data.once          = "0xffffffffc1246c0c" 
    .data               = "0xffffffffc1246000" 
    .exit.text          = "0xffffffffc1223b4f" 
    .gnu.linkonce.this_module= "0xffffffffc1246c40" 
    .init.text          = "0xffffffffc0ff3000" 
    .note.Linux         = "0xffffffffc1244db0" 
    .note.gnu.build-id  = "0xffffffffc1224000" 
    .orc_unwind         = "0xffffffffc123e31f" 
    .orc_unwind_ip      = "0xffffffffc123a267" 
    .parainstructions   = "0xffffffffc1244850" 
    .rodata             = "0xffffffffc1224560" 
    .rodata.str1.1      = "0xffffffffc12330d8" 
    .rodata.str1.8      = "0xffffffffc12350f8" 
    .smp_locks          = "0xffffffffc1244c5c" 
    .strtab             = "0xffffffffc0fff208" 
    .symtab             = "0xffffffffc0ff4000" 
    .text               = "0xffffffffc1201000" 
    __bug_table         = "0xffffffffc1246468" 
    __jump_table        = "0xffffffffc1245000" 
    __kcrctab_gpl       = "0xffffffffc1224408" 
    __ksymtab_gpl       = "0xffffffffc1224024" 
    __ksymtab_strings   = "0xffffffffc1239b9b" 
    __mcount_loc        = "0xffffffffc1232580" 
    __param             = "0xffffffffc1244438"


Connected to 6c:b0:ce:af:4a:a8 (on wlan0) 
    SSID: WIFI_8568 
    freq: 5180 
    RX: 364848 bytes (817 packets) 
    TX: 127697 bytes (815 packets) 
    signal: -67 dBm 
**    tx bitrate: 240.0 MBit/s MCS 13 40MHz short GI 
** 
    bss flags:    short-slot-time 
    dtim period:    2 
    beacon int:    100

web speed test shows ~ 60 Mbps down, now consistent with Windows, which I think is the cap for my data plan.

Thanks everyone!

Glad to have been of guidance. Thanks for the update.