I know this topic has been discussed a lot, but nothing I have read gives a reason or answer. Here’s what I have done. I am running Fedora 41 on an old HP Pavilion DM3 notebook. Wired internet is fast, but Wifi is painfully slow. To make sure it’s not hardware, I removed the internal Wifi adapter, bought a USB Wifi adapter, compiled a driver for it, and it works, but is also painfully slow. The internal adapter has a Broadcom chip, and the USB adapter has a Realtek chip. So the problem is obviously not hardware. So what is it, and is there a fix? Ps. I have tried all the fixes I have found so far, such as disabling IPV6, messing with DNS, etc. Nothing works.
Edit: I forgot to mention that I also have another HP notebook computer with Ubuntu Linux on it. It does not have the painfully slow Wifi problem. It’s slower than Windows, but it’s usable.
Does the output from netstat -i
show a lot of packet loss on your WiFi connection? Here is what mine shows as an example:
# netstat -Iwlan0
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
wlan0 1500 67622 0 4 0 50048 0 0 0 BMRU
Edit:
iperf
is another tool that can provide some insight into how your network is performing, but you will need two computers to pass the data packets back and forth and test the connection. Ideally, you would put the “server” side of the connection on the known good hardline with iperf -s
, then on your laptop, while it is connected via WiFi, run iperf -c <your-server-ip-address>
. After a few seconds, you should get a readout of your connection bandwidth.
From what you describe you’ve ruled out the driver and hardware (I’m assuming different driver).
You can also check the power (region) settings
https://wiki.archlinux.org/title/Network_configuration/Wireless#Respecting_the_regulatory_domain
Sometimes misconfigured MTU can be a limiting factor as well, it should auto-negotiate, but can happen. Path MTU Discovery - Wikipedia
You can check if this differs between ethernet and wifi.
If you have control over the AP you can check if switching channels helps, routers should rotate channels to avoid collissions but this can vary a lot.
Same problem now.
upd: After updating the software, the problem was solved.
I’m getting 97.5 Mbits/sec from my WiFi connection, so I don’t think there is a general problem with WiFi connections under Fedora Linux.
# iperf -c 172.31.0.1
------------------------------------------------------------
Client connecting to 172.31.0.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 1] local 172.31.0.7 port 56914 connected with 172.31.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.36 sec 120 MBytes 97.5 Mbits/sec
Well, I fixed it, at least in my case. I hadn’t tried disabling IPV6 with the USB device, but only with the internal device. If I disable it with the USB device, Wifi is usable. Not real fast, but usable. I hope someone ca figure out the REAL reason why Wifi is slow, instead of just providing “fixes”.
The more detailed information, the easier it is to provide solutions instead of fixes. You don’t provide logs (the driver could be failing over, that happened to me with intel, for example), wp supplicant could be getting disconnects, etc. Without logs, it’s a guessing game.
The “Most Likely” issue is probably going to be the WiFi router you are connecting to. You can buy/install the latest and greatest WiFi adapter in your computer but if:
- the WiFi access-point/router does not support the newer standards, then you wasted your money
- If there are a lot of other WiFi sources/connections contending with yours, like an apartment building with a lot of WiFi users, then your speeds are going to suffer due to interference
- …
There a tons of things that can negatively affect WiFi performance. The only way to resolve would be to one-by-one investigate each potential cause and try to resolve it. As far as Linux is concerned, I have never had any WiFi issues related to speed when it comes to the kernel/OS outside of what I listed above