Wifi Speed

Good morning!
After some frustration with my Lenovo X390, and then life getting in the way I parked my FreeBSD activities. Anyway, I am now back with FreeBSD on a Lenovo X270. Everything works well, with one exception: Wifi speed. The wifi card is an Intel 8260 card, and when I installed FreeBSD, I set it up with the iwm driver. This gives me download speeds of about 20Mbps, and upload speeds of about 10Mbps. On the X390, I had similar speeds, but when I reinstated the linux nvme drive in that laptop, the download speeds are 300Mbps, and upload 50Mbps - this is the line speed to/from the house!

Since there has been much talk about improving the wifi speeds in FreeBSD, my thoughts were that I hadn't got the wifi configured correctly. Further investigation seemed to back this up - ff my understanding is correct, development of the wifi drivers for intel cards is being done with the iwlwifi drivers, not iwm. Following the wiki, I have switched over to the iwlwifi drivers, but if anything the speeds are worse.
This is my /boot/loader.conf:
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
zfs_load="YES"
devmatch_blocklist="if_iwm"
...and this is my rc.conf:
hostname="andor"
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
create_args_wlan0="wlanmode sta country GB regdomain ETSI"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
local_unbound_enable="YES"
powerd_enable="YES"
moused_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
seatd_enable="YES"
keymap="uk.capsctrl.kbd"
kld_list="i915kms"
kld_list="${kld_list} if_iwlwifi"
ifconfig_em0="DHCP"
I am using 15.0-RELEASE-p5, and everything is up to date.

Do any of you have tips as to what I can do to improve the wifi speed?

Longer term I intend to switch the X390 over to FreeBSD, but I want to use the X270 to iron out all my configuration issues first!

Thanks for reading/commenting :)
 
Just to add a couple more data points
  • With OpenBSD on the same hardware, on the same home network, it achieves 110Mbps down and 50Mbps up. Mode reports as 11n.
  • I set compat.linuxkpi.iwlwifi_11n_disable=0 in /boot/loader, and now get 30Mbps down and 5Mbps up. Connection mode is 11na.
If I can do more with the FreeBSD setup, I would love to hear your comments.
Thanks.
 
I don't have this chipset, but it seems strange that if your chipset is supported by iwlwifi, if_iwm is picking it up.

Have you installed the proper firmware for your chipset?
If you are using pkg-base, install wifi-firmware-iwlwifi-kmod
If not, use fwget(8)
The firmware should set the loader variables for you in its own loader file, so you don't need to set it in /boot/loader
 
I am having another go at this, and have now enabled 80211ac:
compat.linuxkpi.iwlwifi_disable_11ac="0"
I am not sure where the firmware's own loader file should be found?
This has now yielded the following connection:
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=0
ether f8:94:c2:8f:f3:f9
inet 10.1.1.124 netmask 0xffffff00 broadcast 10.1.1.255
inet6 fe80::fa94:c2ff:fe8f:f3f9%wlan0 prefixlen 64 scopeid 0x3
inet6 2001:8b0:dea0:f3c8:fa94:c2ff:fe8f:f3f9 prefixlen 64 autoconf pltime 14400 vltime 86400
groups: wlan
ssid rohan-5G channel 48 (5240 MHz 11a vht/80-) bssid e8:9f:80:1a:07:9a
regdomain ETSI country GB authmode WPA2/802.11i privacy ON
deftxkey UNDEF AES-CCM 3:128-bit AES-CCM ucast:128-bit txpower 23
bmiss 7 mcastrate 6 mgmtrate 6 scanvalid 60 ampdutx -ampdurx
ampdulimit 64k ampdudensity 4 -amsdutx amsdurx shortgi -ldpctx ldpcrx
-uapsd vht vht40 vht80 -vht160 -vht80p80 wme roaming MANUAL
parent interface: iwlwifi0
media: IEEE 802.11 Wireless Ethernet VHT mode 11ac
status: associated
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
However, I am still getting about 30 Mb/s down, and 5 Mb/s up.
I have updated to FreeBSD-15.1-p3:
FreeBSD andor 15.1-RELEASE-p3 FreeBSD 15.1-RELEASE-p3 releng/15.1-n283611-88e7371d9dc2 GENERIC amd64
and I am using pkg and the latest packages (not quarterly).
The wifi firmware installed is:
wifi-firmware-iwlwifi-kmod-20260410
I am now getting the following firmware failure on occasions:
Sep 9 14:07:36 andor kernel: iwlwifi0: Microcode SW error detected. Restarting 0x2000000.
Sep 9 14:07:36 andor kernel: iwlwifi0: Start IWL Error Log Dump:
Sep 9 14:07:36 andor kernel: iwlwifi0: Transport status: 0x0000014A, valid: 6
Sep 9 14:07:36 andor kernel: iwlwifi0: Loaded firmware version: 36.c8e8e144.0 8000C-36.ucode
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x000022CE | ADVANCED_SYSASSERT
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x059002A0 | trm_hw_status0
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | trm_hw_status1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0002440C | branchlink2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00039AA2 | interruptlink1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | interruptlink2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0000012C | data1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x03830000 | data2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xDEADBEEF | data3
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x5B008BF1 | beacon time
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x51531BE2 | tsf low
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x000002E2 | tsf hi
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | time gp1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0F0D6233 | time gp2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000001 | uCode revision type
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000024 | uCode version major
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC8E8E144 | uCode version minor
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000201 | hw version
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00C89001 | board version
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x04B6001C | hcmd
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xA6F93802 | isr0
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x000D0000 | isr1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00001802 | isr2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x40417DCD | isr3
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | isr4
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x04B5001C | last cmd Id
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | wait_event
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00004288 | l2p_control
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00018020 | l2p_duration
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x000003BF | l2p_mhvalid
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x000000EF | l2p_addr_match
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0000000D | lmpm_pmg_sel
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x26050711 | timestamp
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00005868 | flow_handler
Sep 9 14:07:36 andor kernel: iwlwifi0: Start IWL Error Log Dump:
Sep 9 14:07:36 andor kernel: iwlwifi0: Transport status: 0x0000014A, valid: 7
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000070 | NMI_INTERRUPT_LMAC_FATAL
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | umac branchlink1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC0086B3C | umac branchlink2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC0083D08 | umac interruptlink1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC0083D08 | umac interruptlink2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000800 | umac data1
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC0083D08 | umac data2
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xDEADBEEF | umac data3
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000024 | umac major
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC8E8E144 | umac minor
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC088628C | frame pointer
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC088628C | stack pointer
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00540118 | last host cmd
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000000 | isr status reg
Sep 9 14:07:36 andor kernel: iwlwifi0: IML/ROM dump:
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00003836 | IML/ROM error/state
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x00000003 | IML/ROM data1
Sep 9 14:07:36 andor kernel: iwlwifi0: Fseq Registers:
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x27AE0785 | FSEQ_ERROR_CODE
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xB4A6D814 | FSEQ_TOP_INIT_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x89B28006 | FSEQ_CNVIO_INIT_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0000A056 | FSEQ_OTP_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x5F22041B | FSEQ_TOP_CONTENT_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xC7B8A33B | FSEQ_ALIVE_TOKEN
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xEC8C62A1 | FSEQ_CNVI_ID
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x788CC2A7 | FSEQ_CNVR_ID
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x03000000 | CNVI_AUX_MISC_CHIP
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0BADCAFE | CNVR_AUX_MISC_CHIP
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0BADCAFE | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x0BADCAFE | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x8672CA1D | FSEQ_PREV_CNVIO_INIT_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x352C1FEF | FSEQ_WIFI_FSEQ_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0x8E24E040 | FSEQ_BT_FSEQ_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: 0xFC375A4A | FSEQ_CLASS_TP_VERSION
Sep 9 14:07:36 andor kernel: iwlwifi0: Collecting data: trigger 2 fired.
Sep 9 14:07:36 andor kernel: iwlwifi0: Device error - reprobe!
I am not sure of the reason for this - it is seemingly random, but didn't happen when I was on an earlier system/firmware version.

Any ideas?

Thanks for reading/commenting :) !
 
Back
Top