无法让 akmod-wl 模块在 Broadcom BCM4322 的 Fedora 24 中工作

无法让 akmod-wl 模块在 Broadcom BCM4322 的 Fedora 24 中工作

我的系统:

DELL Latitude E6400 上的 Fedora 24 64 位

我有一个 BCM4322 无线接口

lspci -vnn -d 14e4:
0c:00.0 Network controller [0280]: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
        Subsystem: Dell Wireless 1510 Wireless-N WLAN Mini-Card [1028:000d]
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at f69fc000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [58] Vendor Specific Information: Len=78 <?>
        Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [d0] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [13c] Virtual Channel
        Capabilities: [160] Device Serial Number dd-c6-00-ff-ff-61-78-e4
        Capabilities: [16c] Power Budgeting <?>
        Kernel driver in use: b43-pci-bridge
        Kernel modules: ssb, wl

我安装了 akmod-wl 并重新启动了系统。但无线接口仍然无法激活,因为模块似乎未签名:

$ lsmod | grep wl
wl                   6447104  0
cfg80211              565248  1 wl

我在 dmesg 中看到这个:

[   14.847359] wl: module license 'MIXED/Proprietary' taints kernel.
[   14.847364] Disabling lock debugging due to kernel taint
[   14.856059] wl: module verification failed: signature and/or required key missing - tainting kernel

我不知道如何解决这个问题?

答案1

您需要禁用安全启动。进入BIOS并找到该选项,禁用它并重新安装wl

答案2

我的系统:

  • MacBookPro5,3 上的 Fedora 32 x86_64
  • BCM4322 14e4:432b 无线接口
  • 使用 rpmfusion 中的 akmod-wl

akmod-wl 提供 b43 和 wl 驱动程序。使用 b43 启动该卡,然后运行 ​​wl。

删除并卸载冲突的驱动程序包:

dnf remove b43-openfwwf

启动时,仅加载 wl 驱动程序,但 BCM4322 未分配设备。

# lsmod | grep -e "wl\|b43"
wl                   6471680  0
cfg80211              864256  1 wl

# lshw -C network -short
H/W path                Device      Class          Description
==============================================================
/0/100/a                enpXXXX     network        MCP79 Ethernet
/0/100/15/0                         network        BCM4322 802.11a/b/g/n

卸载正在运行的 wl 驱动程序。加载和卸载 b43 驱动程序。然后再次加载wl驱动程序。 (wl无法启动卡,但b43无法运行卡。)

/usr/sbin/modprobe -r wl 
/usr/sbin/modprobe b43 
/usr/sbin/modprobe -r b43 
/usr/sbin/modprobe wl

BCM4322 现在应该分配有一个设备:

# lshw -C network -short
H/W path                Device      Class          Description
==============================================================
/0/100/a                enpXXXX     network        MCP79 Ethernet
/0/100/15/0             wlpXXX      network        BCM4322 802.11a/b/g/n Wireless LAN Controller

SSID 现在应该可用,您可以从 NetworkManager 连接到:

# nmcli dev wifi list
IN-USE  BSSID              SSID        MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
*       xx:xx:xx:xx:xx:xx  XXXXXXXXX   Infra  11    195 Mbit/s  45      ▂▄__  WPA2    

将上面的 modprobe 命令放入 /usr/local/bin/wifi_drivers.sh 的脚本中,您可以创建一个服务来在 wpa_supplicant 之前运行该脚本:

[Unit]
Description=Wifi Drivers for Broadcom BCM4322 14e4:432b
Before=wpa_supplicant.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/wifi_drivers.sh

[Install]
WantedBy=multi-user.target

相关内容