0.简介和背景
该答案基于各种Ubuntu用户所做的广泛研究,这些用户在与Broadcom有关的几乎所有问题中都进行了合作。特别感谢chili555,他在Ubuntu论坛和该网站上为与无线设备有关的许多问题提供了帮助,并感谢其他人通过电子邮件,聊天,IRC等通过使用几种最受欢迎的Broadcom Wireless卡测试各种驱动程序做出了贡献(非常感谢Chili555。这个家伙知道他的东西)。
总体而言,我们希望提供一个易于理解的答案,并涵盖大多数Broadcom卡/驱动程序。遵循本指南后,您将需要与另一台处于Ad-Hoc模式,基础架构模式或同时处于这两种模式的设备的无线连接至少测试2个小时(我实际上建议8个小时)。可以解决的常见问题(除了未安装驱动程序):
- 几分钟或几小时后连接超时
- 停止搜索其他设备(看不到其他设备)
- 即使在AP没有任何密码的情况下,也会不断询问密码
- 停止任何接收/传输流量(需要重新启动以临时修复)
- 使用日志中的dmesg错误崩溃系统(下面的链接1)
- 系统完全死机(您只能按“重新启动/电源”按钮)(下面的链接1)
- 创建巨大的日志报告以尝试正确配置或连接
- 通过附加驱动程序 / 附加硬件安装时失败(下面的链接3)
- 每X秒钟连续连接和断开连接
- 似乎已在Network Manager上连接,但无法接收Internet
- 尝试多次连接而未正确完成连接
- 连接时间太长
- 从以前的版本(例如:12.04升级到12.10)后,它将停止工作
- 无线网卡无法打开,启用或禁用(下面的链接2)
- 无线网卡被硬件阻止
- 在启动板,Ubuntu论坛和Askubuntu中发现更多问题
链接1- https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1060268
链接2- https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/732677
链接3 -给出类似于“对不起,该驱动程序安装失败”的错误。
因此,请记住以下几点,我们将其简化为仅三个步骤:
1.了解您拥有的Broadcom无线卡
Broadcom无线网卡有数十种,而且似乎每天都在出现。为任何网卡找到正确的驱动程序的关键是所谓的PCI ID(PCI.ID)。为了找出您拥有哪个PCI.ID,我们通过按CTRL+ ALT+ 来打开终端T(它应该会打开一个空白背景的窗口),并在该终端内部运行以下命令:
lspci -nn -d 14e4:
如果您具有Broadcom无线适配器(在上面的示例中,大多数情况下使用的ID 14e4是Broadcom无线卡),则将得到以下内容:
Broadcom Corporation BCM4306 802.11bgn Wireless Network Adapter [14e4:4320] (rev 03)
在此示例中,PCI.ID为14e4:4320,如括号内所示。在某些情况下,对于某些特殊情况,您还将需要修订版本(如果显示)。在这种情况下,修订版本为rev 03,如最后在括号(...)内所示。因此,此搜索后您需要的是:
[14e4:4320] (rev 03)
有了这些新信息,您可以查看下表并选择适当的方法来安装驱动程序。例如,在这种情况下,由于您具有14e4:4320 rev 03,如果我们将列表下移到显示完全相同的PCI.ID的列表,您将在Ubuntu 12.04、13.10或14.04的列中看到它显示该firmware-b43-installer
包驱动程序。这意味着您仅需安装此特定软件包,因为它会出现在所有Ubuntu版本列中。
注意 -在继续操作之前,如果以前已安装任何驱动程序,已对任何驱动程序文件或配置文件添加了黑名单或未对其添加注释或对系统进行了任何更改以使驱动程序能够在先前的尝试中运行,则需要撤消它们才能进行操作。遵循本指南。我们假设您是从头开始的,并且没有以任何方式(除了更新系统)更改了系统中的任何配置文件,模块或驱动程序。这包括使用apt-get,aptitude,synaptic,dpkg,软件中心或手动编译和安装软件包的任何安装。系统必须从头开始,以使其正常工作,并避免在进行较早工作时可能出现的任何冲突。
例如,如果您以前已经安装了bcmwl-kernel-source
软件包,则需要使用清除方法将其删除:
sudo apt-get purge bcmwl-kernel-source
2.准备系统
如果您刚刚安装了Ubuntu,那么如果尚未安装驱动程序,则需要先建立可用软件包的索引,然后才能安装驱动程序:
sudo apt update
我什至更进一步以更新Ubuntu的PCI.ID列表:
sudo update-pciids
以防万一您正在使用的特定新Broadcom设备的ID出现。
现在,使用在上述步骤中找到的PCI.ID,然后在下面的列表中搜索以找到匹配的PCI.ID以及以简单正确的方式安装与之相关的驱动程序的方法。该终端将用于避免任何与GUI相关的问题。除另有说明外,这适用于所有情况。安装过程只能通过终端来完成,也可以通过临时有线以太网连接或USB调制解调器或任何可能使PC暂时访问Internet的方式连接到Internet时进行。在正确的软件包下面的列表中找到之后,我们将继续进行安装。
3.安装软件包(在线)
假设您使用上面搜索中找到的PCI.ID 14e4:4320 rev 03,然后查看下表,发现正确的软件包是firmware-b43-installer
,那么我们继续在终端中简单地安装此软件包:
sudo apt install firmware-b43-installer
然后重启
sudo reboot
安装格式非常简单,只是:
sudo apt install <PACKAGE_NAME>
在上面的示例中,PACKAGE_NAME为firmware-b43-installer
。
BROADCOM无线表(2017年8月18日更新)
PCI.ID 16.04 LTS 17.10+
------------------------------------------------------------------------------------
14e4:0576 Special Case #1 UNKNOWN
14e4:1713 firmware-b43-installer firmware-b43-installer
14e4:4301 firmware-b43-installer firmware-b43-installer
14e4:4306 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4307 firmware-b43-installer firmware-b43-installer
14e4:4311 firmware-b43-installer firmware-b43-installer
14e4:4311 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4312 firmware-b43-installer firmware-b43-installer
14e4:4313 firmware-b43-installer firmware-b43-installer
14e4:4315 firmware-b43-installer firmware-b43-installer
14e4:4315 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4318 firmware-b43-installer firmware-b43-installer
14e4:4318 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4319 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4321 firmware-b43-installer firmware-b43-installer
14e4:4324 firmware-b43-installer firmware-b43-installer
14e4:4325 firmware-b43-installer firmware-b43-installer
14e4:4328 firmware-b43-installer firmware-b43-installer
14e4:4328 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:4329 bcmwl-kernel-source bcmwl-kernel-source
14e4:432a bcmwl-kernel-source bcmwl-kernel-source
14e4:432b bcmwl-kernel-source bcmwl-kernel-source
14e4:432c bcmwl-kernel-source bcmwl-kernel-source
14e4:432d bcmwl-kernel-source bcmwl-kernel-source
14e4:4331 firmware-b43-installer firmware-b43-installer
14e4:4335 firmware-b43-installer firmware-b43-installer
14e4:4350 firmware-b43-installer firmware-b43-installer
14e4:4353 Special Case #1 UNKNOWN
14e4:4353 rev 01 Special Case #1 UNKNOWN
14e4:4357 Special Case #1 UNKNOWN
14e4:4358 bcmwl-kernel-source bcmwl-kernel-source
14e4:4359 bcmwl-kernel-source bcmwl-kernel-source
14e4:4360 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 rev 01 bcmwl-kernel-source bcmwl-kernel-source
14e4:43a0 bcmwl-kernel-source bcmwl-kernel-source
14e4:43ae rev 02 UNKNOWN UNKNOWN
14e4:43b1 bcmwl-kernel-source bcmwl-kernel-source
14e4:43b1 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:43c3 rev 04 UNKNOWN Special Case #2
14e4:4727 bcmwl-kernel-source bcmwl-kernel-source
14e4:4727 rev 01 Special Case #1 Special Case #1
14e4:a962 firmware-b43-installer firmware-b43-installer
------------------------------------------------------------------------------------
特例1-用途bcma
和brcmsmac
驱动程序组合。软件包中默认安装了所需的固件linux-firmware
。
特殊情况2-对于ASUS PCE-AC88 AC3100,步骤如下:
- 下载此文件并将其解压缩后放入/ lib / firmware / brcm
sudo cp brcmfmac4366c-pcie.bin /lib/firmware/brcm/brcmfmac4366c-pcie.bin
- 然后
sudo nano /etc/rc.local
添加modprobe brcmfmac并保存
sudo reboot
在联想S10-2之类的硬件中,如果您的无线网卡在尝试连接到SSID时卡住(试图保持连接状态),则替代方法是安装bcmwl-kernel-source
软件包(删除与之相关的所有其他已安装软件包)。 )。阅读下面的调试部分,以获取有关此无线设备的更多信息。
重要说明 -2014年9月之后,如果您遵循此答案,但是在安装正确的驱动程序时仍然遇到问题,请尝试安装该firmware-b43-installer
软件包并通过评论通知我们。进行了一些更改,某些驱动程序仅适用于此软件包。在安装之前,请记住要有一个干净的系统:
sudo apt install firmware-b43-installer
在某些特定情况下,在安装之后,firmware-b43-installer
您需要卸下b43模块,然后再次启用它,甚至可以使用rfkill解除阻止:
sudo modprobe -r b43
sudo modprobe b43
sudo rfkill unblock all
如果您的Broadcom卡具有不同的pci.id,请提出一个新问题。解决后,解决方案将添加到该方法中。
4.安装软件包(脱机)
4.1安装 firmware-b43-installer
要firmware-b43-installer
脱机安装,请参见此答案。
4.2安装 bcmwl-kernel-source
对于需要安装bcmwl-kernel-source
但离线的情况,这是一个很好的答案。但基本上请按照以下步骤操作:
- 在Ubuntu软件包存储库中搜索软件包
- 确保选择正确的体系结构(32位,64位等)。
- 将与它相关的软件包和依赖软件包下载到同一文件夹中。
- 当您拥有所有需要的软件包(及其依赖项)后,继续进入包含所有软件包并运行的文件夹
sudo dpkg -i *.deb
。这会将所有软件包安装在该文件夹中。如果出现任何错误,请阅读错误并按照错误提示进行操作。
举一个例子,在上面提到的第1点之后,如果您拥有Broadcom 14e4:43a0
,则将搜索该bcmwl-kernel-source
软件包,并在选择了相应的Ubuntu版本(在我的情况下为16.04或Xenial)之后,将进入以下页面:
http://packages.ubuntu.com/xenial/bcmwl-kernel-source
在此页面上,我将选择相应的体系结构(32或64),但还需要下载该页面上提到的3个软件包依赖项,如下图所示:
下载所有软件包和依赖项之后,您可以继续将所有软件包复制到单个文件夹中,并dpkg
按照上面第4步所述运行命令。
注意
在某些计算机中,在执行命令之前,您需要在BIOS中停用安全启动选项。例如,这适用于已经安装了bcmwl-kernel-source但驱动程序尚未工作的情况。您可以像这样重新安装,或通过进入BIOS设置禁用安全启动:
sudo apt-get install --reinstall bcmwl-kernel-source
调试
以下信息是阅读有关解决与无线管理有关的各种问题以及与其他网络设备冲突的其他材料。知道在某些情况下,您需要具有更新的内核版本,因为每个新版本的内核都引入了新的网络驱动程序,对现有驱动程序进行了改进或解决了有关它们的错误。
在阅读以下要点之前,请确保已在Ubuntu系统上启用所有存储库。要进行检查,请在终端上运行software-properties-gtk
并确保已启用“ Ubuntu软件”选项卡上的所有选项。
要通过终端配置无线设备,我建议如何在终端中手动连接和断开网络连接?
如果您的连接频繁断开,则有些用户建议将IPv6设置为Ignore。只需转到网络管理器(顶部面板上的网络图标)。单击它,然后选择“ 编辑设置”。然后转到您正在使用的无线连接,选择它。现在转到最后一个提到IPv6设置的选项卡。在方法字段中,选择忽略。
如果您的笔记本电脑没有检测到您的无线网卡,则一些用户提到使用rfkill unblock all
可以解决问题。其他人只是简单地将笔记本电脑上的WiFi开关关闭然后再打开(此笔记本电脑上提供物理开关)。有关更多信息,rfkill
请阅读rf kill取消阻止所有功能!
如果收到b43-phy0错误:致命DMA错误/ b43-phy0警告:强制PIO,请执行以下操作:
sudo rmmod b43
sudo modprobe b43 pio=0 qos=0
如果可行,则将其添加到RC文件中,以便在每次引导时执行。如果需要,可以将PIO更改为1。
如果安装DKMS模块(如Nvidia,Broadcom或其他)时所需的密钥不可用,则可以转到飞行员的回答此处
如果您的无线网卡可以看到/看不到路由器,并且陷入无尽的“尝试连接(尝试1/3)”循环,则解决方案可能是路由器或无线SSID设备的正确配置。
通常,对于所有无线网卡,也必须考虑所使用的网络设备(路由器,交换机,无线信道和无线频带等),这一点非常重要。有了这些信息,您将可以更好地评估问题的根源。一个示例是使用14e4:4315 rev 01 PCIID 的Lenovo S10-2 。即使安装了正确的驱动程序,用户最终也会陷入“尝试连接”循环。它会看到无线SSID,但是当尝试连接到它时,它将进入重新连接循环。
解决方案是该特定的无线设备不支持40 Mhz通道,也不支持802.11N。在这种情况下,路由器实际上以强制40 Mhz的频率进行广播,并且仅在WiFi-N上进行广播。当路由器设置为自动模式和20/40 Mhz通道时,无线网卡可以正常工作。这种情况在其他情况下也会重复出现,因此对网络设备进行适当的评估会很有帮助。
对于重复出现的情况:
错误@ wl_cfg80211_get_station:错误的Mac地址...
当执行a dmesg
并且您的无线连接频繁掉线(一个小时或一天几次)时,这里的问题可能是您在用作无线网桥的无线信号内(2个路由器共享相同的SSID和连接)。对于具有通过提供相同SSID扩展无线连接能力的现代路由器,可能会发生这种情况。您的无线连接可能会断开,因为您可能位于两个路由器之间,并且两者之间的信号强度几乎相同。
如果您的连接断开频繁,则意味着您几乎处于两个路由器设备的中间。要降低或消除无线设备的丢包率,请尝试将自己放置在无线卡只能看到一个路由器或至少一个路由器的信号强度高于另一个路由器的位置。
通过将BSSID设置为您希望连接的路由器的MAC地址,还有一些技术可以强制无线设备仅连接到特定的路由器。这将强制您的无线设备仅连接到它。
安全启动问题
在某些特定情况下,如果未禁用安全启动,则无法通过各种DEB软件包或通过具有Internet访问权限的apt-get在离线模式下安装驱动程序。
这是因为安全启动拒绝了所需的访问,因此驱动程序看起来像是正确安装,而实际上却没有。因此,对于非常特定的情况,您将需要暂时禁用安全启动,以使驱动程序正常工作。
Linux固件更新
在其他情况下,寻找并安装最新的Linux固件可以解决此问题。解决工作卡发生的小问题或使该卡首次工作。