此特定版本的“挂起后无法工作”是在升级到 16.04 后出现的。升级似乎包含一个 Wicd 小程序(添加到 Metacity Classic Gnome 任务栏的常规网络图标旁边),但挂起后似乎无法工作。Asudo service network-manager restart
重复了此问题。需要完全重启才能让 Wifi 再次运行。有人知道为什么吗?
答案1
16.04 在 systemd 上运行。尝试以下操作:
sudo systemctl restart network-manager.service
如果有效,您可以创建一个脚本来实现自动化。
打开终端并输入以下内容:
sudo nano /etc/systemd/system/wifi-resume.service
现在右键单击将脚本粘贴到那里。按 CTRL + X 退出并按 Y 保存。现在激活它:sudo systemctl enable wifi-resume.service
脚本:
#/etc/systemd/system/wifi-resume.service
#sudo systemctl enable wifi-resume.service
[Unit]
Description=Restart networkmanager at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service
[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
希望这有帮助。它在我的笔记本电脑上运行良好。
答案2
@147pm 你成功让它工作了吗?
我发现我遇到了一个非常类似的问题,尽管我使用的是 Kubuntu 16.10(基于 KDE,而不是 Gnome),并且使用的是 HP ProBook 笔记本电脑。而且,与您不同,挂起/唤醒后死机的不是我的 Wifi,而是我的以太网端口。不过,我想知道它们是否相关。
我也确实看到您在 KDE 下没有遇到问题。但我想知道下面的解决方案是否对 Gnome 有帮助,因为该解决方案不基于窗口管理器、桌面环境或小程序。
首先,只需确认重新启动网络管理器服务..
$ sudo systemctl restart network-manager.service
对我没用。
不过,我确实找到了一个可行的答案,感谢 buzhidao 的问题和信息暂停后无法连接到互联网以及 GAD3R 的评论。
利用他们的信息,我发现首先研究我正在运行哪种以太网硬件和驱动程序/模块,然后删除并重新加载该模块,这对我来说是有效的(尽管对 buzhidao 没有用):
无线上网:
$ lspci -knn | grep Net -A2
以太网:
$ lspci -knn | grep Ether -A2
我使用的是第二个(以太网),我发现:
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)
Subsystem: Hewlett-Packard Company RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [103c:1944]
Kernel driver in use: r8169
Kernel modules: r8169
所以我重新加载了“r8169”驱动程序:
$ sudo rmmod r8169 && sudo modprobe r8169
瞧!成功了。我的以太网端口/连接恢复了(挂起/唤醒后),无需重启。
(我也没有 Realtek wifi 设备,而是 Qualcomm Atheros(mod:ath9k),这也许可以解释为什么 wifi 在从挂起唤醒后仍能继续工作。)
正如你从我在另一篇文章中的评论中看到的,我想知道问题是否出在我和 Buzhidao 之间的共同元素:Realtek Semiconductor 设备。即使它们使用不同的模块,它们可能共享一些通用代码?或者甚至在某种程度上被较新的内核代码区别对待?
你自己有基于 Realtek 的 wifi 设备吗?(使用上面的 lspci)?重新安装模块(上面的 rmmod/modprobe)成功了吗?
无论如何,这只是一个猜测。如果你找到了最终的答案,请告诉我们!谢谢。
答案3
为了在无访问权限的环境中恢复后自动重新启动 NetworkManager sudo
,请在 (任意名称)中创建一个脚本/etc/pm/sleep.d
,通过 设置可执行位chmod +x
,并插入以下内容:
case "${1}" in
resume|thaw)
# systemctl restart network-manager.service
service NetworkManager restart
;;
esac
对我来说,这条service
线路很管用,但systemctl
对你来说可能效果更好。
答案4
Ubuntu 16.04上的工作方法:
创建服务:sudo nano /lib/systemd/system/wifi-resume.service
该服务正在从以下位置调用程序:
/etc/init.d/网络管理器
粘贴代码:
#/lib/systemd/system/wifi-resume.service
#sudo systemctl enable wifi-resume.service
[Unit]
Description=Restart network-manager at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager
[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
然后启用服务:
sudo systemctl enable /lib/systemd/system/wifi-resume.service
这将在 /etc/systemd/system 中指定的 [安装] 目录中创建符号链接,并激活该服务
之后您可以使用以下命令检查状态:systemctl status wifi-resume.service