Page MenuHomeSolus

broadcom-sta-current: wl module is not loaded
Closed, DuplicatePublic

Description

With linux-lts 4.9.84-80 broadcom-sta 6.30.223.271-175 worked out of the box as expected.
With linux-current 4.15.6-58 and broadcom-sta-current 6.30.223.271-175 the module wasn't loaded automatically as I would expect. Loading the module manually failed:

# modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/4.15.6-58.current

Even though the module exists:

$ find /lib/modules/4.15.6-58.current/ -name wl.ko
/lib/modules/4.15.6-58.current/kernel/drivers/net/wireless/wl.ko

Loading module file directly failed too:

# insmod /lib/modules/4.15.6-58.current/kernel/drivers/net/wireless/wl.ko
insmod: ERROR: could not insert module /lib/modules/4.15.6-58.current/kernel/drivers/net/wireless/wl.ko: Unknown symbol in module

The reason for failure:

# journalctl -b | grep wl:
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_inform_bss_frame_data (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_scan_done (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_disconnected (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol wiphy_new_nm (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol wiphy_register (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_put_bss (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_roamed (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_gtk_rekey_notify (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_ibss_joined (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_michael_mic_failure (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol ieee80211_get_channel (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol wiphy_unregister (err 0)
Feb 26 23:36:35 solus kernel: wl: Unknown symbol cfg80211_get_bss (err 0)
[omitted]

Looking at the dependency information for wl module which linux-current is missing:

$ grep wl.ko /lib/modules/4.9.84-80.lts/modules.dep
kernel/drivers/net/wireless/wl.ko: kernel/net/wireless/cfg80211.ko kernel/net/rfkill/rfkill.ko
$ grep wl.ko /lib/modules/4.15.6-58.current/modules.dep
$ lsmod | grep rfkill
rfkill                 24576  7 bluetooth,cfg80211
$ lsmod | grep cfg80211
# modprobe cfg80211

Now I was able to load wl successfully:

# insmod /lib/modules/4.15.6-58.current/kernel/drivers/net/wireless/wl.ko

The cause of the problem appears to be missing dependency information for wl for linux-current which I was being able to verify by using modules.dep.bin from linux-lts (as modprobe no longer fallbacks to the plain text modules.dep):

# mv /lib/modules/4.15.6-58.current/{,_}modules.dep.bin
# cp /lib/modules/4.{9.84-80.lts,15.6-58.current}/modules.dep.bin
# modprobe wl
# echo $?
0

Event Timeline

raindev created this task.Feb 26 2018, 11:29 PM
raindev edited projects, added Hardware; removed Lacks Project.Feb 26 2018, 11:34 PM

Apparently the root cause in my case was the lack of space on ESP for a new kernel which caused clr-boot-manager trigger to fail and depmod trigger never being run.