Problem with 54 mbps throttling on a intel 8260 card

I am having a throttling issue with my intel 8260 card, it is staying in legacy mode, 54 mbps, i have a thinkpad E560, the card worked fine on windows prior to the fedora 44 load, and i troubleshooted the card to the fullest extent, even changed the modprobe and kernel level intel driver settings, all have been reset and the kernel is still throttling me down to the 54mbps, i need some help with this unless this is an issue with newer kernels, i’m almost ready to replace the m.2 card, but if there is a software fix, i’d prefere that before going so drastic

Please show us some details that will allowbus to understand your wifi configuration:

  1. the regulatory domain (output from running iw reg get in a terminal, posted as web-discoverable pre-formatted text).
  2. output from running inxi -Nzxx ina terminal

Here is the txt generated directly from iw reg get:
global
country US: DFS-FCC
(902 - 904 @ 2), (N/A, 30), (N/A)
(904 - 920 @ 16), (N/A, 30), (N/A)
(920 - 928 @ 8), (N/A, 30), (N/A)
(2400 - 2472 @ 40), (N/A, 30), (N/A)
(5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
(5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
(5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
(5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
(5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
(5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
(57240 - 71000 @ 2160), (N/A, 40), (N/A)

phy#0 (self-managed)
country US: DFS-UNSET
(2402 - 2437 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-80MHZ, NO-160MHZ
(2422 - 2462 @ 40), (6, 22), (N/A), AUTO-BW, NO-80MHZ, NO-160MHZ
(2447 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, NO-160MHZ
(5170 - 5190 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5190 - 5210 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5210 - 5230 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5230 - 5250 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5250 - 5270 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5270 - 5290 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5290 - 5310 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5310 - 5330 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5490 - 5510 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5510 - 5530 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5530 - 5550 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5550 - 5570 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5570 - 5590 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5590 - 5610 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5610 - 5630 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5630 - 5650 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5650 - 5670 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5670 - 5690 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5690 - 5710 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5710 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5735 - 5755 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5755 - 5775 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5775 - 5795 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5795 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5815 - 5835 @ 20), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-HT40PLUS, NO-80MHZ, NO-160MHZ, NO-320MHZ

And the inxi -NZxx command gives me a Bash: Inxi: Command not found

also here is the output of iw dev wlp1s0 link without the mac address and ssid listed here for obvious reasons

freq: 5220.0
RX: 55967745 bytes (57838 packets)
TX: 14894129 bytes (35914 packets)
signal: -48 dBm
rx bitrate: 54.0 MBit/s
tx bitrate: 54.0 MBit/s
bss flags: short-slot-time
dtim period: 1
beacon int: 100

linux needs lowercase “i”.
You may need to install the inxi package.

it wasn’t a lowercase matter, it wasn’t installed on the fedora installation as it was a new xfce spin I just put on this machine, sorry here are the results of that inxi -Nzxx command:
Network:
Device-1: Intel Ethernet I219-V vendor: Lenovo driver: e1000e v: kernel
port: N/A bus-ID: 00:1f.6 chip-ID: 8086:1570
Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel pcie:
speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:24f3

both antenna cable proper connected ?

its a lenovo thinkpad e560, yes, all connections were double checked, its a software problem or issue cause prior to the fedora xfce spin install windows 10 was connected with full bandwidth from xfinity gateway, only after the fedora install is it throttling.

Can you boot a Fedora 43 Workstation live system and see if that makes any difference?

Other WiFi devices connect to the SSID at higher speeds?

Power saving settings are often a problem, try:

  • create a configuration file for the iwlwifi module:
    /etc/modprobe.d/iwlwifi.conf
  • add the following line to the file:
    options iwlwifi power_save=0
  • save and reboot.

I wouldn’t be able to find a Fedora 43 iso easily for that live drive, any idea how to get the isolated, cause fedoraproject site has only Fedora 44

Thank you for the iso link, I will make it bootable and try it asap

Ventoy is very useful when you need access to multiple .iso files. Once you create a Ventoy USB on a large enough device you just copy ISO file to it and allows you to choose the one you want to boot.

here are the results of those same tests when booted into a fedora 43 live drive:

iw reg get
global
country 00: DFS-UNSET
(755 - 928 @ 2), (N/A, 20), (N/A), PASSIVE-SCAN
(2402 - 2472 @ 40), (N/A, 20), (N/A)
(2457 - 2482 @ 20), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN
(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
(5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, PASSIVE-SCAN
(5735 - 5835 @ 80), (N/A, 20), (N/A), PASSIVE-SCAN
(57240 - 63720 @ 2160), (N/A, 0), (N/A)

phy#0 (self-managed)
country US: DFS-UNSET
(2402 - 2437 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-80MHZ, NO-160MHZ
(2422 - 2462 @ 40), (6, 22), (N/A), AUTO-BW, NO-80MHZ, NO-160MHZ
(2447 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, NO-160MHZ
(5170 - 5190 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5190 - 5210 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5210 - 5230 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5230 - 5250 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5250 - 5270 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5270 - 5290 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5290 - 5310 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5310 - 5330 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5490 - 5510 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5510 - 5530 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5530 - 5550 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5550 - 5570 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5570 - 5590 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5590 - 5610 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5610 - 5630 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5630 - 5650 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5650 - 5670 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5670 - 5690 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5690 - 5710 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5710 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
(5735 - 5755 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5755 - 5775 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5775 - 5795 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ
(5795 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ
(5815 - 5835 @ 20), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-HT40PLUS, NO-80MHZ, NO-160MHZ, NO-320MHZ

iw dev wlp1s0 link
Connected to --:–:–:–:–:-- (on wlp1s0)
SSID:
freq: 5220.0
RX: 9890 bytes (48 packets)
TX: 11673 bytes (65 packets)
signal: -49 dBm
rx bitrate: 54.0 MBit/s
tx bitrate: 54.0 MBit/s
bss flags: short-slot-time
dtim period: 1
beacon int: 100

(I blanked out the mac and ssid)

inxi -Nzxx
Network:
Device-1: Intel Ethernet I219-V vendor: Lenovo driver: e1000e v: kernel
port: N/A bus-ID: 00:1f.6 chip-ID: 8086:1570
Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel pcie:
speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:24f3

it looks like its throttling even in Fedora 43, any ideas??

did you follow the idea of turning off power saving?

also, you haven’t answered the question if other devices in your wifi-network are connecting at higher speeds.

in addition, what is the security setting of your wifi? I am asking because 802.11n and 802.11ac (Wi-Fi 5) standards require modern security encryption. If your router’s 5 GHz network is configured to use WEP or WPA-TKIP encryption, the Wi-Fi standard mandates that the connection drop back to legacy 54 Mbps speeds.

Also, double-check wifi settings in your router.. make sure it’s set to to “Mixed”, or “802.11a/n/ac,” or “802.11ac only.”

Yes, I have tried modifying the files to turn off power saving, all my other devices, which include smart tvs, a smart watch, smart phone etc., are all connecting at full rate on the xfinity gateway, this machine did too, until I switched it to fedora, but, windows was so horribly clunky that I refuse to go back to windows just to get my internet speed at full bore, I have considered upgrading the m.2 card, while it doesn’t fix this issue it would correct the overall problem, but, I would like to fix this, cause I know its probably have something thats been overlooked or a setting cause it works on windows, and Linux is far superior to windows, so there has to be a fix

Solution Found!!

I can happily say that I have found a fix for this!! I was able to locate a patch on github that bypassed the issue, it seems that this problem is a known bug between the linux kernel (mac80211) and Comcast Gateways (specifically firmware XB6, XB7, XB8 and XB10). The router incorrectly broadcasets its Modulation and Coding Scheme (MCS) capabilities, causing a Linux box to panic and disable High Throughput capping your speed.

This fix is found at github by the following terminal commands:

git clone GitHub - WoodyWoodster/mac80211-mcs-patch · GitHub

cd mac8011-mcs-patch
sudo ./rebuild-mac80211.sh
sudo reboot

(must use the rebuild-mac80211.sh for fedora, install.sh is present but built for other versions of linux, i.e. debian, ubuntu, etc.)

proof of fix:

iw dev wlp1s0 link
Connected to --:–:–:–:–:-- (on wlp1s0)
SSID:
freq: 5220.0
RX: 1618848811 bytes (577241 packets)
TX: 195729093 bytes (238868 packets)
signal: -52 dBm
rx bitrate: 433.3 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 1
tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
bss flags: short-slot-time
dtim period: 1
beacon int: 100

(I removed mac and SSID)

Bad news with patch, not permanent and does not update with kernel modification so must be run every kernel update, but, quick fix, keep the folder, and simply run:

cd ~/mac80211-mcs-patch
sudo ./rebuild-mac80211.sh
sudo reboot

You can automate this, Fedora runs scripts located in the kernel post-install directory automatically, for example /etc/kernel/postinst.d/mac80211-patch

The good news is that kernel devs have addressed the issue and merged a patch in upstream kernel.