Broadcom wl module fails to load after upgrade to Fedora 38

My Broadcom wifi stopped working after upgrade from Fedora 37 to 38.

Trying to rebuild akmods produces no errors:

sudo akmods --force
Checking kmods exist for 6.2.13-300.fc38.x86_64            [  OK  ]

The wl rpms are still installed and, notably, include one for my current kernel:

$ uname -a
Linux picard 6.2.13-300.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 27 01:33:30 UTC 2023 x86_64 GNU/Linux
$ rpm -qa|grep wl
mfcl8850cdwlpr-1.1.2-1.i386
kmod-wl-6.2.10-200.fc37.x86_64-6.30.223.271-46.fc37.x86_64
kmod-wl-6.2.12-200.fc37.x86_64-6.30.223.271-46.fc37.x86_64
hwloc-libs-2.5.0-5.fc38.x86_64
wlroots-0.16.2-2.fc38.x86_64
xdg-desktop-portal-wlr-0.7.0-1.fc38.x86_64
broadcom-wl-6.30.223.271-21.fc38.noarch
akmod-wl-6.30.223.271-46.fc38.x86_64
wlroots0.15-0.15.1-2.fc38.x86_64
kmod-wl-6.2.13-300.fc38.x86_64-6.30.223.271-46.fc38.x86_64

And the installed rpm kmod-wl-6.2.13-300.fc38.x86_64-6.30.223.271-46.fc38.x86_64 contains the wl kernel module wl.ko.xz in /lib/modules/6.2.13-300.fc38.x86_64:

$ rpm -ql kmod-wl-6.2.13-300.fc38.x86_64
/lib/modules/6.2.13-300.fc38.x86_64/extra
/lib/modules/6.2.13-300.fc38.x86_64/extra/wl
/lib/modules/6.2.13-300.fc38.x86_64/extra/wl/wl.ko.xz

Yet despite this, modprobe fails to find the wl module:

$ sudo modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.2.13-300.fc38.x86_64

Why doesn’t modprobe find the wl module? Did F38 change something about the module search path?

Check the output:

akmodsbuild /usr/src/akmods/wl-kmod.latest
sudo rpm --force -i kmod-wl-$(uname -r)-*.rpm
rpm -q kmod-wl-$(uname -r)
rpm -V kmod-wl-$(uname -r)
sudo depmod -a
sudo modprobe wl
5 Likes

Thanks, that worked!

[jhaiduce@picard ~]$ akmodsbuild /usr/src/akmods/wl-kmod.latest
* Rebuilding /usr/src/akmods/wl-kmod.latest for kernel(s) 6.2.13-300.fc38.x86_64: prep build install clean; Successfull; Saved kmod-wl-6.2.13-300.fc38.x86_64-6.30.223.271-46.fc38.x86_64.rpm in /home/jhaiduce/
[jhaiduce@picard ~]$ sudo rpm --force -i kmod-wl-$(uname -r)-*.rpm
[sudo] password for jhaiduce: 
[jhaiduce@picard ~]$ rpm -q kmod-wl-$(uname -r)
kmod-wl-6.2.13-300.fc38.x86_64-6.30.223.271-46.fc38.x86_64
[jhaiduce@picard ~]$ rpm -V kmod-wl-$(uname -r)
[jhaiduce@picard ~]$ sudo depmod -a
[jhaiduce@picard ~]$ sudo modprobe wl
[jhaiduce@picard ~]$ lsmod|grep wl
wl                   6541312  0
cfg80211             1269760  1 wl

And in the Gnome status menu I can see that my computer has already found and joined my home wifi network.