列入黑名单的 Broadcom 驱动程序仍会加载

列入黑名单的 Broadcom 驱动程序仍会加载

50-broadcom-wl-blacklist.conf我在以下文件中明确将某些 Broadcom 驱动程序列入黑名单/etc/modprobe.d/

# modules blacklisted for broadcom-wl
blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist b43legacy
blacklist ndiswrapper
blacklist brcm80211
blacklist bcma
blacklist brcmsmac

但它们仍在加载中!

$ lsmod | grep b43
b43legacy             151552  0
b43                   450560  0
bcma                   61440  1 b43
mac80211              888832  2 b43,b43legacy
ssb                    86016  2 b43,b43legacy
mmc_core              163840  2 b43,ssb
cfg80211              696320  4 wl,b43,mac80211,b43legacy

操作系统:openSUSE Leap 15

其他一些帖子提到运行mkinitrddracut.这何时与黑名单模块相关?

注意,50-broadcom-wl-blacklist.conf可能是由一些 openSUSE 工具创建的,我不记得创建它了。奇怪的mkinitrd是,如果有必要,该工具不会调用 a 。

我们生活在systemd一个时代,但我认为systemd这与黑名单模块无关(还)。

我将此模块列入黑名单,因为我必须将 Broadcom 专有 STA 驱动程序与我的 bcm4360 芯片组卡一起使用。

答案1

因此,事实证明,列入黑名单的模块是由 Systemd/网络管理器服务之一显式加载的:pullin-bcm43xx-firmware.service

我只是通过 systemd 调用禁用了可疑服务:
systemctl disable pullin-bcm43xx-firmware.service
然后重新启动..然后瞧..b43 驱动程序不再加载;单边带、b43、b43legacy、mac80211;只有 wl 存在。幸福的结局..暂时。

我怎么找到的pullin-bcm43xx-firmware.service?通过一些侦探工作。通过搜索系统日志journalctl -b,搜索b43.我发现了这条可疑的行:
install_bcm43xx_firmware_wrapper[1115]: Downloading b43 firmware
就在网络管理器启动之后。搜索install_bcm43xx_firmware_wrapper产生/etc/etc/systemd/system/multi-user.target.wants/pullin-bcm43xx-firmware.service..其余的你已经知道了。

令人担忧的是,我发现它主要是出于运气。如果该脚本没有提及b43及其名称,我将能够建立任何链接。令人担忧的是,没有正式的日志跟踪来记录哪些驱动程序何时加载、由谁加载:(

我还了解到模块黑名单有点用词不当。正如 Arvidjaar 为我澄清的那样:

黑名单仅阻止由于硬件自动检测而加载模块(严格来说,它告诉 modprobe 忽略模块提供的内部别名)。它不禁止通过任何其他方式加载模块(显式 modprobe、modprobe.conf 中的安装行、modprobe.conf 中的显式别名)。

内核应该有一个适当的可执行的黑名单功能!

相关内容