Iwlwifi Direct firmware load does not work for BE200 WiFi 7 card. System loads older version and does not try the newest already on the system

Hey all just picked a new Lenovo ThinkPad x1 Gen 12 with a BE200 WiFi 7 NIC and running into a new to me issue. US based and noticed it was not connecting to my 6GHz WiFi and keeps joining 5Ghz only. While troubleshooting I noticed the following in dmesg below. It looks like it’s not finding later firmware versions that could maybe help fix my issue. I started doing some research and it looks like the firmware does not exist in /lib/firmware.

Intel Support

Intel Support 2

Git Firmware

-86, -90, -92 seem to be available but the ones that it wants -89, -88, -87 do not seem to exist either on the referenced links and searching dnf for firmware. How do I move to a later version to see if I can get my wifi functioning correctly?

[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: enabling device (0000 -> 0002)
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: PCI dev 272b/00f0, rev=0x472, rfid=0x112200
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-89.ucode failed with error -2
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-88.ucode failed with error -2
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-87.ucode failed with error -2
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.4.125
[Thu Jul 25 12:38:01 2024] iwlwifi 0000:09:00.0: loaded firmware version 86.fb5c9aeb.0 gl-c0-fm-c0-86.ucode op_mode iwlmvm
1 Like

-83, -86, and -90 are the ones I see in the current firmware of the latest RPM in the repos and the latest Fedora 40 koji build. This would be a good thing to post a bug issue so that it can get on the radar of hardware that needs support, if it’s not already there.

Thanks I will search the bugs and if not there post it.

@vwbusguy - Do you know component I should post it under? I do not see wireless driver, or iwlwifi as component options, which I’m assuming it should be associated with seeing that’s what’s asking for versions which do not present in the current firmware.

It should be linux-firmware

1 Like

I noted that the -86 version was loaded properly. The messages for -87, -88, and -89 are messages and not errors.

The suggestion I would make would be to try and force loading of the -90 or -92 versions.
It seems the kernel attempts loading beginning at the 89 version and works down from there but never tries the 92 or 90 versions. The support you expect probably is in one of the versions it skips.

I don’t have suggestions on how to manage firmware loading, though I have some ideas about the drivers themselves.

right 86 loaded fine, wanting to know how to load the later version which is available is what I’m looking to do, to see if I get improvements on stability and 6GHz connectivity.

I am changing the title to reflect that you need to load a newer version.
Since 89, 88, & 87 are not available anywhere it seems appropriate to try either the 90 or 92 versions but the system skips those.

The subject seems to be asking how to load them when it does not try it automatically.

The bug report would be good to get the kernel to look for the newer versions instead of starting at the missing 89 version.

Thank you for the assistance and clarity on the title. I’ve opened a bug report.

Response back from the bug report:

As your logs show, it is successfully loading firmware 86. kernel versions have
a minimum and maximum supported API version. In terms of upstream development,
kernel 6.9.x is rather old and rawhide is on the 6.11 merge window. Stable
fedora is starting the 6.10.x test week next week. For 6.11, 90 is the minimum
supported API. Which is a long way of saying that all of this is working as
intended.

Looks like I will need to wait it out to see further possible improvements in my BE200 WiFi experience.

At least you received a quick response. It does not answer why the system does not attempt to load the newer 90 or 92 versions, but does imply that might not be supported in the 6.9 kernel.

I guess you will have to accept the wifi 6 performance right now and watch what happens going forward.

Agreed that’s how I took it too. It’s “good” enough because it found a version available, and improvements will need to wait until later.

1 Like

If rawhide is on 6.11, then you can compile it for Fedora 40. I’ve had to do stuff like this in the past for some 3rd party hardware driver fixes (and thankfully not recently).

Just keep in mind that compiling and running a Rawhide kernel source for Fedora 40 means you’ll be running a kernel with very much less testing. It’s probably low risk, but it’s not no risk.

All issues are resolved. Upgraded to 6.10 Kernel and it’s picking up the correct later version of firmware that it was looking for and has solved all performance issues.

3 Likes