You are not logged in.
Hello everyone, I'm in need of help.
I just changed my Hardware and first tested it on Windows. Now that I'm back on Linux, I'm experiencing much slower Wi-Fi speeds than on Windows. On Windows, I was able to get download speeds of around 1050-1100Mbps, and on Linux, it's only around 550-600Mbps.
The hardware is an MSI MAG B650 Tomahawk WiFi motherboard, which supposedly has MT7922 or MT7921e, depending on the revision from what I could find on the internet. I'm still not sure which one I have and how to find out since it reports both, but I think the firmware and drivers for both are the same.
I've already turned off the wifi power saving and manually updated the firmware from https://git.kernel.org, but to no surprise, I was already on the latest from 06.11.2024, so it did nothing.
Any help would be appreciated.
Thanks in advance!
❯ iwconfig
lo no wireless extensions.
enp14s0 no wireless extensions.
wlp15s0 IEEE 802.11 ESSID:"FRITZ!Box 6690 RX"
Mode:Managed Frequency:5.2 GHz
Bit Rate=-2.13367e+06 kb/s Tx-Power=3 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=56/70 Signal level=-54 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:1 Missed beacon:0
❯ lspci -k
0f:00.0 Network controller: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
Subsystem: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
Kernel driver in use: mt7921e
Kernel modules: mt7921e
❯ lshw
*-network
description: Wireless interface
product: MT7922 802.11ax PCI Express Wireless Network Adapter
vendor: MEDIATEK Corp.
physical id: 0
bus info: pci@0000:0f:00.0
logical name: wlp15s0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=mt7921e driverversion=6.12.21-1-lts firmware=____000000-20241106163310 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: iomemory:fc0-fbf irq:123 memory:fc30000000-fc300fffff memory:f6800000-f6807fff
❯ hwinfo
mt7921e: /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0b.0/0000:0f:00.0
mt7921e: module = mt7921e
net interface: name = wlp15s0, path = /class/net/wlp15s0
type = 1
carrier = 1
net device: path = /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0b.0/0000:0f:00.0
net driver: name = mt7921e, path = /bus/pci/drivers/mt7921e
----- kernel log -----
<6>[ 6.924710] mt7921e 0000:0f:00.0: enabling device (0000 -> 0002)
<6>[ 6.929708] mt7921e 0000:0f:00.0: ASIC revision: 79220010
<6>[ 7.006233] mt7921e 0000:0f:00.0: HW/SW Version: 0x8a108a10, Build Time: 20241106163228a
<6>[ 7.006233]
<6>[ 7.008336] kvm_amd: TSC scaling supported
<6>[ 7.008338] kvm_amd: Nested Virtualization enabled
<6>[ 7.008339] kvm_amd: Nested Paging enabled
<6>[ 7.008340] kvm_amd: LBR virtualization supported
<6>[ 7.008341] kvm_amd: Virtual VMLOAD VMSAVE supported
<6>[ 7.008341] kvm_amd: Virtual GIF supported
<6>[ 7.008342] kvm_amd: Virtual NMI enabled
<6>[ 7.019799] Adding 33029116k swap on /dev/nvme0n1p2. Priority:-2 extents:1 across:33029116k SS
<6>[ 7.020371] mt7921e 0000:0f:00.0: WM Firmware Version: ____000000, Build Time: 20241106163310
<6>[ 7.053353] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20241106163512
<6>[ 7.115002] intel_rapl_common: Found RAPL domain package
<6>[ 7.115006] intel_rapl_common: Found RAPL domain core
<6>[ 7.115258] amd_atl: AMD Address Translation Library initialized
<46>[ 7.718094] systemd-journald[429]: Received client request to flush runtime journal.
<6>[ 8.133955] mt7921e 0000:0f:00.0 wlp15s0: renamed from wlan0
54: PCI f00.0: 0282 WLAN controller
[Created at pci.386]
SysFS ID: /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0b.0/0000:0f:00.0
SysFS BusID: 0000:0f:00.0
Hardware Class: network
Model: "MEDIATEK WLAN controller"
Vendor: pci 0x14c3 "MEDIATEK Corp."
Device: pci 0x0616
SubVendor: pci 0x14c3 "MEDIATEK Corp."
SubDevice: pci 0x0616
Driver: "mt7921e"
Driver Modules: "mt7921e"
Device File: wlp15s0
Features: WLAN
Memory Range: 0xfc30000000-0xfc300fffff (ro,non-prefetchable)
Memory Range: 0xf6800000-0xf6807fff (rw,non-prefetchable)
IRQ: 123 (1153473 events)
Link detected: yes
WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136
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 2.484 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
WLAN encryption modes: WEP40 WEP104 TKIP CCMP
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
Module Alias: "pci:v000014C3d00000616sv000014C3sd00000616bc02sc80i00"
Driver Info #0:
Driver Status: mt7921e is active
Driver Activation Cmd: "modprobe mt7921e"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #63 (PCI bridge)
Last edited by spasoff (2025-04-06 20:48:16)
Offline
Update:
I reinstalled Windows and did some more testing.
There seems to be no huge difference in the connection speed, only in the internet speed. I also noticed about 15% more latency in the measurements while on Linux.
Those are the iperf3 results where the tested machine is connected via WiFi, and the second is connected with an Ethernet 1GB cable.
as Windows client:
Connecting to host 192.168.178.46, port 5201
[ 5] local 192.168.178.20 port 42974 connected to 192.168.178.46 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 106 MBytes 887 Mbits/sec 0 2.09 MBytes
[ 5] 1.00-2.00 sec 112 MBytes 938 Mbits/sec 0 2.09 MBytes
[ 5] 2.00-3.00 sec 110 MBytes 927 Mbits/sec 0 2.09 MBytes
[ 5] 3.00-4.00 sec 112 MBytes 940 Mbits/sec 0 2.45 MBytes
[ 5] 4.00-5.00 sec 111 MBytes 933 Mbits/sec 0 2.88 MBytes
[ 5] 5.00-6.00 sec 112 MBytes 938 Mbits/sec 0 3.03 MBytes
[ 5] 6.00-7.00 sec 113 MBytes 947 Mbits/sec 0 3.19 MBytes
[ 5] 7.00-8.00 sec 112 MBytes 941 Mbits/sec 0 3.19 MBytes
[ 5] 8.00-9.00 sec 112 MBytes 942 Mbits/sec 0 3.19 MBytes
[ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec 0 3.19 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 933 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 1.08 GBytes 931 Mbits/sec receiver
as Linux client:
Connecting to host 192.168.178.46, port 5201
[ 5] local 192.168.178.20 port 37716 connected to 192.168.178.46 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 98.6 MBytes 826 Mbits/sec 0 3.91 MBytes
[ 5] 1.00-2.00 sec 96.2 MBytes 807 Mbits/sec 0 3.91 MBytes
[ 5] 2.00-3.00 sec 99.6 MBytes 836 Mbits/sec 0 3.91 MBytes
[ 5] 3.00-4.00 sec 97.5 MBytes 818 Mbits/sec 0 3.91 MBytes
[ 5] 4.00-5.00 sec 101 MBytes 849 Mbits/sec 0 3.91 MBytes
[ 5] 5.00-6.00 sec 97.6 MBytes 819 Mbits/sec 0 3.91 MBytes
[ 5] 6.00-7.00 sec 91.2 MBytes 765 Mbits/sec 0 3.91 MBytes
[ 5] 7.00-8.00 sec 100 MBytes 840 Mbits/sec 0 3.91 MBytes
[ 5] 8.00-9.00 sec 98.4 MBytes 825 Mbits/sec 0 3.91 MBytes
[ 5] 9.00-10.00 sec 102 MBytes 852 Mbits/sec 0 3.91 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 982 MBytes 824 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 982 MBytes 822 Mbits/sec receiver
as Windows server:
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.178.46, port 50060
[ 5] local 192.168.178.20 port 5201 connected to 192.168.178.46 port 50061
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 93.9 MBytes 787 Mbits/sec
[ 5] 1.00-2.00 sec 113 MBytes 950 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 938 Mbits/sec
[ 5] 3.00-4.00 sec 113 MBytes 949 Mbits/sec
[ 5] 4.00-5.00 sec 113 MBytes 949 Mbits/sec
[ 5] 5.00-6.00 sec 113 MBytes 950 Mbits/sec
[ 5] 6.00-7.00 sec 113 MBytes 949 Mbits/sec
[ 5] 7.00-8.00 sec 113 MBytes 949 Mbits/sec
[ 5] 8.00-9.00 sec 113 MBytes 950 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec
[ 5] 10.00-10.05 sec 5.00 MBytes 948 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.05 sec 1.09 GBytes 931 Mbits/sec receiver
as Linux server
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------
Accepted connection from 192.168.178.46, port 58814
[ 5] local 192.168.178.20 port 5201 connected to 192.168.178.46 port 58820
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 104 MBytes 873 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 942 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 941 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec
[ 5] 7.00-8.00 sec 112 MBytes 943 Mbits/sec
[ 5] 8.00-9.00 sec 112 MBytes 941 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec
[ 5] 10.00-10.03 sec 3.00 MBytes 969 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.03 sec 1.09 GBytes 935 Mbits/sec receiver
Last edited by spasoff (2025-04-06 23:48:03)
Offline
There seems to be no huge difference in the connection speed, only in the internet speed.
How do you measure the "internet speed"?
Get ABBS and run the simplified speedtest against a nearby linode server.
Offline
Usually, against different German Ookla servers and T-Telekom servers. Those are the abbs results:
/dev/null 100%[=====================================>] 1000M 72.0MB/s in 15s
2025-04-07 21:18:07 URL:http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin [1048576000/1048576000] -> /dev/null [1]
Offline
So 576 Mbit/s what fits your OP.
Since it doesn't seem to affect the LAN connection:
Do you use jumbo frames or a VPN or anything else that might cause the MTU to be a relevant factor causing retransmits?
https://stackoverflow.com/questions/168 … nsmissions
Otherwise your DNS might be a factor?
(Depending on what "latency" means, but it would perhaps show up comparing "ping -n google.com" and "ping google.com")
Offline
I'm using neigher Jumbo Frames, nor VPN. I'm using my ISP DNS but even switching to Google or Cloudflair's DNSes doens't change much. I'm also getting my full 1Gbps with LAN Cable so that's that.
In terms of ping it goes from 16-18ms on Windows to 19-24ms on Linux.
Also did the testing on ASRock B650E PG Riptide WiFi Moatherboard, which has the same WiFi chip, and I installed Fedora to double check, but the results were pretty much the same with the latest firmware.
I will just rule it out as a driver issue.
Offline
In terms of ping it goes from 16-18ms on Windows to 19-24ms on Linux.
But is there a (dsignificant) difference between
ping -n google.com
and
ping google.com
?
I'm also getting my full 1Gbps with LAN Cable so that's that.
So wifi LAN is fast, wifi WAN is slow, wired WAN is fast.
On arch, fedora and different firmwares on the same chip, but not windows.
Correct recap?
On top of that the iperf3 server performance between windows and linux is pretty much the same, but the client performance has a 12% difference.
"mt7921e.disable_aspm=Y", https://wiki.archlinux.org/title/Kernel_parameters
The theory would be that the slightly slower traffic allows the chip to fall asleep, causing more overhead to wake it up.
It's certainly /a/ "theory" … that I'll buy when I see the results
Cloudflair's
Offline
Yes, you are correct!
This testing is done on CachyOS since I didn't want to go through the whole setup once again, but it should be the same.
There is was no measurable difference between
ping
and
ping -n
Also, using the
mt7921e.disable_aspm=Y
cachyos-matix kernel: mt7921e 0000:0f:00.0: enabling device (0000 -> 0002)
cachyos-matix kernel: mt7921e 0000:0f:00.0: disabling ASPM L1
yields the same result both for ping and wireless internet speeds.
Last edited by spasoff (2025-04-11 20:15:06)
Offline
Keep in mind that
LAN is fast, wifi WAN is slow, wired WAN is fast. On arch, fedora and different firmwares on the same chip, but not windows.
is either a fluke or completely nuts…
That being said, are you using networkmanager to establish the connection on arch/cachy & fedora?
What if you don't and connect w/ wpa_supplicant or iwd manually (and then obtain a lease w/ eg. dhcpcd since wpa_supplicant cannot do that)
For a quick and easy test, use wifi-menu from the netctl package.
(I want to get NMs scanning and MAC spoofing habits out of this, though even ifff that triggers any half-duplex conditions - why not in the LAN?)
Offline
Using only iwd from an Arch ISO gives me the same 70-ish MB/s result using the ABBS and ookla-speedtest-bin on both systems.
This time, I tested iperf3 while both systems were booted from Arch ISO and connected to WLAN using the iw daemon.
root@archiso ~ # lshw
archiso
description: Desktop Computer
product: MS-7D75 (To be filled by O.E.M.)
vendor: Micro-Star International Co., Ltd.
version: 1.0
serial: To be filled by O.E.M.
width: 64 bits
capabilities: smbios-3.7.0 dmi-3.7.0 smp vsyscall32
configuration: boot=normal chassis=desktop family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=08c88ed8-c248-9714-a74c-345a6040d83f
*-core
description: Motherboard
product: MAG B650 TOMAHAWK WIFI (MS-7D75)
vendor: Micro-Star International Co., Ltd.
physical id: 0
version: 1.0
serial: 07D7511_OB1E234638
slot: To be filled by O.E.M.
*-firmware
description: BIOS
vendor: American Megatrends International, LLC.
physical id: 0
version: 1.K0
date: 10/08/2024
size: 64KiB
capacity: 32MiB
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen
*-network
description: Ethernet interface
product: RTL8125 2.5GbE Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:0e:00.0
logical name: enp14s0
version: 05
capacity: 2500Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd 2500bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=6.13.8-arch1-1 firmware=rtl8125b-2_0.0.2 07/13/20 latency=0 link=no multicast=yes port=twisted pair
*-network
description: Wireless interface
product: MT7922 802.11ax PCI Express Wireless Network Adapter
vendor: MEDIATEK Corp.
physical id: 0
bus info: pci@0000:0f:00.0
logical name: wlan0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=mt7921e driverversion=6.13.8-arch1-1 firmware=____000000-20241106163310 ip=192.168.178.53 latency=0 link=yes multicast=yes wireless=IEEE 802.11
root@archiso ~ # lshw
archiso
description: Desktop Computer
product: B650E PG Riptide WiFi (Default string)
vendor: ASRock
version: Default string
serial: Default string
width: 64 bits
capabilities: smbios-3.4.0 dmi-3.4.0 smp vsyscall32
configuration: boot=normal chassis=desktop family=Default string sku=Default string
*-core
description: Motherboard
product: B650E PG Riptide WiFi
vendor: ASRock
physical id: 0
version: Default string
serial: M80-G8005000198
slot: Default string
*-firmware
description: BIOS
vendor: American Megatrends International, LLC.
physical id: 0
version: 1.21
date: 04/26/2023
size: 64KiB
capacity: 32MiB
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer int10video usb biosbootspecification uefi
*-network
description: Ethernet interface
product: Killer E3000 2.5GbE Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:0d:00.0
logical name: enp13s0
version: 06
size: 1Gbit/s
capacity: 2500Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd 2500bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=6.13.8-arch1-1 duplex=full firmware=rtl8125b-2_0.0.2 07/13/20 ip=192.168.178.54 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:38 ioport:c000(size=256) memory:fc500000-fc50ffff memory:fc510000-fc513fff
*-network
description: Wireless interface
product: MT7921K (RZ608) Wi-Fi 6E 80MHz
vendor: MEDIATEK Corp.
physical id: 0
bus info: pci@0000:0c:00.0
logical name: wlan0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=mt7921e driverversion=6.13.8-arch1-1 firmware=____010000-20241106151045 ip=192.168.178.55 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:105 memory:fc100000-fc1fffff memory:fc200000-fc203fff memory:fc204000-fc204fff
1 root@archiso ~ # iperf3 -c 192.168.178.55
Connecting to host 192.168.178.55, port 5201
[ 5] local 192.168.178.53 port 56136 connected to 192.168.178.55 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 110 MBytes 924 Mbits/sec 0 4.05 MBytes
[ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec 0 4.05 MBytes
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0 4.05 MBytes
[ 5] 3.00-4.00 sec 112 MBytes 944 Mbits/sec 0 4.05 MBytes
[ 5] 4.00-5.00 sec 112 MBytes 935 Mbits/sec 0 4.05 MBytes
[ 5] 5.00-6.00 sec 113 MBytes 944 Mbits/sec 0 4.05 MBytes
[ 5] 6.00-7.00 sec 112 MBytes 938 Mbits/sec 0 4.05 MBytes
[ 5] 7.00-8.00 sec 112 MBytes 935 Mbits/sec 0 4.05 MBytes
[ 5] 8.00-9.00 sec 112 MBytes 943 Mbits/sec 0 4.05 MBytes
[ 5] 9.00-10.00 sec 112 MBytes 941 Mbits/sec 0 4.05 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec 0 sender
[ 5] 0.00-10.03 sec 1.09 GBytes 935 Mbits/sec receiver
iperf Done.
root@archiso ~ # iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.178.54, port 60416
[ 5] local 192.168.178.53 port 5201 connected to 192.168.178.54 port 60432
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 68.5 MBytes 574 Mbits/sec
[ 5] 1.00-2.00 sec 89.1 MBytes 747 Mbits/sec
[ 5] 2.00-3.00 sec 86.8 MBytes 728 Mbits/sec
[ 5] 3.00-4.00 sec 87.6 MBytes 735 Mbits/sec
[ 5] 4.00-5.00 sec 88.5 MBytes 742 Mbits/sec
[ 5] 5.00-6.00 sec 86.9 MBytes 729 Mbits/sec
[ 5] 6.00-7.00 sec 90.0 MBytes 755 Mbits/sec
[ 5] 7.00-8.00 sec 88.1 MBytes 740 Mbits/sec
[ 5] 8.00-9.00 sec 91.1 MBytes 764 Mbits/sec
[ 5] 9.00-10.00 sec 90.8 MBytes 761 Mbits/sec
[ 5] 10.00-10.04 sec 2.25 MBytes 484 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.04 sec 870 MBytes 727 Mbits/sec receiver
Think I will just order an AX210 for 12€ and call it a day. It most likely has something to do with the Mediatek's chip firmware.
I'm also seeing a random spike in the ping while gaming on Linux, jumping from mid-20s to 100+ every few minutes for a few seconds that is not present on Windows.
The funny thing is that I had it in my other build for over a year (MT7921K, not the MT7922, but they seem to behave the same) but never bothered to test the Wi-Fi since I didn't need it, and the Bluetooth is actually rock solid.
Thanks for the time and the help!
Last edited by spasoff (2025-04-14 20:30:59)
Offline
OK. Another update that may help people in my situation if they stumble upon this post.
After some more research, I ended up on this Reddit post where people were having the same ping spikes even on Windows. The solution was to turn off Roaming Aggressiveness for the WiFi network adapter in Windows, so on Linux, I tried first to lower the sensitivity to -70dB, which ended with
Error for wireless request "Set Sensitivity" (8B08) :
SET failed on device wlan0 ; Operation not supported.
After the error, I decided to just lock the network to a single BSSID, which would prevent roaming.
The interesting part is that the 5Ghz network only allows me to use the 40(5,200 MHz) channel. If I pick any other channel from 7(5,035 Mhz) to 196(4,980 Mhz) range, results in me not being able to connect to the WAN.
even tho they are well supported by the device:
❯ sudo iw phy
Band 2:
Frequencies:
* 5180.0 MHz [36] (23.0 dBm)
* 5200.0 MHz [40] (23.0 dBm)
* 5220.0 MHz [44] (23.0 dBm)
* 5240.0 MHz [48] (23.0 dBm)
* 5260.0 MHz [52] (20.0 dBm) (radar detection)
* 5280.0 MHz [56] (20.0 dBm) (radar detection)
* 5300.0 MHz [60] (20.0 dBm) (radar detection)
* 5320.0 MHz [64] (20.0 dBm) (radar detection)
* 5500.0 MHz [100] (26.0 dBm) (radar detection)
* 5520.0 MHz [104] (26.0 dBm) (radar detection)
* 5540.0 MHz [108] (26.0 dBm) (radar detection)
* 5560.0 MHz [112] (26.0 dBm) (radar detection)
* 5580.0 MHz [116] (26.0 dBm) (radar detection)
* 5600.0 MHz [120] (26.0 dBm) (radar detection)
* 5620.0 MHz [124] (26.0 dBm) (radar detection)
* 5640.0 MHz [128] (26.0 dBm) (radar detection)
* 5660.0 MHz [132] (26.0 dBm) (radar detection)
* 5680.0 MHz [136] (26.0 dBm) (radar detection)
* 5700.0 MHz [140] (26.0 dBm) (radar detection)
* 5720.0 MHz [144] (13.0 dBm) (radar detection)
* 5745.0 MHz [149] (13.0 dBm)
* 5765.0 MHz [153] (13.0 dBm)
* 5785.0 MHz [157] (13.0 dBm)
* 5805.0 MHz [161] (13.0 dBm)
* 5825.0 MHz [165] (13.0 dBm)
* 5845.0 MHz [169] (disabled)
* 5865.0 MHz [173] (disabled)
* 5885.0 MHz [177] (disabled)
Band 4:
Frequencies:
* 5955.0 MHz [1] (23.0 dBm)
* 5975.0 MHz [5] (23.0 dBm)
* 5995.0 MHz [9] (23.0 dBm)
* 6015.0 MHz [13] (23.0 dBm)
* 6035.0 MHz [17] (23.0 dBm)
* 6055.0 MHz [21] (23.0 dBm)
* 6075.0 MHz [25] (23.0 dBm)
* 6095.0 MHz [29] (23.0 dBm)
* 6115.0 MHz [33] (23.0 dBm)
* 6135.0 MHz [37] (23.0 dBm)
* 6155.0 MHz [41] (23.0 dBm)
* 6175.0 MHz [45] (23.0 dBm)
* 6195.0 MHz [49] (23.0 dBm)
* 6215.0 MHz [53] (23.0 dBm)
* 6235.0 MHz [57] (23.0 dBm)
* 6255.0 MHz [61] (23.0 dBm)
* 6275.0 MHz [65] (23.0 dBm)
* 6295.0 MHz [69] (23.0 dBm)
* 6315.0 MHz [73] (23.0 dBm)
* 6335.0 MHz [77] (23.0 dBm)
* 6355.0 MHz [81] (23.0 dBm)
* 6375.0 MHz [85] (23.0 dBm)
* 6395.0 MHz [89] (23.0 dBm)
* 6415.0 MHz [93] (23.0 dBm)
* 6435.0 MHz [97] (disabled)
* 6455.0 MHz [101] (disabled)
* 6475.0 MHz [105] (disabled)
* 6495.0 MHz [109] (disabled)
* 6515.0 MHz [113] (disabled)
* 6535.0 MHz [117] (disabled)
* 6555.0 MHz [121] (disabled)
* 6575.0 MHz [125] (disabled)
* 6595.0 MHz [129] (disabled)
* 6615.0 MHz [133] (disabled)
* 6635.0 MHz [137] (disabled)
* 6655.0 MHz [141] (disabled)
* 6675.0 MHz [145] (disabled)
* 6695.0 MHz [149] (disabled)
* 6715.0 MHz [153] (disabled)
* 6735.0 MHz [157] (disabled)
* 6755.0 MHz [161] (disabled)
* 6775.0 MHz [165] (disabled)
* 6795.0 MHz [169] (disabled)
* 6815.0 MHz [173] (disabled)
* 6835.0 MHz [177] (disabled)
* 6855.0 MHz [181] (disabled)
* 6875.0 MHz [185] (disabled)
* 6895.0 MHz [189] (disabled)
* 6915.0 MHz [193] (disabled)
* 6935.0 MHz [197] (disabled)
* 6955.0 MHz [201] (disabled)
* 6975.0 MHz [205] (disabled)
* 6995.0 MHz [209] (disabled)
* 7015.0 MHz [213] (disabled)
* 7035.0 MHz [217] (disabled)
* 7055.0 MHz [221] (disabled)
* 7075.0 MHz [225] (disabled)
* 7095.0 MHz [229] (disabled)
* 7115.0 MHz [233] (disabled)
❯ iwconfig
lo no wireless extensions.
enp14s0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:"FRITZ!Box 6690 RX"
Mode:Managed Frequency:5.2 GHz Access Point: XX:XX:XX:XX:XX:XX
Bit Rate=-1.89307e+06 kb/s Tx-Power=3 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=56/70 Signal level=-54 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
❯ iw dev wlan0 link;
Connected to XX:XX:XX:XX:XX:XX (on wlan0)
SSID: FRITZ!Box 6690 RX
freq: 5200.0
RX: 1144627473 bytes (785353 packets)
TX: 117008557 bytes (201145 packets)
signal: -54 dBm
rx bitrate: 1152.8 MBit/s 160MHz HE-MCS 5 HE-NSS 2 HE-GI 0 HE-DCM 0
tx bitrate: 2401.9 MBit/s 160MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0
bss flags: short-slot-time
dtim period: 1
beacon int: 100
From my understanding, since we can only use one 20Mhz width channel, we can only get a theoretical maximum speed of 573.5 Mbps, which is what I'm getting on both of my machines with this wifi adapter. That doesn't explain the iperf3 measurements, but it explains everything else.
20 MHz Channel on Channel 40 – Max Speed by Wi-Fi Standard
Wi-Fi Max PHY Rate (1 stream) 2 Streams 4 Streams Notes
Wi-Fi 4 (802.11n) 72.2 Mbps 144.4 Mbps ~300 Mbps Uses MIMO
Wi-Fi 5 (802.11ac) 86.7 Mbps 173.3 Mbps 346.6 Mbps Only on 5 GHz
Wi-Fi 6 (802.11ax) 143.4 Mbps 286.8 Mbps 573.5 Mbps Uses OFDMA, 1024-QAM
The good news is that locking the BSS identifier stopped the lag spikes and, overall, resulted in a more stable ping, even tho still a few ms higher than Windows. The bad news is that the internet speeds are still low, but 500Mbps+ is still plenty for day-to-day use.
Last edited by spasoff (2025-04-15 03:39:32)
Offline
https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
https://en.wikipedia.org/wiki/List_of_W … /ac/ax/be)
If I pick any other channel from 7(5,035 Mhz) to 196(4,980 Mhz) range, results in me not being able to connect to the WAN.
even tho they are well supported by the device:
but what channel(s) is(are) configured in your router?
Offline
but what channel(s) is(are) configured in your router?
You're absolutely right. Apparently, my router uses channel 40 by default.
I can change and connect to other channels, but the Internet speed, in the best case, stays the same.
It was 3 AM down the rabbit hole, and I thought I had figured it out.
Offline
Keep in mind that
LAN is fast, wifi WAN is slow, wired WAN is fast. On arch, fedora and different firmwares on the same chip, but not windows.
is either a fluke or completely nuts…
If it was the channel or roaming or anything like this, you'd not see decent WiFi LAN
DNS or Firewall or the discrimination has to happen in the router - any MAC based QoS quotas etc?
Offline
If it was the channel or roaming or anything like this, you'd not see decent WiFi LAN
DNS or Firewall or the discrimination has to happen in the router - any MAC based QoS quotas etc?
Nope. It would've shown under Windows as well.
Offline
Using DUID or ClientID on DHCP might make a difference there, but if you didn't setup anything like this, it's rather also not there by default (except if maybe the router offers some guest mode and you're accidentally associating with that from linux but use the regular AP from windows?)
About DNS:
wget -O /dev/null http://139.162.130.8/1GB-frankfurt.bin
?
Edit: and did you try to lower the MTU just because we're running out of straws to grasp for?
Last edited by seth (2025-04-15 19:52:07)
Offline
About DNS:
wget -O /dev/null http://139.162.130.8/1GB-frankfurt.bin
?
❯ as root wget -O /dev/null http://139.162.130.8/1GB-frankfurt.bin
--2025-04-16 14:50:33-- http://139.162.130.8/1GB-frankfurt.bin
Connecting to 139.162.130.8:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576000 (1000M) [application/octet-stream]
Saving to: ‘/dev/null’
/dev/null 100%[======================================================================================================================================================>] 1000M 74,6MB/s in 16s
2025-04-16 14:50:48 (64,1 MB/s) - ‘/dev/null’ saved [1048576000/1048576000]
❯ ./abbs net speed
1) Newark, USA 3) London, UK 5) Dallas, USA 7) Sidney, Australia 9) 東京都 (Tokyo), 日本国 (Japan) 11) Fremont, USA
2) Singapore 4) Frankfurt, Deutschland 6) Toronto, Canada 8) Atlanta, USA 10) मुंबई (Bombay), Bhārat (India)
Enter location: 3
1) 100MB
2) 1GB
Select size: 2
/dev/null 100%[======================================================================================================================================================>] 1000M 73,7MB/s in 16s
2025-04-16 14:25:20 URL:http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin [1048576000/1048576000] -> "/dev/null" [1]
Edit: and did you try to lower the MTU just because we're running out of straws to grasp for?
I can only change the range from 1280 to 2000, with 1500 being the default, but there is no difference there.
What is more interesting is that using the Ookla CLI from the AUR gives me a much higher speeds than what I can get while measuring against the same server using Firefox, Chromium.
Abbs, and Steam downloads are also slower than what I get from Ookla CLI and similar to the web browser results. And it is consistent.
for comparison this is the connection over lan
❯ speedtest
Speedtest by Ookla
Server: Internetnord GmbH - Berlin (id: 49516)
ISP: TeleColumbus
Idle Latency: 15.13 ms (jitter: 0.59ms, low: 14.60ms, high: 15.49ms)
Download: 1050.33 Mbps (data used: 1.0 GB)
32.13 ms (jitter: 2.52ms, low: 9.96ms, high: 47.86ms)
Upload: 52.23 Mbps (data used: 39.1 MB)
6.87 ms (jitter: 1.36ms, low: 4.68ms, high: 14.05ms)
Packet Loss: 0.0%
took 16s
❯ wget -O /dev/null http://139.162.130.8/1GB-frankfurt.bin
--2025-04-16 14:47:28-- http://139.162.130.8/1GB-frankfurt.bin
Connecting to 139.162.130.8:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576000 (1000M) [application/octet-stream]
Saving to: ‘/dev/null’
/dev/null 100%[======================================================================================================================================================>] 1000M 66,6MB/s in 27s
2025-04-16 14:47:55 (37,1 MB/s) - ‘/dev/null’ saved [1048576000/1048576000]
and those are the speeds I'm geting with the same NIC on Windows
Last edited by spasoff (2025-04-16 13:46:34)
Offline
How fast can you download http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin on windows/wifi using eg. wget for windows or your browser?
How fast can you download the file using https://archlinux.org/packages/extra/x86_64/axel/ and multiple connections (are two faster than one?)
I start to suspect some cheating here…
Offline
How fast can you download http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin on windows/wifi using eg. wget for windows or your browser?
How fast can you download the file using https://archlinux.org/packages/extra/x86_64/axel/ and multiple connections (are two faster than one?)
I start to suspect some cheating here…
axel http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin -o 1GB-frankfurt.bin
Initializing download: http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin
File size: 1000 Megabyte(s) (1048576000 bytes)
Opening output file 1GB-frankfurt.bin
Starting download
Connection 3 finished
Connection 2 finished
Connection 2 finished
Connection 0 finished
Connection 3 finished
Connection 0 finished
Connection 2 finished
Connection 3 finished
Connection 1 finished
Connection 0 finished
Connection 2 finished
Connection 1 finished
Connection 3 finished
Connection 0 finished
Connection 2 finished
Connection 3 finished
Connection 1 finished
Connection 0 finished
[100%] [.................................................................................................................................................................................................................................] [ 66,8MB/s] [00:00]
Downloaded 1000 Megabyte(s) in 14 second(s). (68446,00 KB/s)
axel http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin -o 1GB-frankfurt_2.bin
Initializing download: http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin
File size: 1000 Megabyte(s) (1048576000 bytes)
Opening output file 1GB-frankfurt_2.bin
Starting download
Connection 3 finished
Connection 2 finished
Connection 3 finished
Connection 2 finished
Connection 0 finished
Connection 3 finished
Connection 1 finished
Connection 2 finished
Connection 1 finished
Connection 2 finished
Connection 3 finished
Connection 0 finished
Connection 2 finished
Connection 1 finished
Connection 3 finished
[100%] [.................................................................................................................................................................................................................................] [ 68,6MB/s] [00:00]
Downloaded 1000 Megabyte(s) in 14 second(s). (70265,96 KB/s)
I'm failing to use wget on Windows. The built-in Windows binary just shows this and the "Number of bytes written" just goes up
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Writing web request Writing request stream... (Number of bytes written: 215080542) PS C:\Users\matix\Downloads> wget http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin -o test_2 -v
VERBOSE: GET with 0-byte payload
VERBOSE: received 1048576000-byte response of content type application/octet-stream
And downloading it from doesn't show the speed:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Writing web request Writing request stream... (Number of bytes written: 215080542) PS C:\Users\matix\Downloads> wget http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin -o test_2 -v
VERBOSE: GET with 0-byte payload
VERBOSE: received 1048576000-byte response of content type application/octet-stream
Copyright (C) Microsoft Corporation. All rights reserved.
Install the latest PowerShell for new features and improvements! [url]https://aka.ms/PSWindows[/url] PS C:\Users\matix> cd .\Downloads\ PS C:\Users\matix\Downloads> wget [url]http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin[/url] -o test_2 -v
VERBOSE: GET with 0-byte payload
VERBOSE: received 1048576000-byte response of content type application/octet-stream
PS C:\Users\matix\Downloads> .\wget.exe [url]http://speedtest.frankfurt.linode.com/1GB-frankfurt.bin[/url] -o test.bin -v
PS C:\Users\matix\Downloads> dir
Directory: C:\Users\matix\Downloads
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 3/27/2025 2:21 AM Cinebench2024_win_x86_64
d----- 3/27/2025 3:07 PM dlssg-to-fsr3-0.130-738-0-130-1742150748
d----- 3/27/2025 3:16 PM fakenvapi
d----- 4/6/2025 11:24 PM iperf3.18_64
d----- 4/2/2025 8:52 PM mpv-x86_64-v3-20250402-git-36ea235
d----- 3/27/2025 3:17 PM OptiScaler
d----- 3/27/2025 12:32 AM p95
d----- 4/16/2025 3:03 PM wget-1.11.4-1-bin
d----- 4/16/2025 3:12 PM wget2-latest
-a---- 4/16/2025 3:02 PM 185340542 1GB-frankfurt.bin
-a---- 3/30/2022 3:32 PM 1048576000 1GB-frankfurt.bin.1
-a---- 3/30/2022 3:32 PM 1048576000 1GB-frankfurt.bin.2
-a---- 3/30/2022 3:32 PM 1048576000 1GB-frankfurt.bin.3
-a---- 3/30/2022 3:32 PM 1048576000 1GB-frankfurt.bin.4
-a---- 3/27/2025 3:07 PM 1075990 dlssg-to-fsr3-0.130-738-0-130-1742150748.zip
-a---- 3/27/2025 3:16 PM 170867 fakenvapi.7z
-a---- 3/31/2025 2:36 PM 24090 label.pdf
-a---- 4/16/2025 9:24 AM 3478312 LatencyMon.exe
-a---- 3/26/2025 10:32 PM 24046 OCCT.config.json
-a---- 3/26/2025 10:21 PM 227178120 OCCT.exe
-a---- 3/27/2025 1:12 PM 31105842 OptiScaler_v0.7.7-pre7_20250327.7z
-a---- 4/16/2025 3:16 PM 1582991 test.bin
-a---- 4/16/2025 3:15 PM 239260542 test_2
-a---- 3/26/2025 10:35 PM 1339177360 Unigine_Superposition-1.1.exe
-a---- 4/16/2025 3:10 PM 850448 wget-1.11.4-1-bin (1).zip
-a---- 4/16/2025 3:03 PM 850448 wget-1.11.4-1-bin.zip
-a---- 4/16/2025 3:05 PM 7046072 wget.exe
-a---- 4/16/2025 3:12 PM 4094789 wget2-latest.tar.gz
Last edited by spasoff (2025-04-16 15:21:48)
Offline
So multiple connections don't help, try to download that file on windows to see whether the ookla test gets benefits…
Offline
So multiple connections don't help, try to download that file on Windows to see whether the Ookla test gets benefits…
Updated the previous post.
Not sure how to get the download speed using wget on Windows, but via the browser, it downloaded with around 70-90MB/s the first few times, now the speed has been throttled down to around 20MB/s after some retries.
The thing is that it's only 1GB and it downloads really fast, so not sure if that's the max speed it can achieve. The speed via Chrome hasn't changed.
Edit: I think I wasted enough of your time, for which I'm very thankful, and I really don't want to bother you further. I will just accept the result and call it a day.
Last edited by spasoff (2025-04-16 15:37:12)
Offline
http://speedtest.frankfurt.linode.com/
Fwwi, I'm doing this to entertain my curiosity - it's an interesting scenario.
So don't worry about wasting my time.
Offline