Wifi not working fedora 40 BCM4331

Hello,
I will preface this post by saying that i am fairly new to all of this, so apologies in advance if i am not clear, sound slighly confused.

I have just installed fedora 40 on a 2012 Macbook a1398 and the wifi does not work. In fact it does not appear at all.

The wireless card is a BCM4331.

I installed system updates, enabled rpmfusion free and nonfree and installed broadcom-wl.

I rebooted and still no wifi.

What is the next step?

Thank you

Added broadcom, wifi

Hi and welcome to :fedora: .

The package broadcom-wl from RPM Fusion is the right package for your card. Is your system up-to-date? When installing the driver, as well as with every new kernel, one has to wait a couple of minutes until the kernel modules get rebuilt. Is it possible that you restarted the system right after install?

What is the output of lspci | grep wireless and lsmod | grep wl?

Welcome Aldan,

In addition to the suggestions from @tqcharm, there have been some issues a while ago with Broadcom wifi in relation to an update to wpa_supplicant, this specifically crippled older Macbooks.

Since F40 is about to be replaced with F41, one other suggestion could be to install that instead, since it will likely carry the fixes needed. As an alternative you can search the forums for “macbook broadcom wifi” and you will find a number of threads with suggestions to mitigate the issue.

1 Like

Good point. However, after a few weeks of issues the wl-kmod source package got fixed by the RPM Fusion team (I know that from personal experience, as I also have an old MacBook at home with F40), hence my question regarding the system being up to date.

@tfpppp , please also post the output from dnf list installed *kmod-wl*.

1 Like

Thanks for the responses.

System is up to date.

dnf list installed *kmod-wl*

gives me this

Installed Packages
akmod-wl.x86_64         6.30.223.271-53.fc40          @rpmfusion-nonfree-updates
kmod-wl.x86_64          6.30.223.271-53.fc40          @rpmfusion-nonfree-updates

lspci | grep wireless and lsmod | grep wl gave no output. I entered them in terminal as you had written. Is this correct way to do it or i missed something?

It is possible I restarted the system right after the install, im not sure.

Please try lspci | grep -i wireless

Also, please post the outputs of the following commands (run in that order):

$ sudo modprobe -r wl
$ sudo modprobe -v wl

While looking for solutions elsewhere I came accross this

$ lspci -v | grep -A 10 -i "Network Controller"

This gave me this output

04:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4331 802.11a/b/g/n (rev 02)
	Subsystem: Apple Inc. AirPort Extreme
	Flags: bus master, fast devsel, latency 0
	Memory at c1800000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel modules: bcma

05:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03) (prog-if 00 [Normal decode])
	Subsystem: Device 2222:1111
	Flags: bus master, fast devsel, latency 0, IRQ 17
	Bus: primary=05, secondary=06, subordinate=6b, sec-latency=0
1 Like
fnord@fedora:~$ sudo modprobe -r wl
[sudo] password for fnord: 
modprobe: FATAL: Module wl not found.
fnord@fedora:~$ sudo modprobe -v wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.8.5-301.fc40.x86_64

I suspect that the driver modules didn’t get built. The output of dnf list installed *kmod-wl* should have also listed at least one package in format:

kmod-wl-6.xx.x-xxx.fc40.x86_64.x86_64  6.30.223.271-53.fc40   @@commandline

(with 6.xx.x-xxx being the kernel version).

You could try uninstalling and reinstalling the broadcom-wl package. After reinstalling the package, give it at least a couple of minutes before rebooting:

  • Right after reinstalling, you could check if the modules are being built, with the command ps -ax | grep wl (you can run it several times). If there is more than one line, than the module is being built. Don’t restart yet.
  • Once the command ps -ax | grep wl outputs only one line (ending with grep --color=auto wl) you can restart.
  • Hopefully the Wireless option is showing up in the Settings.

Added macbook

After following your instructions wireless option still isn’t showing up in settings.

But dnf list installed *kmod-wl*

now gives

Installed Packages
akmod-wl.x86_64                       6.30.223.271-53.fc40 @rpmfusion-nonfree-updates
kmod-wl-6.11.4-201.fc40.x86_64.x86_64 6.30.223.271-53.fc40 @@commandline 
$ sudo modprobe -r wl
$ sudo modprobe -v wl

give the same output as before.

thank you for your help.

There is some progress, given that the driver module (kmod-wl-6.11.4-201) has been built.

What is the exact output of sudo modprobe -v wl?

sudo modprobe -v wl

gives

modprobe: FATAL: Module wl not found in directory /lib/modules/6.8.5-301.fc40.x86_64

It’s not clear to me why the modprobe command is searching for the module in the directory /lib/modules/6.8.5....

What are the outputs of ls -l /lib/modules and dnf list installed "*kernel-modules*"?

ls -l /lib/modules

gives

total 0
drwxr-xr-x. 1 root root 742 Oct 22 20:49 6.11.3-200.fc40.x86_64
drwxr-xr-x. 1 root root 752 Oct 23 13:06 6.11.4-201.fc40.x86_64
drwxr-xr-x. 1 root root 752 Jan  1  2021 6.8.5-301.fc40.x86_64

dnf list installed "*kernel-modules*"

Installed Packages
kernel-modules.x86_64                    6.8.5-301.fc40                @anaconda
kernel-modules.x86_64                    6.11.3-200.fc40               @updates 
kernel-modules-core.x86_64               6.8.5-301.fc40                @anaconda
kernel-modules-core.x86_64               6.11.3-200.fc40               @updates 
kernel-modules-core.x86_64               6.11.4-201.fc40               @updates 
kernel-modules-extra.x86_64              6.8.5-301.fc40                @anaconda
kernel-modules-extra.x86_64              6.11.3-200.fc40               @updates 

Is it possible that you’re booted with kernel 6.8.5 instead of the latest 6.11.4? What is the output of uname -r?

Also, it seems that you are missing some packages for the latest kernel. Please also post the output of dnf list installed "*kernel*".

Finally, please try to boot with kernel 6.11.3. Is wireless working on that one?

In many, if not most, cases where a kernel module may not have been properly built due to an early reboot there is a quick and seemingly positive fix.
The command sudo akmods --rebuild --force will remove the existing kmod package and build and install a newer completed version of that package.

If this problem is caused by a defective version of the kmod-wl kernel module then the akmods command should repair it.

I noticed also that though the rollback to an earlier version of wpa-supplicant was mentioned there seems no indication that there was an attempt to try that as a solution.

2 Likes

The OP is missing the packages kernel-modules and kernel-modules-extra for the latest kernel, but has kernel-modules-core installed. I thought those two missing packages are being installed at the time of a new kernel version install, and not necessarily when a new module is being built. Am I wrong maybe?

This is not necessary anymore, since both wpa_supplicant and broadcom-wl got a fix in August.