从睡眠中醒来时,有时我的 Linux 笔记本电脑不会重新建立它的 Wi-Fi 互联网连接。
有趣的是,重新启动可以修复它,尽管必须完全关闭/重新启动有点痛苦。
换句话说,当我从睡眠中醒来时,有时我的 HP Debian Buster v10.4 笔记本电脑无法重新连接到我的家庭接入点。这种情况发生的速度非常粗略,大约每 6 次过夜过夜中就有 1 次发生。
注意到 Wi-fi 已关闭后,单击rescan for wireless networks
并不能修复它。此外,iw wlan0 scan
, (或明确地iw dev wlan0 scan
)给出:'命令失败:网络已关闭(-100)'。
仔细研究我的输出,journalctl -n 1000 -u NetworkManager -u wpa_supplicant
很快就可以看到:“NetworkManager 状态现在为 ASLEEP”(即醒来时),第一个问题似乎出现在一行:“设备(wlan0):请求者接口状态:完成->禁用“。
我认为这应该是“...完成 -> 断开连接”,它出现在工作唤醒中,即当 WI-fi 在唤醒后再次正常工作时。
什么不能解决它:
- 注销并重新登录;
- 又睡又醒,
- 休眠,然后从中醒来
- 重新启动网络管理器(使用
$ sudo systemctl restart NetworkManager.service
) - 跑步
$ sudo nmcli networking on
- 删除并重新创建
wlan0
网络设备:iw dev wlan0 del
,然后iw phy phy0 interface add wlan0 type managed addr ca:xxx:4b
。即使这似乎有效,wi-fi 仍然没有。
我还检查了$ rfkill list
没有报告任何阻塞。
这是 nmcli 在失败(互联网关闭)状态时的状态报告。请注意下面的GENERAL.STATE。 (我混淆了真实地址。)
$ nmcli device show wlan0
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 00:26:##:##:##:2A
GENERAL.MTU: 1500
GENERAL.STATE: 20 (unavailable) <-- this is not right
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
...
此外,这是正常工作 wifi 连接的状态报告:
$ nmcli device show wlan0
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 00:26:##:##:##:2A
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected) <--- this is when it works
GENERAL.CONNECTION: Auto NETGEAR14
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 192.168.1.128/32
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.128/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 192.168.1.1/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.ROUTE[4]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]: 192.168.1.1
IP6.ADDRESS[1]: fe80::...:7f2a/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 600
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
有任何想法吗?有没有办法重新初始化phy0无线电驱动程序?
通过在连接消失时检查系统日志消息来调试此问题的最佳方法:
NetworkManager 不直接使用内核 Wi-Fi API,它依赖于 wpa_supplicant。可能
wpa_supplicant.service
是卡住了,或者一直崩溃,或者与另一个Wi-Fi 工具(例如 iwd、connman 或另一个应用程序意外启动的不同 wpa_supplicant 实例)发生冲突。您可以通过运行来增加 NetworkManager 的详细程度:
和 wpa_supplicant 通过运行:
此外,尝试完全绕过 NM & w_s 并直接要求内核扫描网络——如果有效,则问题很可能出在用户空间端;如果不是,则可能在驱动程序/硬件方面:
尝试更换您的 WI-FI 卡(硬件)。
我花了大约 20 美元买了一台新的,而且在你的笔记本电脑里很容易找到,(在你的电子管上搜索帮助)。我从旧卡上得到了零件#。您需要一些小型手表式螺丝刀。
拿到新卡已经两个月了,问题就解决了。
我的看起来像这样: