16.04 升级后暂停后 Wifi 不起作用

147*_*7pm 163 wireless networking gnome-classic 16.04

升级到 16.04 后出现了这个特定版本的“挂起后不起作用”。似乎升级包括一个 Wicd 小程序(添加到 Metacity Classic Gnome 任务栏以及常规网络图标),但在暂停后似乎不起作用。Asudo service network-manager restart重复了这个问题。需要完全重新启动才能让 Wifi 再次运行。任何想法为什么?

Joa*_*oed 185

16.04 在 systemd 上运行。请尝试以下操作:

sudo systemctl restart network-manager.service
Run Code Online (Sandbox Code Playgroud)

如果这有效,您可以创建一个脚本来自动化它。

打开终端并键入以下内容:

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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。它适用于我的笔记本电脑。

  • 我会说不要为此费心重新安装。我进行了全新安装,但在 16.04 上遇到了这个问题。14.04 从来没有问题。 (6认同)
  • 有时有效,有时无效:( (3认同)
  • 您是否尝试过简单地卸载 wicd? (2认同)

小智 26

@147pm 你有没有做过这个工作?

我发现我有一个非常相似的问题,尽管我使用的是 Kubuntu 16.10(基于 KDE,而不是 Gnome)和 HP ProBook 笔记本电脑。而且,与您不同的是,挂起/唤醒后死掉的不是我的 Wifi,而是我的以太网端口。不过,我想知道它们是否相关。

我也看到你在 KDE 下没有这个问题。但我很想知道下面的解决方案是否对 Gnome 有帮助,因为该解决方案不是基于窗口管理器、桌面环境或小程序。

首先,只是确认重新启动网络管理器服务..

$ sudo systemctl restart network-manager.service
Run Code Online (Sandbox Code Playgroud)

对我不起作用。

但是,我确实找到了一个有效的答案,这要归功于 buzhidao在暂停后无法连接到互联网上的问题和信息以及 GAD3R 在那里的评论。

使用他们的信息,我发现首先研究我正在运行的以太网硬件和驱动程序/模块,然后删除并重新加载该模块,确实对我有用(尽管它不适用于 buzhidao):

无线上网:

$ lspci -knn | grep Net -A2
Run Code Online (Sandbox Code Playgroud)

以太网:

$ lspci -knn | grep Ether -A2
Run Code Online (Sandbox Code Playgroud)

其中的第二个(以太网)是我使用的,我发现:

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
Run Code Online (Sandbox Code Playgroud)

所以我重新加载了“r8169”驱动程序:

$ sudo rmmod r8169 && sudo modprobe r8169
Run Code Online (Sandbox Code Playgroud)

瞧!这奏效了。我的以太网端口/连接恢复活动状态(挂起/唤醒后)而无需重新启动。

(我也没有 Realtek wifi 设备,而是 Qualcomm Atheros(mod:ath9k),这也许可以解释为什么 wifi 在从挂起唤醒后继续为我工作。)

从我对另一篇文章的评论中可以看出,我想知道问题是否出在不至道和我自己之间的共同元素:Realtek Semiconductor 设备。即使它们使用不同的模块,它们也可能共享一些通用代码?或者现在以某种方式被较新的内核代码区别对待?

您自己有基于 Realtek 的 wifi 设备吗?(使用上面的 lspci)?你有没有运气重新安装模块(上面的rmmod/modprobe)?

无论如何,只是在黑暗中射击。如果您为自己找到了最终答案,请告诉我们!谢谢。


krl*_*mlr 6

要在没有sudo访问权限的环境中恢复后自动重新启动 NetworkManager ,请在/etc/pm/sleep.d(任何名称)中创建一个脚本,通过 设置可执行位chmod +x,并插入以下内容:

case "${1}" in
    resume|thaw)
        # systemctl restart network-manager.service
        service NetworkManager restart
;;
esac
Run Code Online (Sandbox Code Playgroud)

对我来说,这service条线有效,但systemctl可能对你更有效。

来源:https : //askubuntu.com/a/92235/30266

  • `service NetworkManager restart` 对我有用,但脚本的位置没有(在 16.04 上)。我不得不将脚本移动到`/lib/systemd/system-sleep/script-name-here`。在这种情况下,脚本的第一个参数是 `[pre | post]`,所以我不得不将 case 语句更改为 `case "${1}" in ... post) ...`。我还将内部语句包装在 `case "${2}" in ... suspend) ...` 中。 (2认同)