[GUIDE] Successful Wi-Fi 7 (802.11be) on Framework 13 AMD with Qualcomm QCNCM865 and Arch Linux

This is version 6.9.11 on Fedora 40, not 6.11.

1 Like

I edited it before you replied

If you want to test 6.11 on fedora, there are pre-release builds available in the rawhide repo.

Check you have enough space in your /boot filesystem, then something like this should get you the new kernel:

dnf --setopt=installonly_limit=4 --enablerepo rawhide up kernel

(assuming you haven’t changed the default installonly_limit config from the default of 3, doing this so you don’t lose one of your older kernels)

Once you’re done testing with the pre-release kernel you can boot into a “production” version and then manually dnf rm the set of kernel* packages from the rawhide version.

1 Like

Thanks!

Would I have to do anything to return back to normal? Like back to only 3 previous kernels again as well as not use rawhide repo? Or is the dnf command only a one-time thing?

So next time I type:
dnf --setopt=installonly_limit=3 update

Would that just set it back to previous 3 kernels AND go back to updating to mainline kernel version that’s available (not the one used by rawhide)?

Also, I see kernel-6.10.1-200.fc40 available, but not 6.11 (for fc40).

UPDATE: I tried to use the command you posted on a test machine, but got this:
Error: Unknown repo: ‘rawhide’

I won’t try it on my FW16 until I know how to revert back to default.

Sorry, I forgot to mention: To be able to install from rawhide (also known, currently, as fc41), you need to first install the fedora-repos-rawhide package. I don’t remember at the moment if this also enables rawhide for every subsequent dnf operation, so after installing it remember to check /etc/yum.repos.d/fedora-rawhide.repo and have enabled=0 in there.

Once that’s done, the --enablerepo rawhide will enable it just for that dnf command.

dnf --setopt=installonly_limit=3 update

Would that just set it back to previous 3 kernels AND go back to updating to mainline kernel version that’s available (not the one used by rawhide)?

--setopt, like --enablerepo, only affects that one dnf invocation. So to get back to normal after you’re done testing, you first need to reboot into one of the production kernels (currently 6.9.11-200.fc40 is the latest on my machine) because you can’t/shouldn’t remove the currently running kernel.

Once you’ve rebooted, to see versions currently installed, use dnf list installed; for example on my machine:

$ dnf list installed 'kernel*'
Installed Packages
kernel.x86_64                                      6.9.8-200.fc40                          @updates-testing
kernel.x86_64                                      6.9.9-200.fc40                          @updates-testing
kernel.x86_64                                      6.9.10-200.fc40                         @updates-testing
kernel.x86_64                                      6.9.11-200.fc40                         @updates-testing
kernel-core.x86_64                                 6.9.8-200.fc40                          @updates-testing
kernel-core.x86_64                                 6.9.9-200.fc40                          @updates-testing
kernel-core.x86_64                                 6.9.10-200.fc40                         @updates-testing
kernel-core.x86_64                                 6.9.11-200.fc40                         @updates-testing
kernel-headers.x86_64                              6.9.4-200.fc40                          @updates-testing
kernel-modules.x86_64                              6.9.8-200.fc40                          @updates-testing
kernel-modules.x86_64                              6.9.9-200.fc40                          @updates-testing
kernel-modules.x86_64                              6.9.10-200.fc40                         @updates-testing
kernel-modules.x86_64                              6.9.11-200.fc40                         @updates-testing
kernel-modules-core.x86_64                         6.9.8-200.fc40                          @updates-testing
kernel-modules-core.x86_64                         6.9.9-200.fc40                          @updates-testing
kernel-modules-core.x86_64                         6.9.10-200.fc40                         @updates-testing
kernel-modules-core.x86_64                         6.9.11-200.fc40                         @updates-testing
kernel-modules-extra.x86_64                        6.9.8-200.fc40                          @updates-testing
kernel-modules-extra.x86_64                        6.9.9-200.fc40                          @updates-testing
kernel-modules-extra.x86_64                        6.9.10-200.fc40                         @updates-testing
kernel-modules-extra.x86_64                        6.9.11-200.fc40                         @updates-testing
kernel-rpm-macros.noarch                           205-23.fc40                             @fedora         
kernel-srpm-macros.noarch                          1.0-23.fc40                             @fedora         
kernel-tools.x86_64                                6.9.11-200.fc40                         @updates-testing
kernel-tools-libs.x86_64                           6.9.11-200.fc40                         @updates-testing

The “kernel” is made up of the kernel, kernel-core, kernel-modules, kernel-modules-core and kernel-modules-extra (sub) packages, which for installation/upgrade are pulled in via the dnf up kernel command via dependencies. So to remove a specific version:

(using shell argument expansion to save on typing, and a production version as an example from my machine, substitute the rawhide version instead of 6.9.8-200.fc40 here):

$ sudo dnf rm kernel{,-core,-modules,-modules-core,-modules-extra}-6.9.8-200.fc40
Place your right index finger on the fingerprint reader
Dependencies resolved.
===========================================================================================================
 Package                        Architecture     Version                  Repository                  Size
===========================================================================================================
Removing:
 kernel                         x86_64           6.9.8-200.fc40           @updates-testing             0  
 kernel-core                    x86_64           6.9.8-200.fc40           @updates-testing            69 M
 kernel-modules                 x86_64           6.9.8-200.fc40           @updates-testing            61 M
 kernel-modules-core            x86_64           6.9.8-200.fc40           @updates-testing            36 M
 kernel-modules-extra           x86_64           6.9.8-200.fc40           @updates-testing           2.6 M

Transaction Summary
===========================================================================================================
Remove  5 Packages

Freed space: 169 M
Is this ok [y/N]: 

One last thing, I don’t remember atm whether rawhide kernels are signed for secure boot. If you get a secure boot error, you’ll need to temporarily disable secure boot enforcemeng in the BIOS.

Thanks. Before you posted, I was doing trial and error on my test laptop. Let me know if this works:

Install rawhide repo

sudo dnf install fedora-repos-rawhide

enable 4 previous kernels and upgrade kernel from rawhide

sudo dnf --setopt=installonly_limit=4 --enablerepo rawhide up kernel

To undo, boot into mainline kernel first.

sudo dnf remove kernel-core-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-devel-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41

sudo dnf remove fedora-repos-rawhide

sudo dnf --setopt=installonly_limit=3 update

Install rawhide repo

sudo dnf install fedora-repos-rawhide

then ensure enabled=0 for the [rawhide] entry in /etc/yum.repos.d/fedora-rawhide.repo

enable 4 previous kernels and upgrade kernel from rawhide

sudo dnf --setopt=installonly_limit=4 --enablerepo rawhide up kernel

To undo, boot into mainline kernel first.

sudo dnf remove kernel-core-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-devel-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41

Not exactly; you’d want to:

sudo dnf rm kernel-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-core-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-modules-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-modules-core-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41 kernel-modules-extra-6.11.0-0.rc0.20240726git1722389b0d86.14.fc41

(double check the actual versions when you run this, rawhide moves fast)

At this point you’re done. The next steps are optional. If you’ve set enabled=0 for rawhide it’s turned off unless you explicitly ask for it in a future dnf command with --enablerepo rawhide, so removing the repo itself is up to you.

Because the kernel is an install-only package, you don’t need to update again - you’re already back to running at the latest Fedora release kernel by this point.

6.11 still misbehaving for me. :frowning:

Yes 6.11-rc1 don’t have the patch yet. maybe in rc2

@GreyXor what about Bluetooth audio on the latest kernel with the patch? Can it connect to wireless headset and play the audio?

I don’t think that the ath12k patch change anything about audio bluetooth, but will try later

Aw, crap, lol.

Oh well. It was at least educational!

1 Like

It’s also worth noting that these cards have (finally) began to show up on eBay as individual parts - Qualcomm WiFi 7 QCNCM865 M.2 NGFF Card Tri-Band 5800Mbps WiFi Bluetooth Adapter | eBay

60 bucks jesus christ, damn shame the be200 doesn’t work.

Right? At this point, you’re better off buying the MSI one for $50 on Amazon and save the carrier board for future use. It’s cheaper, and you get an extra, and it’s a full retail package.

I’m not sure if it’s due to my kernel shenanigans, but my other Fedora 40 PC showed I had kernel updates and is now on 6.9.12. However my FW16 is not giving me any kernel updates at all. I’m still on 6.9.11.

Did I some how break dnf and updates?

When I use the Gnome Software app, I was able to get updates, including kernel 6.9.12.

EDIT: Never mind, I used sudo dnf update --refresh and that fixed it. Weird, I don’t normally need to do this.

Some mirrors just refres the cache faster so tou just had a cache or mirror that jadn’t updated its data.

I dont think anything is broken but you can use the --refresh option if you want to be sure be on latest. Normally not needed but in these when another computer pulls a uodate and other not, the refresh fixes it (usually)

Correct. You could have also issued “dnf clean all” which will wipe your local cache and cause it to “refresh”. dnf/yum by default, will not sync upstream if you run it within a certain time frame to avoid excessive calls to upstream repos.

1 Like

I recently installed the Qualcomm QCNCM865. Here are my observations:

On Linux:

  • Bluetooth Audio: The connection can be unstable, but it seems more reliable when using AAC settings.
  • System Stability: The device crashes during heavy uploads not downloads, though it handles large downloads without issues. I’m running kernel 6.11 R1 (rawhide), and the problems persist.

On Windows:

  • Initial Setup: Bluetooth and internet didn’t work out of the box. I had to manually download and install the drivers through Device Manager by selecting them.
  • Performance: After installing the drivers from the Microsoft repository, everything seems to be working fine. You can find the drivers here: Microsoft Update Catalog - FASTCONNECT 7800.
1 Like

It’s noted above that on Linux the patch hasn’t landed in the kernel (yet), possibly coming in 6.11 RC2 (looking at the version number you mention, you’re likely on RC1). Good to know it works on Windows though!