2015 Imac 27" and brcmfmac wifi fix

Fixing no connection was as simple as adding:

options brcmfmac feature_disable=0x82000
to /etc/modprobe.d/brcmfmac.conf

No need for iwd etc.
This is relevant to the BCM43602 wifi Hardware.

1 Like

I’m just curious:
what is that now disabled feature? What function is now disabled?

modinfo doesn’t tell me anything about it

I believe it is connected to a security feature and wpa_supplicant, prevents signing onto a network via passkey/word. Surprised it hasnt been dealt with in firmware yet. Just realised I haven’t mentioned wifi hardware. sort that now.

Asahi Linux: PSA: Hold off on distro updates for a few days if you use WiFi - Treehouse Mastodon

Update: The fix has been released for Fedora and it is now safe to update.

An upstream wpa_supplicant update broke WPA2/3 on all Broadcom chips (not just Macs). We are in the process of releasing a fix for Fedora. For other distros, please check with the relevant maintainers.

For those who have already updated, adding brcmfmac.feature_disable=0x82000 to your kernel command line should work around the issue and make WiFi work again, allowing you to update to the fix once it is released.

1 Like

No stop between “brcmfmac” and “feature” ! That will fail.

It will (probably) not fail.
I put probably because I can’t test to verify.

That is what goes in the kernel command line.
That same option in /etc/modprobe./something.conf is written differently - like you did.
One can do either one to achieve the same result.

Kernel module - ArchWiki

Setting module options

To pass a parameter to a kernel module, you can pass them manually with modprobe or assure certain parameters are always applied using a modprobe configuration file or by using the kernel command line

Using modprobe.d

Configuration files in the /etc/modprobe.d/ directory can be used to pass module settings to udev, which will use modprobe to manage the loading of the modules during system boot.

The syntax is:

options module_name parameter_name=parameter_value

Using kernel command line

You can also pass options to the module using the kernel command line. This is the only working option for modules built into the kernel. For all common boot loaders, the following syntax is correct:

module_name.parameter_name=parameter_value