Answers:
您只需要重新启动Network Manager即可:
sudo service network-manager restart
您可以尝试切断设备的电源。假设你无法/不愿意物理断开的设备,应运行(作为root): iwconfig wlan0 txpower off
。然后,我将等待10-15秒钟,以确保引起问题的任何硬件问题均已停止,然后:iwconfig wlan0 txpower auto
。
或者,您可以简单地运行rfkill并阻止/取消阻止您的设备。为此,请运行rfkill block wifi
,然后按rfkill unblock wifi
。第二个选项应该更快,因为您只需在命令之间等待2-3秒,而不是10-15秒。实际上,尽管我怀疑这取决于您的WiFi硬件,但在我的计算机上根本不需要等待。也可以以普通用户身份执行此选项,而无需root用户。
您也可以重新启动NetworkManager。如果您将systemctl用作您的初始化系统(较新版本的Ubuntu),则可以使用systemctl restart NetworkManager
。否则,您可以使用sudo initctl restart network-manager
。如果您不知道使用什么初始化系统,请尝试两个命令并查看有效的方法。
基于先前链接建议以及先前链接的某些混合和匹配,创建了一个脚本。这适用于在Mint Linux 17.3下运行的我。
下面的文件,并没有需要root权限。它也只是重启的wifi 只有当它已经是了。现在,我只需要将此脚本添加到cron作业中,即可每隔15分钟左右检查一次wifi连接。
#!/bin/bash
wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr | wc -l)
if [ $wlan -eq 0 ]; then
nmcli nm wifi on
else
echo "interface is up"
fi
echo
自动(经修订)脚本)。
让我们找到用于无线连接的内核模块的名称:
sudo hwinfo --network
(hwinfo
如果没有,请安装软件包。)
在“驱动程序”行中查找模块名称。
现在卸载,然后重新加载模块。例如,我的模块名称是iwlwifi
您可能会很幸运,但是很可能会收到以下失败消息:
$ sudo modprobe -r iwlwifi
modprobe: FATAL: Module iwlwifi is in use.
因此,我们使用iwlwifi
以下命令查找其他模块:
$ lsmod |grep iwlwifi
iwlwifi 241664 1 iwldvm
cfg80211 765952 4 iwldvm,iwlwifi,mac80211,rtl8187
左侧是模块名称,右侧是使用它的其他模块。因此,让我们iwldvm
先尝试禁用:
$ sudo modprobe -r iwldvm
如果可行,那么我们现在可以成功禁用 iwlwifi
$ sudo modprobe -r iwlwifi
现在,以相反的顺序重新启用两个模块:
$ sudo modprobe iwlwifi
$ sudo modprobe iwldvm
这是唯一适用于我重置使用的低lelel设置(片段,速率)的过程iwconfig
。
它的有效作用是“重新加载驱动程序”。
使用“ systemctl restart NetworkManager”的解决方法对我在Debian Buster和Ubuntu 19.04下具有Broadcom和Atheros WiFi的两个不同笔记本上都有效,其中每四分之一左右的简历都会出现“ wifi不会在恢复时唤醒”的问题(=我通常先尝试创建一个桌面启动器来手动调用wifi重置,该方法可以正常工作,并且需要输入密码-但是后来我发现有人将重置诅咒放到运行系统的地方的一些注意事项恢复后的脚本。即,/lib/systemd/system-sleep/
看起来是放置脚本的好地方。而且,脚本应该更好地测试某些条件(通过cmdline参数获得),以了解是时候重置NetworkManager。为链接而不是剪切和粘贴表示歉意-我没有征求该作者的许可,他可能也很高兴为他在YouTube上所做的贡献(直截了当,并且叙述清楚)。
除此之外,我还注意到了一些非常简单直接的解决方案,可解决来自Ubuntu 16.04的原始问题:wifi.scan-rand-mac-address=no
NetworkManager.conf甚至just apt-get update && apt-get upgrade
。这些是针对16.04中特定错误的最佳解决方案。它们可能无法解决此类其他杂项问题,可以通过在挂起的每个恢复上重载(但相当迅速)重新启动NetworkManager来解决。
sudo systemctl restart NetworkManager
。