基于 BCM4312 的 WLAN 卡在装有 Ubuntu 14.04 的 Dell Vostro 1510 中出现故障

基于 BCM4312 的 WLAN 卡在装有 Ubuntu 14.04 的 Dell Vostro 1510 中出现故障

在 Ubuntu 13.08 下使用 STA 专有驱动程序时,一切都运行良好。在 Ubuntu 警告消息的坚持下,我决定升级到 Ubuntu 14.04,结果却发现无线电路不再响应。我尝试了所有 4 个被认为与 BCM4312 芯片组兼容的内核模块,但都没有起作用。

不得已,我决定下载 Broadcom 为 64 位架构提供的最新源代码(对应于 BCM 4312 芯片组)。我不得不更改文件系统中的某些细节才能使编译正常工作。编译没有显示任何严重警告,但当尝试使用命令“insmod”将生成的编译驱动程序插入内核时,由于“格式”错误而出现致命错误。我尝试使用“modprobe”,没有发出任何错误消息,但显然失败了,因为网络功能仍然不可用,并且 lscpi 命令的输出显示没有内核驱动程序连接到 Broadcom 无线网络控制器。

LSCPI 命令输出(不相关的文本被截断):

... 06:00.0 网络控制器 [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)子系统:Dell Wireless 1395 WLAN 迷你卡 [1028:000b] 标志:总线主控、快速设备、延迟 0、IRQ 11 内存位于 f4000000(64 位,不可预取)[size=16K] 功能:[40] 电源管理版本 3 功能:[58] 供应商特定信息:Len=78 功能:[e8] MSI:启用 - 计数=1/1 可屏蔽 - 64 位+ 功能:[d0] 快速端点,MSI 00 功能:[100] 高级错误报告功能:[13c] 虚拟通道功能:[160] 设备序列号1b-bf-44-ff-ff-db-00-16 功能:[16c] 功率预算

07:00.0 以太网控制器 [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express 千兆以太网控制器 [10ec:8168] (rev 02) 子系统: Dell 设备 [1028:0273] 标志: 总线主控、快速设备、延迟 0、IRQ 44 I/O 端口位于 5000 [size=256] 内存位于 f8610000 (64 位,可预取) [size=4K] 内存位于 f8600000 (64 位,可预取) [size=64K] [虚拟] 扩展 ROM 位于 f8620000 [已禁用] [size=64K] 功能: [40] 电源管理版本 3 功能: [50] MSI: 启用 + 计数 = 1/2 可屏蔽 - 64 位 + 功能: [70] Express Endpoint,MSI 01 功能:[b0] MSI-X:Enable- Count=2 Masked- 功能:[d0] 重要产品数据功能:[100] 高级错误报告功能:[140] 虚拟通道功能:[160] 设备序列号 00-00-00-00-00-00-00-00 正在使用的内核驱动程序:r8169 .... “

我使用命令“insmod wl.ko”得到的实际错误消息是 “模块格式无效”

wl.ko 是Broadcom提供的驱动源代码编译后得到的文件。


我使用命令卸载了内核驱动程序(即使我怀疑它已被系统安装/使用)

 apt-get purge bcmwl-kernel-source

(然后终端显示消息说firmware-bc43-installer 已恢复或下载并安装)

然后我通过输入命令安装了 STA 驱动程序

apt-get install linux-firmware-nonfree

我检查了 /etc/modprobe.d/blacklist.conf 文件并取消注释了该行黑名单 bcm43xx,仅与无线设备/驱动程序相关。

然后重新启动。

现在我仍然没有任何进步:

# lspci -v |grep -13 Network

    I/O ports at 18e0 [size=32]
    Memory at f8500000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: [80] MSI: Enable+ Count=1/4 Maskable- 64bit-
    Capabilities: [70] Power Management version 3
    Capabilities: [a8] SATA HBA v1.0
    Kernel driver in use: ahci

00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
    Subsystem: Dell Device 0273
    Flags: medium devsel, IRQ 10
    Memory at c0500000 (32-bit, non-prefetchable) [size=256]
    I/O ports at 1c20 [size=32]

06:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
    Subsystem: Dell Wireless 1395 WLAN Mini-Card
    Flags: bus master, fast devsel, latency 0, IRQ 11
    Memory at f4000000 (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 1b-bf-44-ff-ff-db-00-16
    Capabilities: [16c] Power Budgeting <?>

07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02)

#lshw 

...
*-pci:2
             description: PCI bridge
             product: 82801H (ICH8 Family) PCI Express Port 4
             vendor: Intel Corporation
             physical id: 1c.3
             bus info: pci@0000:00:1c.3
             version: 03
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:42 ioport:4000(size=4096) memory:f4000000-f7ffffff ioport:fc000000(size=33554432)
           *-network UNCLAIMED
                description: Network controller
                product: BCM4312 802.11b/g LP-PHY
                vendor: Broadcom Corporation
                physical id: 0
                bus info: pci@0000:06:00.0
                version: 01
                width: 64 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list
                configuration: latency=0
                resources: memory:f4000000-f4003fff
...


# lsmod

Module                  Size  Used by
zram                   18439  2 
dm_crypt               22924  1 
coretemp               13355  0 
dell_wmi               12681  0 
sparse_keymap          13890  1 dell_wmi
dell_laptop            17369  0 
dcdbas                 14397  1 dell_laptop
uvcvideo               80847  0 
videobuf2_vmalloc      13056  1 uvcvideo
videobuf2_memops       13202  1 videobuf2_vmalloc
videobuf2_core         40542  1 uvcvideo
videodev              129379  2 uvcvideo,videobuf2_core
microcode              22939  0 
joydev                 17377  0 
serio_raw              13215  0 
lpc_ich                17061  0 
parport_pc             28152  0 
ppdev                  17073  0 
lp                     17759  0 
parport                46345  3 lp,ppdev,parport_pc
mac_hid                13205  0 
psmouse                95934  0 
ahci                   25731  2 
libahci                31394  1 ahci
sdhci_pci              18619  0 
firewire_ohci          40315  0 
sdhci                  32686  1 sdhci_pci
r8169                  67706  0 
firewire_core          64566  1 firewire_ohci
i915                  605700  3 
crc_itu_t              12707  1 firewire_core
i2c_algo_bit           13413  1 i915
drm_kms_helper         49394  1 i915
drm                   286260  4 i915,drm_kms_helper
wmi                    19070  1 dell_wmi
video                  19390  1 i915

答案1

您的 4312 Broadcom [4315] 可以使用 b43 驱动程序或专有 STA (wl) 驱动程序,具体取决于b43-Linux 无线。默认情况下,b43 驱动程序存在,但需要您安装专有固件,您可以通过安装软件包 linux-firmware-nonfree 来完成此操作。如果出于某种原因,固件无法与 [4315] 配合使用,您可以运行您提到的 b43 切割器和安装程序包。最终结果应该是目录 /lib/firmware/b43 中的一组固件文件,只要您没有在 /etc/modprobe.d 中的任何文件中使用“blacklist b43”行来抑制 b43 驱动程序,Wireless 应该在下次启动时获取驱动程序。检查是否有任何此类行并将其注释掉。如果您清除 STA 软件包文件,它们应该会被删除,但请自行检查以确保万无一失。

我最近没有使用过 STA 驱动程序,但只需使用附加 DRivers Dash 选项就可以添加它(当然,当您使用有线连接时)。在这种情况下,不需要任何固件文件,因为它们包含在 STA 驱动程序本身中(b43 切割机就是从那里获取它们的)。

相关内容