WiFi speed on Thinkpad

Hi, new to the forum.

Anyone working on advanced WiFi for FreeBSD? I know its more of a server OS but I love the stability and run it on a Thinkpad. Virtually everything (including KDE plasma) works like a charm, it can run Bhyve and watch videos from my Netflix subscription. (I run 3 different FreeBSD systems but the laptop is the one that uses wifi).

Just one thing, WiFi speed is hung up at 48Mb/s mode with ~25Mb/s real speed. while ethernet is easily hitting above 900Mb/s. would love to improve WiFi for coffee shop usage or quick file transfers for when its not hardwired. (I already tried moving the thinkpad close to the Access point and there is 0 improvement. iPhone hits about 600Mb/s on the same wifi and its a few years old)

Are there any tweaks to the driver to improve the speed or is modern WiFi not supported yet? Happy to do testing if anyone is working on WiFi support.

If this is already covered in another post I apologize, in searching I only found posts from several years ago on the topic.
 
As of now, only 802.11a/b/g/n is supported, but support for 802.11ac is on its way and 802.11ax will follow later. Be patient :)
Hmm I think 802.11n should hit ~300Mb/s and that would be fine for now. I’ll check the access point settings, maybe it’s set to a/ac/ax only. If there are any testers needed for the 802.11ac, I’d be happy to volunteer.
 
There is also wifi box. I didn't get it to work, but many others have. (Though others, like me failed). https://github.com/pgj/freebsd-wifibox
I was hoping to do this within FreeBSD… I have several other ways of obtaining fast internet including Linux or windows VM or external hardware as other options but the goal is to have a laptop that is comparable to my Mac in functionality and WiFi is an important part of that. Is there a way to use a Linux driver? I have Ubuntu subsystem installed for Widevine support….
 
Sort of, yeah, I *should* have said, to expand upon bsduck's post.....
You're quite right, and I should have mentioned that it is a program that does what you were suggesting.
 
Is there a way to use a Linux driver?
bsduck is correct. No. However interestingly the iwlwifi(4) is basically the Linux driver ontop of an abstraction layer. So in the future it may be more possible to integrate more Linux drivers faster. However it still won't be a user-facing thing like the old ndiswrapper stuff was for Windows network drivers.

You might be able to find something like the old PQI Air Pen (but supporting n+ speeds) to convert Wifi to ethernet. It actually runs a small embedded Linux. You could probably use a Pi for a similar use-case.

Or come to live in the UK. The wifi speed will no longer be the bottleneck compared to the crappy copper phone cables ;)
 
Hmm I think 802.11n should hit ~300Mb/s and that would be fine for now. I’ll check the access point settings, maybe it’s set to a/ac/ax only. If there are any testers needed for the 802.11ac, I’d be happy to volunteer.
Important part here is to make sure the wifi card is Intel-branded. Then it will work under FreeBSD pretty reliably. I have an Intel 8265 AC card, and it works great.

Keep in mind, however - FreeBSD only supports up to G speeds, no matter the card, even if you have AC/AX/BE - rated card.

Well, G-speeds means up to 54 MB/sec, Netflix/Youtube don't take up that much bandwidth. It would take bittorrent to really stress a G-card. Even Github doesn't allow you (or any other given person/device out there on the Internet) to download anything faster than at 3 MB/sec. That kind of speed still gets you a 1 GB iso file in about 10 minutes.
 
Hello !
With this configuration in FreeBSD 14.2-RELEASE I am getting around 2.5MBytes per sec without any "extra tweaks" in my HP-envy laptop. Is this what it should be expected or may I do something else (but keeping it without wifibox, and no linux VMs, etc) to achieve some more speed ?

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=0
ether 2c:6d:c1:cc:9f:ed
inet 192.168.10.117 netmask 0xffffff00 broadcast 192.168.10.255
groups: wlan
ssid TP-Link_D373 channel 1 (2412 MHz 11g) bssid 70:4f:57:67:d3:73
regdomain FCC country US authmode OPEN privacy OFF txpower 30 bmiss 7
scanvalid 60 protmode CTS wme roaming MANUAL
parent interface: iwlwifi0
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Thank you.
 
Hello !
With this configuration in FreeBSD 14.2-RELEASE I am getting around 2.5MBytes per sec without any "extra tweaks" in my HP-envy laptop. Is this what it should be expected or may I do something else (but keeping it without wifibox, and no linux VMs, etc) to achieve some more speed ?

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=0
ether 2c:6d:c1:cc:9f:ed
inet 192.168.10.117 netmask 0xffffff00 broadcast 192.168.10.255
groups: wlan
ssid TP-Link_D373 channel 1 (2412 MHz 11g) bssid 70:4f:57:67:d3:73
regdomain FCC country US authmode OPEN privacy OFF txpower 30 bmiss 7
scanvalid 60 protmode CTS wme roaming MANUAL
parent interface: iwlwifi0
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Thank you.
That’s roughly what I am getting maybe 9MB/s best case, but that’s still painfully slow (almost unusable) for a 6GB ISO download or 80 GB VM move. Ethernet works better on FreeBSD than any other platform but WiFi leaves much to be desired. I run VMs in Bhyve with a USB card if I need to download something to the laptop on WiFi other than small pkg updates.
 
That’s roughly what I am getting maybe 9MB/s best case, but that’s still painfully slow (almost unusable) for a 6GB ISO download or 80 GB VM move. Ethernet works better on FreeBSD than any other platform but WiFi leaves much to be desired. I run VMs in Bhyve with a USB card if I need to download something to the laptop on WiFi other than small pkg updates.
This may be difficult to accept, but it's reality: Even if you have hardware that is capable of doing speeds of up to a Gigabit per second, even if FreeBSD supports that, the bottleneck is still with moving the actual data over the air, as opposed to over the wire.

My home net has an AC wifi router, (1900 MB/sec) and yet moving a 4 GB file over wifi took about 1/2 an hour at about 5 MB/sec, which is just 9% of even G-speeds (54 MB/sec). If I had to figure out where to run the ethernet cable, how to set it up on both ends, from scratch, that would take a few hours easy, maybe even a whole day. Yeah, knowing ifconfig(8) and correct setup parameters helps, but there's still some typing, looking through weird corners of my physical residence, and reminding myself what the correct parameters are. May be a fun way to spend the day, that's your decision to make.

It's probably not impossible to tell the wifi card to send the data at a higher rate than what you're seeing. But that will take some in-depth knowledge of how Internet speed tests are run, and how to set up your wifi card. The goal would be to stress the wifi card's badwidth. It does take knowing whether the card's driver will even accept the setup commands issued under FreeBSD.
 
Don' forget
  • WiFiBox
  • Hardware wifi clients (bridges to ethernet). So you have ethernet on your laptop but not through your house
Thank cracauer@, I currently just use a Bhyve VM with an external card to get the higher rates but its not elegant. Was hoping to see if anyone had patched together a driver for AC/AX/BE but it sounds like thats still in the works.
 
This may be difficult to accept, but it's reality: Even if you have hardware that is capable of doing speeds of up to a Gigabit per second, even if FreeBSD supports that, the bottleneck is still with moving the actual data over the air, as opposed to over the wire.

My home net has an AC wifi router, (1900 MB/sec) and yet moving a 4 GB file over wifi took about 1/2 an hour at about 5 MB/sec, which is just 9% of even G-speeds (54 MB/sec). If I had to figure out where to run the ethernet cable, how to set it up on both ends, from scratch, that would take a few hours easy, maybe even a whole day. Yeah, knowing ifconfig(8) and correct setup parameters helps, but there's still some typing, looking through weird corners of my physical residence, and reminding myself what the correct parameters are. May be a fun way to spend the day, that's your decision to make.

It's probably not impossible to tell the wifi card to send the data at a higher rate than what you're seeing. But that will take some in-depth knowledge of how Internet speed tests are run, and how to set up your wifi card. The goal would be to stress the wifi card's badwidth. It does take knowing whether the card's driver will even accept the setup commands issued under FreeBSD.
I get pretty great wifi speeds on other devices (even this device in a Bhyve VM). The issue is that FreeBSD only supports up to wireless G (54Mb/s) currently (close to what i get with Freebsd on the laptop). Really wondering how the PS5 does it, maybe they pass through their WiFi card to the Gaming VM?
 
I've used wifibox for my Intel Wifi 6 AX card and got great performance with it. The setup was straightforward and the performance as good as I would expect with native drivers. I was able to pull up to 340 Mbps outbound which is more than my connection is rated for. I didn't bother testing internally, but if I need more than 340 Mbps, I plug in an Ethernet cable.
 
I've used wifibox for my Intel Wifi 6 AX card and got great performance with it. The setup was straightforward and the performance as good as I would expect with native drivers. I was able to pull up to 340 Mbps outbound which is more than my connection is rated for. I didn't bother testing internally, but if I need more than 340 Mbps, I plug in an Ethernet cable.
I'm sorry, but I have a hard time buying that... can you please post the full output of ifconfig on your AX card? And, can you please post a screenshot that shows how you got that 340 MB/s throughput?

If your Internet connection is rated at less than 340 MB/sec, no technically possible way to upload that fast, even with an AX card.
 
I get pretty great wifi speeds on other devices (even this device in a Bhyve VM). The issue is that FreeBSD only supports up to wireless G (54Mb/s) currently (close to what i get with Freebsd on the laptop). Really wondering how the PS5 does it, maybe they pass through their WiFi card to the Gaming VM?
One thing to consider: in a VM, you can set up a virtual Ethernet card. From there, it's a matter of telling the VM that you have a virtual cable from that virtual ethernet card to your real hardware.

One more thing to consider: in a VM, the overall performance is not nearly as good as on bare metal.

While I can't speak for PS5 (never owned one), I do know what it's like trying to run FreeBSD in a VM. My experience, even on capable hardware, led me to conclude that I get better results if I do a better job of researching and shopping for parts that are actually compatible with FreeBSD.
 
I'm sorry, but I have a hard time buying that... can you please post the full output of ifconfig on your AX card? And, can you please post a screenshot that shows how you got that 340 MB/s throughput?

If your Internet connection is rated at less than 340 MB/sec, no technically possible way to upload that fast, even with an AX card.

Might be compression.
 
I booted into FreeBSD on my laptop this am and I must have made some changes, I cannot start wifibox.

That said, I said 340 Mbps (Megabits per second, not 340 Mega Bytes per second, there is a difference of 8x). I still stand by that number because it is well below what I get on a wired connection using iperf to validate bandwidth. On a wired connection, I get 980 Mbps. If you subtract out bandwidth for ssh, that isn't bad.

This is my wifi card:
Code:
one10@pci0:111:0:0:    class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2723 subvendor=0x8086 subdevice=0x4080
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX200'
    class      = network

I did have wifibox working at some point, but I must have rerun my automated installer and overwrote my working config. This is what I have backed up for my wifibox:

Code:
cpus=1
memory=128M
#console=yes
console=no

# when this is passed, I get warning, passthru device could not be destroyed
# pci0:111:0
#passthru=0/111/0
passthru=111/0/0

priority=50
stop_wait_max=30

The reason I cannot start wifibox appears to be that the device is being used by the system:

Code:
WARNING: PPT device pci0:111:0 could not be destroyed.


But, I believe I updated my kernel conf to explicitly not provide support for the wireless card because performance natively is poor and instead I had it set up to support through the VM.

Regarding getting more bandwidth than I am allocated, I think Verizon will generally allow 10% more out to bandwidth sites, perhaps in an effort to look good. Aside from that, once I get this working again, I can setup iperf to see what bandwidth I can actually get.

EDIT:
I think I found the issue with my kernel conf. The kernel conf is 'compiled' dynamically and it looks like I'm importing GENERIC 2x, so the first nodevice is getting overwritten.

I rebuilt the kernel and modules, but am still getting the error above, pci0:111:0 could not be destroyed. I removed bluetooth support from the system since I believe bluetooth uses the same card, but I still am unable to start wifibox now.
 
I booted into FreeBSD on my laptop this am and I must have made some changes, I cannot start wifibox.

That said, I said 340 Mbps (Megabits per second, not 340 Mega Bytes per second, there is a difference of 8x). I still stand by that number because it is well below what I get on a wired connection using iperf to validate bandwidth. On a wired connection, I get 980 Mbps. If you subtract out bandwidth for ssh, that isn't bad.

This is my wifi card:
Code:
one10@pci0:111:0:0:    class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2723 subvendor=0x8086 subdevice=0x4080
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX200'
    class      = network

I did have wifibox working at some point, but I must have rerun my automated installer and overwrote my working config. This is what I have backed up for my wifibox:

Code:
cpus=1
memory=128M
#console=yes
console=no

# when this is passed, I get warning, passthru device could not be destroyed
# pci0:111:0
#passthru=0/111/0
passthru=111/0/0

priority=50
stop_wait_max=30

The reason I cannot start wifibox appears to be that the device is being used by the system:

Code:
WARNING: PPT device pci0:111:0 could not be destroyed.


But, I believe I updated my kernel conf to explicitly not provide support for the wireless card because performance natively is poor and instead I had it set up to support through the VM.

Regarding getting more bandwidth than I am allocated, I think Verizon will generally allow 10% more out to bandwidth sites, perhaps in an effort to look good. Aside from that, once I get this working again, I can setup iperf to see what bandwidth I can actually get.

EDIT:
I think I found the issue with my kernel conf. The kernel conf is 'compiled' dynamically and it looks like I'm importing GENERIC 2x, so the first nodevice is getting overwritten.

I rebuilt the kernel and modules, but am still getting the error above, pci0:111:0 could not be destroyed. I removed bluetooth support from the system since I believe bluetooth uses the same card, but I still am unable to start wifibox now.
So, what happens when you run ifconfig(8) on your card?

It will still show that it's only got G-speeds.

I have an AC card, it works fine even for YT. It shows up correctly with pciconf -lv, but it still shows up as a G card with ifconfig:
Code:
$ pciconf -lv | grep -B4 net
iwm0@pci0:5:0:0:        class=0x028000 rev=0x78 hdr=0x00 vendor=0x8086 device=0x24fd subvendor=0x8086 subdevice=0x1010
    vendor     = 'Intel Corporation'
    device     = 'Wireless 8265 / 8275'
    class      = network
$ ifconfig wlan0 | grep media
        media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g

This is to be expected...
 
ifconfig does not show the card, as I said, I removed wireless support for it. It should be only supported through the Bhyve guest. I had it working a month or so ago in this setup.

Secondly, I should be passing that device directly through to Bhyve via 0/111/0.
 
ifconfig does not show the card, as I said, I removed wireless support for it. It should be only supported through the Bhyve guest. I had it working a month or so ago in this setup.

Secondly, I should be passing that device directly through to Bhyve via 0/111/0.
There was no need to remove wireless support for the card, just live with G-speeds that FreeBSD reports. If it's Intel-branded (and yours is), you're good to go without all that messing around.
 
The wifibox worked well, I seriously got 340 Mbps on it. I need to go back to whatever I had previously to get it running again.
 
Back
Top