Hi everyone!
Sorry for disappearing for a while, I’ve had some serious personal stuff to sort out, but I finally managed to get back to my normal routine and to this problem and…
…I finally solved it!
WiFi has been working like a charm for over a week now, and I’ve tried updating the system, downloading packages and even some online gaming! I never had a single OS freeze, with a caveat: the thing is I managed to fix on the latest Ubuntu and not Fedora 
I’ll try to explain what I did, and hopefully you guys can help me “translate” the commands I used to Fedora so I can finally enjoy 44 on this machine. The system is perfect now, but I really don’t like Ubuntu and would really love to use Fedora, and maybe also understand why these commands worked in the first place.
So, why did I try AGAIN with Ubuntu?
Two main reasons:
- I found more threads talking about these MacBook/Linux/Broadcom problems for that OS, which to be fair is something I already found months ago but didn’t help no matter what I tried
- I found a new, very recent GitHub post talking about this problem and providing the solution, which wasn’t there when I first tried to fix it on that OS months ago, and this is geared towards Kubuntu
The post is here: Fixing Broadcom BCM43224 Wireless on MacBook Air (Mid 2011) with Kubuntu 26.04 · GitHub and it says the problem is “power management or MSI (Message Signaled Interrupts) conflicts”
I decided to try with regular Ubuntu because the base is the same and I prefer GNOME on laptops, and I followed all the steps despite some minor inconsistencies.
For example, the bcmwl-kernel-source dkms package he mentions wasn’t found, and some other threads tells you to use broadcom-sta-dkms instead, but apart from this it worked!
The main steps I did in the end were:
- purging/blacklisting the drivers mentioned in the post in modprobe.d ( b43 and ssb)
- installing the mentioned driver (with the correct name since I didn’t find the other one, which was apparently in the Ubuntu restricted repos)
- adding
pci=nomsi intel_idle.max_cstate=1 to the GRUB configuration in the line he mentioned
- just to be extra safe, adding
pcie_aspm=off at the end of the same line as another post talking about this issue suggested
Just to make sure what was ACTUALLY working, I tried removing pcie_aspm=off, saving/updating GRUB and rebooting and the system still works, albeit a bit laggy on login, but if I remove pci=nomsi intel_idle.max_cstate=1 it freezes again just like before, so this seems to be the correct line that fixed the problem in Ubuntu.
Installing the other drivers probably helped too, and to show how my final working confugration is my network is using these drivers and kernel modules:
agonia@MBAUbuntu:~$ lspci -nnk -d 14e4:4353
02:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
Subsystem: Apple Inc. AirPort Extreme [106b:00e9]
Kernel driver in use: wl
Kernel modules: bcma, wl
While the GRUB config was like this (I only edited the GRUB_CMDLINE_LINUX_DEFAULT):
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi intel_idle.max_cstate=1 pcie_aspm=off"
GRUB_CMDLINE_LINUX=""
Now the question is: how do I do the same on Fedora, to finally fix this problem once and for all?
I am reinstalling the F44 on this MacBook connecting only via Ethernet right now as I’m writing, and if I’m not mistaken out of the box it comes with the brcmsmac driver.
Should I just try to do the modprobe blacklisting + doing the GRUB config thing to see if it works, or should I instead install and load this bcma/wl module and driver in Fedora too?
Also, after all the infos I provided in this post, what seems to be the cause? The power management thing the user on GitHub wrote about, or might there be something else at play in this situation?
As mentioned I’m happy I can at least have a usable computer on Ubuntu now, but I want to fix it with Fedora and understand what’s causing those OS freezes as soon as WiFi starts doing something “heavier” than just sitting there connected.
Also, sorry for the long post but I wanted to make sure to include everything I tried to troubleshoot it and have it working.