Stuck in boot loop after attempt to load iwm driver

Hello guys and thank you for the cool system! Arch user here, trying out something new.

ThinkPad T470s, fresh install of FreeBSD 15-RELEASE.
Installation went smooth, did some initial setup with no issues.
Then I tried get the WiFi working and now I'm stuck in reboot loop.
Wifi module is Intel 8260.

I was following the handbook chapter 7, on network setup.
In the output of pciconf -l | grep -A1 -B3 network
I saw that my wifi card identifier was prefixed with none@ instead of a driver name.

I figured I need to load the iwm driver - it was installed, just not loaded, it seemed.
From reading man iwm I saw that I need to add few lines in loader.conf:
Code:
if_iwm_load="YES"
iwm3160fw_load="YES"
iwm3168fw_load="YES"
iwm7260fw_load="YES"
iwm7265fw_load="YES"
iwm7265Dfw_load="YES"
iwm8000Cfw_load="YES"
iwm8265fw_load="YES"
iwm9000fw_load="YES"
iwm9260fw_load="YES"

And somehow I thought I'm smarter than documentation, and added only these 2 lines.
Code:
if_iwm_load="YES"
iwm8265fw_load="YES"
You know, why would I list all these model numbers if I know mine and just take the closest approximation, right 😅?


Then rebooted. Upon reboot, the system greets me with panic:

photo_2026-03-14_00-23-36.jpg


Then I quickly learn about this amazing thing called loader prompt, dig through the forum and see someone with similar issue, and people recommending him/her to show loader options and unset broken values. So, here's couple more "screenshots".

First of all - verifying contents of loader.conf:
photo_2026-03-14_00-23-36 (3).jpg


Then, looking at all the iwm-related values from show
photo_2026-03-14_00-23-36 (2).jpg


From this point, I carefully unset every iwm-related value, including if_iwm_load (oh man, typing everything by hand!), triple-check everything with show, then hit boot.

And, well, it didn't help. There's still a panic. Maybe there are more values that iwm adds to loader config that I'm not aware of?

Also: I still got my live usb. Can't I just boot from it and edit broken loader.conf from there? Didn't see anyone mentioning that, maybe for a good reason.
 
I still got my live usb. Can't I just boot from it and edit broken loader.conf from there?
Sure, just boot the USB, at the welcome dialog enter "Live System", mount the file system, edit /<mount_point>/boot/loader.conf.

Assuming menu guided installation:

Example ZFS, for your case:
Code:
# mkdir /tmp/zfs
# zpool import -R /tmp/zfs zroot
# zfs mount zroot/ROOT/default

Example UFS:
Code:
 # gpart show -p
Search for "freebsd-ufs" and its provider name (e.g. ada0p3) .

Code:
# mount /dev/ada0p3  /mnt
Modify "ada0p3" accordingly to real provider name.
 
enter "Live System", mount the file system, edit /<mount_point>/boot/loader.conf
I see, I supposed it's done this way but didn't know how exactly to mount ZFS, your instructions saved me a lot of docs-digging. Thanks a ton! I edited the file, now the system boots normally.

Afterwards, I tried adding loader.conf entries again, this time all the ones listed in iwm manpage:
Code:
if_iwm_load="YES"
iwm3160fw_load="YES"
iwm3168fw_load="YES"
iwm7260fw_load="YES"
iwm7265fw_load="YES"
iwm7265Dfw_load="YES"
iwm8000Cfw_load="YES"
iwm8265fw_load="YES"
iwm9000fw_load="YES"
iwm9260fw_load="YES"

Rebooted - and get the panic again with the same "page fault" error as in OP. Did the recovery via live usb again.

Could this be a bug?

Also, this loader config was only one of two options suggested by manpage. The other one was:
Code:
To compile this driver into the kernel, include the following lines in
your kernel configuration file:

           device iwm
           device pci
           device wlan
           device firmware
Maybe that will work out better for my system, but it raises questions for me:
- where is that kernel config file?
- should I then somehow re-compile my kernel? I never done this before, need to learn that first.

EDIT: Yep, chapter 10 of handbook answered these questions. Not doing that to simply make wifi work


As for this:
As for the wifi card, what does &nbsp;pciconf -vl | grep -B3 network show exactly?
There are 2 entries, one for Ethernet (which is working fine), another one for wifi adapter, reading:
Code:
em0@pci0:0:31:6:    class=0x020000 rev=0x21 hdr=0x00 vendor=0x8086 device=0x156f subvendor=0x17aa subdevice=0x224b
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection I219-LM'
    class      = network
--
none3@pci0:58:0:0:    class=0x028000 rev=0x3a hdr=0x00 vendor=0x8086 device=0x24f3 subvendor=0x8086 subdevice=0x0010
    vendor     = 'Intel Corporation'
    device     = 'Wireless 8260'
    class      = network

I'm assuming that Wireless 8260 from here and Intel Dual Band Wireless AC 8260 from the iwm manpage refer to the same wifi adapter model.
I noticed that supported devices list and iwm*_load bootloader entries are not exact 1-1 match model-wise. Probably some drivers are re-used across different models.
 
I don't see a firmware for Intel 8260 in that list.

Your module should be using the iwl driver I believe.

Related post:

I always thought this bit was ambiguous:
To compile this driver into the kernel, include the following lines in your kernel configuration file:
No you do not need to recompile or worry about these additional modules. They are linked and will be automatically loaded.

This Wiki has information on the iwl to iwlwifi tranformation.

Once again I see nothing related to 8260 under Supported Hardware at very bottom.
 
Phishfry thank you for pointing me at this thread (how do I attach it nicely with preview like you did?)
Thread freebsd-15-doesnt-recognize-intel-wireless-ac-8260-card.100597

In there, there is a comment by paul_j spotting this bug.
In /boot/firmware, there is a bunch of iwm*fw files, and one misnamed file: iwm8000C. Which makes this record in /boot/loader.conf:
Code:
iwm8000Cfw_load="YES"
to point at non-existing file.

Since the bugfix has been already added in main and stable/15 branches, I did the same thing manually: renamed the file to iwm8000Cfw and updated respective entry in /boot/defaults/loader.conf:
Code:
iwm8000Cfw_type="firmware"

After that, system booted and driver attached to the device. I configured the wifi by handbook, and it worked.

Out of curiosity, I tried using iwlwifi driver too. For that, I did the following:
  1. removed all iwm entries from /boot/loader.conf
  2. added devmatch_blocklist="if_iwm" into loader.conf to prevent iwm from loading (credit goes to T-Daemon)
  3. changed these 2 lines in /etc/rc.conf following this section (Thank you again Phishfry for sharing):
Code:
# before
wlans_iwm0="wlan0"
ifconfig_wlan0="WPA DHCP"

# after
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"

Reboot successful, wifi works. Thank you all for help! How do I mark this as "Solved"?

It seems that 8260 works with both iwm and iwlwifi drivers. I measured speeds using py-speedtest-cli, and for both it shows ~20Mbit/s for either 2.4G or 5G band. I know that 802.22ac is still in development and mine probably works through 802.22n (WiFi 4), but even that standard has rate up to 600Mbit/s. I'm on 1Gbit router and I can achive about that speed on my Arch laptop. Are there ways to improve the wifi speed somehow? Configuration tips, forum threads, docs, etc?

Have you tried running fwget to check if anything is available?
It returns:
Code:
Needed firmware packages: 'gpu-firmware-intel-kmod-skylake wifi-firmware-iwlwifi-kmod-8000'
The most recent versions of packages are already installed

Seems like I have all I need installed, only needs configuration.
 
Back
Top