突然,Wi-Fi Broadcom 5 GHz 接口永久显示“超出范围”

突然,Wi-Fi Broadcom 5 GHz 接口永久显示“超出范围”

安装后的几天内,我的 Broacom Wi-Fi 在 2.4 GHz 和 5 GHz 两个接口上都运行正常。要安装它,我必须安装 2 个软件包firmware-b43-installerb43-fwcutter。然而,在 DNS 服务器长时间故障后,5 GHz 接口永久显示为Out of Range并且不可用。

在此处输入图片描述

虽然使用它Mac OS仍然Windows没有问题,但在多重启动中就在同一个硬件上......所以这肯定是 Ubuntu 中的配置失败。

我进行了完全删除,清除了 2 个软件包并重新安装它们,但无济于事。例如,在最初安装后,我在检查以下内容时可以看到一些 brcmwl 硬件hard blocked

$ rfkill list all
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
$ 

问题出现后,以及完全重新安装这两个包后,我只剩下:

$ rfkill list all
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
$ 

仿佛brcmwl-0彻底消失了。

以下命令仅列出 2.4 GHz 接口:

$ iwconfig
wlp5s0b1  IEEE 802.11  ESSID:"Linksys37528"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: B4:75:0E:F8:C4:36   
          Bit Rate=36 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=70/70  Signal level=-38 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:13  Invalid misc:99   Missed beacon:0
$ 

看起来好像在某个地方被禁用了。但是如何在 Ubuntu 中完全启用所有 Wi-Fi 接口?某个地方出现了乱码。

运行Wireless Info Script此建议的回答来自 Ask Ubuntu,并发布在线的wlp5s0b1这里,只列出了界面上的14个2.4GHz信道频率。但是wlp5s0b0没有wlp5s0b2找到,这才是真正的问题。

其中一段摘录显示了有关 5GHz 接口的令人不安的信息:

##### NetworkManager profiles ###########

[[/etc/NetworkManager/system-connections/Linksys37528 1]] (600 root)
[connection] id=Linksys37528 1 | type=wifi | permissions=
[wifi] mac-address=<MAC 'wlp5s0b1' [IF6]> | mac-address-blacklist= | ssid=Linksys37528
[ipv4] method=manual
[ipv6] method=auto

[[/etc/NetworkManager/system-connections/Linksys37528]] (600 root)
[connection] id=Linksys37528 | type=wifi | permissions=
[wifi] mac-address=<MAC address> | mac-address-blacklist= | ssid=Linksys37528
[ipv4] method=manual
[ipv6] method=auto

[[/etc/NetworkManager/system-connections/Linksys37528_5GHz 1]] (600 root)
[connection] id=Linksys37528_5GHz 1 | type=wifi | permissions=
[wifi] mac-address=<MAC 'wlp5s0b1' [IF6]> | mac-address-blacklist= | ssid=Linksys37528_5GHz
[ipv4] method=manual
[ipv6] method=auto

[[/etc/NetworkManager/system-connections/Linksys37528_5GHz]] (600 root)
[connection] id=Linksys37528_5GHz | type=wifi | permissions=
[wifi] mac-address=<MAC address> | mac-address-blacklist= | ssid=Linksys37528_5GHz
[ipv4] method=auto
[ipv6] method=auto

因为 是[ipv4] method=auto完全错误的。这就像在 2.4 GHz 上设置为manual。我确实又一次将其设置为manual,但配置文件仍然不会在auto这里移动。虽然在系统设置中检查时它肯定设置为manual寻址。

在 Ubuntu 中哪里可以找到适当的支持来修复这个麻烦的网络适配器配置?似乎几乎没有任何支持。

答案1

好吧,我最终bcmwl-kernel-source按照chili555要求重新安装了软件包。谢谢他的建议。

[Side NOTE]: bcmwl-kernel-source最初安装时,因为我使用了另一个网络适配器,该适配器在 2.4 GHz 和 5 GHz 上都能很好地与它配合使用。然后,当我切换到新的网络适配器时,我确实安装了软件包,firmware-b43-installer因为现有文档要求这样做。后来我确实卸载了它bcmwl-kernel-source以避免连接中断。

原因是安装该软件包bcmwl-kernel-source将允许 Ubuntu 看到 5 GHz Wi-Fi 接口。

问题在于,安装了这两个软件包后bcmwl-kernel-sourcefirmware-b43-installerWi-Fi 连接会随机断开(有时每小时几次)。这背后可能存在一些并发活动,两者之间存在竞争条件?

需要注意的是,从这个参考答案,只firmware-b43-installer需要。因为 PCI id 是:

$ lspci -nn -d 14e4:
05:00.0 Network controller [0280]: Broadcom Limited BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
$ 

然后在BROADCOM WIRELESS TABLE(2017年8月18日更新)中,我发现了以下条目:

14e4:4331           firmware-b43-installer            firmware-b43-installer

Xenial 16.04 LTS给出在和中安装的包17.10+

卸载bcmwl-kernel-source将停止连接断开,但是,根据我的经验,如果连接出现问题(例如 DNS 服务器关闭),您可能会完全丢失 5 GHz 接口,如问题本身所示。

遗憾的是我们没有从 Broadcom 获得完全可用的驱动程序解决方案。此网络适配器在 Windows 和 Mac OS X 上以 2.4 GHz 和 5 GHz 完美运行。看起来工作包firmware-b43-installer太旧了,不支持 5 GHz 接口?

另一个答案已经建议删除该软件包bcmwl-kernel-source以避免连接随机断开。但是,至少有一位用户发现此解决方案也不起作用。

同时,我编写了一个名为“check-for-wi-fi-up-and-runnig一旦断开 Wi-Fi 连接,就立即恢复”的快速 bash 脚本:

#!/bin/bash
#

# Check if Wi-Fi is disabled e.g. 'out of range'
# If so quickly re-enable Wi-Fi
# Due to a problem with Broadcom proprietary driver in package firmware-b43-installer

# Script is part of Start-Up programs
# Stored in /usr/local/bin/
# Infinite loop checking every second if Wi-Fi is up and running

while true; do
  # https://askubuntu.com/questions/27954/how-can-i-check-internet-connectivity-in-a-console
  if [[ $(nmcli -f STATE -t g) != 'connected' ]]; then
    # Disable and Re-Enable Wi-Fi as the Wi-Fi is now 'out of range' (disconnected)
    nmcli radio wifi off
    sleep 3
    nmcli radio wifi on
    sleep 120
  fi
  sleep 1
done

也许我可以将其调低sleep 3sleep 1,等待进一步测试。

所以基本上,现在这是一个权衡,不会出现连接中断,但有时必须重新安装驱动程序包,或者出现不稳定的连接,有时每小时会中断几次......

相关内容