[RESPONDED] AMD RZ616 wifi card doesn't work with 6GHz on kernel 6.7

At least it doesn’t for me. After some digging into the kernel code, it looks like a new mechanism (CLC, country location control) was implemented in the kernel driver for 6.7 (driver’s name is mt7921e), but it didn’t work at all for me.

Anyway, the solution on my system was to disable CLC like this:

echo "options mt7921_common disable_clc=1" | sudo tee /etc/modprobe.d/mt7921-kernel67-fix.conf

There are a ton of patches on the linux-wireless mailing list regarding the mt7921 and this mechanism, so maybe this will be fixed in later releases.

9 Likes

Appreciate you sharing your workaround @Kelvie , Thank you. :slight_smile:

Thank you! 6GHz hasn’t worked for weeks now on my laptop and I couldn’t find anything about what changed. That solution worked.

Same issue, but this fix didn’t work for me. I’m not sure how long wifi 6 hasn’t been working.
I have 2 kernels installed (stock and custom). Tried booting into each, but to no avail.
When I look at the band options in iw and nmcli, I only have a(5g) and b/g (2.4)
nmcli and iw detects my wifi 6 network, but reports it to be on channel 0. In my router config, I have set the wifi channel to 165, but it still reports as 0. I’ve tried renaming/separating my wifi 6 network in router settings, tried to connect using iw and nmcli in terminal and both fail with a network not found error.

I’ve tried for weeks searching for a solution to this, but the results are very limited. I would really appreciate some help with this.

Wifi 6 works perfect in windows btw.

I figured it out.
Even though you can set your region with
sudo iw reg set US
and it appears to be set when I checked. I found that in
/sys/module/cfg80211/parameters/ieee80211_regdom
it was set to world (00)
Using the aforementioned
echo "options mt7921_common disable_clc=1" | sudo tee /etc/modprobe.d/mt7921-kernel67-fix.conf
Didn’t seem to do anything to help
Using
echo "options cfg80211 ieee80211_regdom=US" | sudo tee /etc/modprobe.d/mt7921-kernel67-fix.conf
and then reboot
Did the trick
Not sure why the region isn’t getting set correctly, but this has survived several reboots.
Hope this helps someone else.

4 Likes

Can confirm this worked with my 7640U running PopOS today. Thanks man!

Thank you!

This solved my issue for my AMD WiFi card not connecting to my 6ghz network on Kubuntu.

Whose (as in which piece of software) responsibility is it to set regdom correctly? I think a bug needs to be raised somewhere.

I agree, but I cannot seem to find out as to what is responsible for setting regdom.
Looking at kernel code net/wireless/reg.c, I found this note:

/*
 * Central wireless core regulatory domains, we only need two,
 * the current one and a world regulatory domain in case we have no
 * information to give us an alpha2.
 * (protected by RTNL, can be read under RCU)
 */

So, I started thinking this may be an OS issue. I installed Fedora-Kinoite-ostree-x86_64-41-1.4 which is on kerne 6.11. On first boot, I connected to my WiFi and checked regdom. I was already set to US.

So, I am currently running Linux Mint 22.1, but this problem is present for quite a while. Mint uses network-manager-gnome to handle internet/network connections, but I’m not sure if it has anything to do with setting regdom.

Overall, I believe the “bug” lies in either debian/ubuntu based OS’s or gnome base NetworkManager. But this still doesn’t answer the question, “Who or where to we submit the bug?”

Happened with KDE Plasma on Debian which also uses NetworkManager.

I’m not in the US, but I think US gets set as some kind of default.

It looks like crda was removed from Debian a while back so it’s not using that.

@Thomas_R taking an educated guess, it’s meant to be done in nl80211.

wpa-supplicant supports changing the correct settings, but it doesn’t look like NetworkManager does.

I suspect AMD/Mediatek and Framework need to assist the NetworkManager project and fix it for most distros there.

Via a friend:
Fedora has an additional script in wireless-regdb which attempts to set the country code automatically

Raised #1104022 - wireless-regdb: Consider importing setregdomain and udev rule from Fedora - Debian Bug report logs and 2362247 – Consider upstreaming setregdomain and udev script

Awesome. But instead of incorporating the scripts, why not propose a permanent solution for networkmanager?

NetworkManager doesn’t currently have any code for that as far as I can tell, and https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/960 is abandoned.

I have been working my way through figuring out how other distros do it (Adam ♿: "#Linux #Ubuntu #Debian #Fedora #Arch users (and o…" - Aus.Social) and yes you are correct in that NetworkManager may be a good place for it but not everyone uses that.

If anyone at Framework is working specifically on wifi support in Linux I’d love to hear from you.

For myself, I no longer have access to the 6GHz network I was having issues with and I will swap to an Intel BE200 card soon as I am unhappy with the performance of the included Mediatek card.