MacBook 11,1 - WiFi driver broken after update

It appears that some updates that came through yesterday (3/30/2023) broke the WiFi driver on my Fedora 37 MacBook. I’ve tried various drivers for my wifi card (BCM4360) and unloading / loading the bcma, wl, and b43 drivers without success. I’ve also tried reinstalling the b43-fwcutter package as well as swapping this package for the open source b43-openfwwf package. I’ve also tried reinstalling the broadcom-wl but when I go to modprobe wl I get the following error message.
modprobe: FATAL: Module wl not found in directory /lib/modules/6.2.8-200.fc37.x86_64

Output of lspci -k

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
	Subsystem: Apple Inc. Device 011a
	Kernel driver in use: hsw_uncore
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
	Subsystem: Apple Inc. Device 011a
	Kernel driver in use: i915
	Kernel modules: i915
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
	Subsystem: Apple Inc. Device 011a
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
	Subsystem: Intel Corporation Apple MacBookAir6,2 / MacBookPro11,1
	Kernel driver in use: xhci_hcd
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: mei_me
	Kernel modules: mei_me
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: pcieport
00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: pcieport
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: lpc_ich
	Kernel modules: lpc_ich
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
	Subsystem: Intel Corporation Device 7270
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801
02:00.0 Multimedia controller: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera
	Subsystem: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter (rev 03)
	Subsystem: Apple Inc. Device 0112
	Kernel driver in use: bcma-pci-bridge
	Kernel modules: bcma
04:00.0 SATA controller: Samsung Electronics Co Ltd Apple PCIe SSD (rev 01)
	Kernel driver in use: ahci
05:00.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
06:00.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
06:03.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
06:04.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
06:05.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
06:06.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: pcieport
07:00.0 System peripheral: Intel Corporation DSL5520 Thunderbolt 2 NHI [Falcon Ridge 4C 2013]
	Subsystem: Device 2222:1111
	Kernel driver in use: thunderbolt
	Kernel modules: thunderbolt

Output of lsmod

Module                  Size  Used by
tls                   147456  0
uinput                 20480  0
rfcomm                 98304  16
snd_seq_dummy          16384  0
snd_hrtimer            16384  1
wireguard             118784  0
curve25519_x86_64      36864  1 wireguard
libcurve25519_generic    49152  2 curve25519_x86_64,wireguard
ip6_udp_tunnel         16384  1 wireguard
tun                    69632  2
udp_tunnel             28672  1 wireguard
nf_conntrack_netbios_ns    16384  1
nf_conntrack_broadcast    16384  1 nf_conntrack_netbios_ns
nft_fib_inet           16384  1
nft_fib_ipv4           16384  1 nft_fib_inet
nft_fib_ipv6           16384  1 nft_fib_inet
nft_fib                16384  3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
ip_set                 65536  0
qrtr                   57344  4
bnep                   36864  2
b43                   528384  0
cordic                 16384  1 b43
mac80211             1486848  1 b43
sunrpc                806912  1
libarc4                16384  1 mac80211
cfg80211             1273856  2 b43,mac80211
intel_rapl_msr         20480  0
intel_rapl_common      36864  1 intel_rapl_msr
x86_pkg_temp_thermal    20480  0
intel_powerclamp       20480  0
binfmt_misc            28672  1
ssb                   126976  1 b43
coretemp               20480  0
kvm_intel             442368  0
iTCO_wdt               16384  0
intel_pmc_bxt          16384  1 iTCO_wdt
mei_hdcp               28672  0
mmc_core              258048  2 b43,ssb
kvm                  1318912  1 kvm_intel
mei_pxp                20480  0
joydev                 28672  0
iTCO_vendor_support    16384  1 iTCO_wdt
btusb                  77824  0
nls_utf8               16384  1
irqbypass              16384  1 kvm
btrtl                  28672  1 btusb
applesmc               32768  0
snd_hda_codec_cirrus    24576  1
btbcm                  24576  1 btusb
hfsplus               172032  1
snd_hda_codec_generic   114688  1 snd_hda_codec_cirrus
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_hda_codec_hdmi     94208  1
btintel                53248  1 btusb
btmtk                  16384  1 btusb
snd_hda_intel          65536  6
snd_intel_dspcfg       36864  1 snd_hda_intel
rapl                   24576  0
snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg
intel_cstate           24576  0
bluetooth            1015808  46 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
mei_me                 61440  2
intel_uncore          253952  0
thunderbolt           454656  0
pcspkr                 16384  0
snd_hda_codec         212992  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_cirrus
bcm5974                28672  0
i2c_i801               40960  0
mei                   192512  5 mei_hdcp,mei_pxp,mei_me
i2c_smbus              20480  1 i2c_i801
lpc_ich                28672  0
rndis_host             24576  0
bcma                   81920  1 b43
cdc_ether              24576  1 rndis_host
snd_hda_core          139264  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_cirrus
rfkill                 40960  7 bluetooth,cfg80211
snd_hwdep              20480  1 snd_hda_codec
usbnet                 61440  2 rndis_host,cdc_ether
snd_seq               106496  7 snd_seq_dummy
sbs                    20480  0
mii                    16384  1 usbnet
snd_seq_device         16384  1 snd_seq
snd_pcm               184320  5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
sbshc                  16384  1 sbs
acpi_als               20480  1
industrialio_triggered_buffer    16384  1 acpi_als
kfifo_buf              16384  1 industrialio_triggered_buffer
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
industrialio          126976  3 industrialio_triggered_buffer,acpi_als,kfifo_buf
snd                   143360  22 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm
apple_bl               20480  0
soundcore              16384  1 snd
apple_mfi_fastcharge    20480  0
nft_reject_inet        16384  6
nf_reject_ipv4         16384  1 nft_reject_inet
nf_reject_ipv6         24576  1 nft_reject_inet
nft_reject             16384  1 nft_reject_inet
nft_masq               16384  0
nft_ct                 24576  16
nft_chain_nat          16384  3
nf_nat                 65536  2 nft_masq,nft_chain_nat
nf_conntrack          196608  5 nf_nat,nft_ct,nf_conntrack_netbios_ns,nf_conntrack_broadcast,nft_masq
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
nf_tables             348160  238 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_fib_ipv4,nft_masq,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
nfnetlink              20480  3 nf_tables,ip_set
loop                   36864  0
zram                   45056  2
dm_crypt               65536  1
i915                 3772416  13
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
crc32c_intel           24576  3
polyval_clmulni        16384  0
polyval_generic        16384  1 polyval_clmulni
uas                    36864  0
drm_buddy              20480  1 i915
usb_storage            86016  1 uas
ghash_clmulni_intel    16384  0
drm_display_helper    200704  1 i915
sha512_ssse3           53248  0
cec                    86016  2 drm_display_helper,i915
hid_apple              24576  0
ttm                   102400  1 i915
video                  73728  1 i915
wmi                    45056  1 video
ip6_tables             40960  0
ip_tables              40960  0
fuse                  204800  5

I see that b43 is loaded but no device in use. From the lspci result it looks like my wifi card is using the bcma driver but I can’t seem to unload it with rmmod or uninstall it with dnf.

I had another laptop running Ubuntu 22.04 experience the same exact issue earlier this week but I was able to get that up and running by reinstalling the b43 firmware. This does not appear to be the case here.

Any advice is appreciated!

Thanks!

Check the output:

sudo dnf install broadcom-wl
rpm -q -a akmod-wl kmod-wl\*
rpm -V -a akmod-wl kmod-wl\*
rpm -q -l -a akmod-wl kmod-wl\*
ls -l /usr/src/akmods/wl-kmod*
sudo akmods --force --akmod wl
akmodsbuild /usr/src/akmods/wl-kmod.latest
sudo rpm --force -i ~/kmod-wl-*.rpm
sudo modprobe wl

If the issue persists, try this:

2 Likes

no or blank output for rpm -q -a akmod-wl kmod-wl\* , rpm -V -a akmod-wl kmod-wl\*, and rpm -q -l -a akmod-wl kmod-wl\*.

output of ls -l /usr/src/akmods/wl-kmod*
ls: cannot access '/usr/src/akmods/wl-kmod*': No such file or directory

I’m pretty sure I uninstalled broadcom-wl package thinking it might conflict with the b43 driver.

sudo akmods --force --akmod wl
Could not find akmod wl
akmodsbuild /usr/src/akmods/wl-kmod.latest
ERROR: Can't find SRPM /usr/src/akmods/wl-kmod.latest
sudo rpm --force -i ~/kmod-wl-*.rpm
error: File not found by glob: /home/user/kmod-wl-*.rpm
sudo modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.2.8-200.fc37.x86_64

I assume I need to install the broadcom-wl package and re-run the above commands?

Doing so will install broadcom-wl and akmod-wl.

Installing the broadcom-wl, akmod-wl packages and then running the above commands again fixed it for me.

[user@host ~]$ rpm -q -a akmod-wl kmod-wl\*
akmod-wl-6.30.223.271-46.fc37.x86_64
kmod-wl-6.2.8-200.fc37.x86_64-6.30.223.271-46.fc37.x86_64
[user@host ~]$ rpm -V -a akmod-wl kmod-wl\*
[user@host ~]$ sudo rpm -q -l -a akmod-wl kmod-wl\*
[sudo] password for user: 
/usr/src/akmods/wl-kmod-6.30.223.271-46.fc37.src.rpm
/usr/src/akmods/wl-kmod.latest
/lib/modules/6.2.8-200.fc37.x86_64/extra
/lib/modules/6.2.8-200.fc37.x86_64/extra/wl
/lib/modules/6.2.8-200.fc37.x86_64/extra/wl/wl.ko.xz
[user@host ~]$ sudo ls -l /usr/src/akmods/wl-kmod*
-rw-r--r--. 1 root root 5803633 Jan  3 01:09 /usr/src/akmods/wl-kmod-6.30.223.271-46.fc37.src.rpm
lrwxrwxrwx. 1 root root      36 Jan  3 01:09 /usr/src/akmods/wl-kmod.latest -> wl-kmod-6.30.223.271-46.fc37.src.rpm
[user@host ~]$ sudo akmods --force --akmod wl
Checking kmods exist for 6.2.8-200.fc37.x86_64             [  OK  ]
[user@host ~]$ akmodsbuild /usr/src/akmods/wl-kmod.latest
* Rebuilding /usr/src/akmods/wl-kmod.latest for kernel(s) 6.2.8-200.fc37.x86_64: prep build install clean; Successfull; Saved kmod-wl-6.2.8-200.fc37.x86_64-6.30.223.271-46.fc37.x86_64.rpm in /home/user/
[user@host ~]$ sudo rpm --force -i ~/kmod-wl-*.rpm
[user@host ~]$ sudo modprobe wl
[user@host ~]$ 

After a reboot, I’ve got my WiFi interface back and running!

Thanks @vgaetera for the quick response!

2 Likes

My wifi stopped working when i upgraded by MacbookPro8,2 from F36 to F38. This recipe fixed it. Thanks!

The output of the commands suggested that these packages were all installed and valid already. So i think it was just the akmodsbuild / rpm -i / modprobe bit that made the difference. This feels like something that should happen during the upgrade process. Is this an oversight in the tooling which does that? Could there be other kernel modules which need rebuilding too?

Transcript of applying the fix