iwlwifi: AX203 Wifi Speed 96% Slower in FreeBSD vs Windows 11

Hi there,

I've got a new laptop, and I am dual booting FreeBSD 14.2 with Windows 11, but unfortunately I am having some trouble with the AX203 wifi card under FreeBSD.

On Windows 11, I get 532 Mbps download, and 480 Mbps upload. However, FreeBSD only gives me 17.60 Mbps download, and 4.23 Mbps upload. These speeds are taken from speedtest.net, in Firefox in both operating systems. I have also tested with net/py-speedtest-cli, which gives me similar results.

This is the relevant part of my /etc/rc.conf:

Code:
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA  inet 192.168.0.80 netmask 0xffffff00"
defaultrouter="192.168.0.1"

If I add the following line to /etc/rc.conf, I only get 4.57 Mbps up, and 2,68 Mbps down!

Code:
create_args_wlan0="country RO regdomain ETSI" 4.57 2.69

My /etc/wpa_supplicant.conf looks like this:

Code:
ctrl_interface=/var/run/wpa_supplicant
eapol_version=2
ap_scan=1
fast_reauth=1

network={
        ssid="mywifi"
        scan_ssid=1
        psk="mywifipassword"
        priority=5
}
network={
        priority=0
        key_mgmt=NONE
}

I've attached the relevant parts of the dmesg output. I am wondering if I need an updated firmware version, but I am not sure where to get iwlwifi-so-a0-hr-b0-83.ucode from.

Any help would be appreciated - I really don't understand what is happening! 🤯
 

Attachments

Thanks for your reply.

FreeBSD drivers currently do not support most really advanced 802.11 modes.

What do you mean by really advanced modes? My 10-year old laptop that uses the ath driver and has 109 Mbps down / 91 Mbps up on the same desk as the new laptop. Perhaps there are some configuration options for the iwlwifi driver that could fix my issue?

You could look into using net/wifibox for better speeds.

Thanks, but running a Linux VM just to get a decent wifi speed seems crazy to me. AFAIK the iwlwifi driver is ported from Linux. Could the issue be with the framework used to do this?
 
Perhaps there are some configuration options for the iwlwifi driver that could fix my issue?
[...]
AFAIK the iwlwifi driver is ported from Linux. Could the issue be with the framework used to do this?
iwlwifi(4):
While iwlwifi supports 802.11a/b/g/n/ac/ax modes, the compatibility code currently only supports 802.11a/b/g modes. Support for 802.11n/ac/ax is yet to come. 802.11ax and 6Ghz support are planned.
 
eseipi thank you - it’s good to know those modes are yet to come, but even g supports 54 Mbps, and I am getting much slower speeds sat directly in front of the router. It also doesn’t explain why my upload speed is around a quarter of my download speed.

Is this happening because the driver isn’t mature yet, or are there any settings I can try to see if I can improve this?

What I really need to know is if I should buy a USB wifi dongle while I wait for the driver to improve.
 
Thanks, but running a Linux VM just to get a decent wifi speed seems crazy to me. AFAIK the iwlwifi driver is ported from Linux. Could the issue be with the framework used to do this?

The issue is that entire layers of the faster wifi stacks are missing. It isn't just a driver (which we take from Linux), it is a huge framework that we cannot take from Linux.
 
What I really need to know is if I should buy a USB wifi dongle while I wait for the driver to improve.

That doesn't help. Same problem, entire framework layers for faster wifi are missing. No card or their drivers can do anything about it.

You should get a wifi client hardware piece, aka an ethernet to wifi bridge.
 
it’s good to know those modes are yet to come, but even g supports 54 Mbps, and I am getting much slower speeds sat directly in front of the router.
It's also worth mentioning that 54 Mbps is just the maximum link rate. For example, according to Wikipedia:
In practice, access points may not have an ideal implementation and may therefore not be able to achieve even 31.4 Mbit/s throughput with 1500 byte packets. 1500 bytes is the usual limit for packets on the Internet and therefore a relevant size to benchmark against. Smaller packets give even lower theoretical throughput, down to 3 Mbit/s using 54 Mbit/s rate and 64 byte packets. Also, the available throughput is shared between all stations transmitting, including the AP so both downstream and upstream traffic is limited to a shared total of 31.4 Mbit/s using 1500 byte packets and 54 Mbit/s rate.

FWIW, I get about the same 20 Mbps of throughput as you, but it's very rare when I find myself limited by this fact. I'm not saying that these speeds ought to be enough for anybody, of course.
 
The issue is that entire layers of the faster wifi stacks are missing. It isn't just a driver (which we take from Linux), it is a huge framework that we cannot take from Linux.

Thanks, I understand this now regarding Linux wifi drivers.

That doesn't help. Same problem, entire framework layers for faster wifi are missing. No card or their drivers can do anything about it.

I'm getting far higher speeds from the ath driver on my other laptop. Surely if I can find a USB wifi dongle with an Atheros chipset it will improve things? I'm not talking about the speeds that Windows is capable of, just something around 100 Mbps up and down as opposed to 20.
 
FWIW, I get about the same 20 Mbps of throughput as you, but it's very rare when I find myself limited by this fact. I'm not saying that these speeds ought to be enough for anybody, of course.

Yes you are right, but the new laptop takes a long time just to download updates and to render web pages. I wonder if the issue isn't about speed, but is about something else.
 
Thanks to everyone for their input on this. I have had time to have a play around with the different options.

I tried a couple of USB wifi dongles with Realtek chipsets, and had similar stability issues to the Intel one. I have come to the conclusion that I was just very lucky with the wifi card in my old laptop.

Regarding wifibox, it is a very clever solution, but it doesn't sit right with me running another OS in a VM just to get wifi working. If I do that, I may as well just run Alpine Linux or another Linux OS, and the whole point is that I want to run FreeBSD, not something Linux-based.

Throughout this, I have realised that I almost exclusively use my new laptop on the coffee table in my living room while I'm watching TV, and my coffee table has ethernet as I often test and repair hardware here. So it seems logical to invest in a USB to ethernet dongle for this machine.

I will test the iwlwifi driver from time to time to see how it is improving, and maybe one day I will also be able to use my laptop in the dining room! ;)
 
There's lots of work going on with this right now. It's worth perusing Feb, Mar and Apr archives of the freebsd-wireless list —here's one pertinent post, for example.

Yesterday I did a fresh 14.2 install on a Framework laptop, then built the upcoming 14.3 kernel (clone the source, git switch stable/14, make buildkernel/make installkernel) and managed to see over 200mbps on my 5ghz wifi network.

Next month 14.3 should drop, and it'll be there without any compilation faff. If you can't wait 4 or 5 weeks though, I found the 14.3 kernel build relatively simple and easy (and I would describe myself as 'a retired engineer' — given that I've spent the last 10 years in product roles :))
 
Thanks mopbsd - I'm looking forward to trying it again when 14.3 comes out! To be honest, although I orginally thought my issue was speed-related, it isn't because 17.60 Mbps/4.23 Mbps is perfectly usable. The problem is that the machine connects at a random speed, sometimes 0.03Mbps up and down, sometimes much higher, and intermittently stops working. Then the only thing I can do is keep rebooting until the speed is reasonable, and hope it doesn't disconnect for a while.

Thanks for the link to the post; it certainly looks promising! 😃
 
Back
Top