16.04升级后挂起后,Wifi无法工作


149

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


6
您是否在启动板上针对该问题提交了错误???


自Ubuntu 14以来,似乎就一直存在这个问题。
Dan Dascalescu

对于我来说,这在14.04 LTS下从未发生过。升级到16.04 LTS太好了,我会保留下来,但是它会忘记我的WiFi密码。该服务显然正在运行;只是它忘记了密码并且无法连接。我发布了这个信息: askubuntu.com/questions/934958/…-我不想处理黑名单或任何奇怪的事情。
SDsolar '17

Answers:


176

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
您是否尝试过简单地卸载wicd?
Joakim Koed

6
我会说不必为此而重新安装。我进行了全新安装,并在16.04上遇到了此问题。14.04从未有问题。
Michael Martin-Smucker's

3
有时它
有用

1
@mikeymop我也一直在想这个。我知道系统的某些部分仍在使用新贵,因此可能会触发某些问题。由于16.10已完全系统化并且没有错误,因此您可能是正确的。
Joakim Koed '16

1
我该如何删除它,这在我的系统上将不起作用
报价不能拒绝

15

@ 147pm您曾经做过这项工作吗?

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

我也确实看到您在KDE下没有问题。但是,我想知道以下解决方案是否对Gnome有帮助,因为该解决方案不是基于窗口管理器,桌面环境或applet。

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

$ sudo systemctl restart network-manager.service

没有为我工作。

但是,由于buzhidao的问题和信息在暂停后无法连接到Internet,并且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(型号:ath9k),这也许可以解释为什么wifi在暂停唤醒后继续为我工作。)

从我对另一篇文章的评论中可以看到,我想知道问题是否是Buzhidao和我本人之间的共同点:Realtek半导体器件。即使它们使用不同的模块,它们是否可能共享一些通用代码?还是现在以某种方式被较新的内核代码以不同的方式对待?

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

无论如何,只是在黑暗中开了一枪。如果您最终找到了答案,请告诉我们!谢谢。


1
我也有RTL8111 / 8168/8411以太网并sudo rmmod r8169 && sudo modprobe r8169解决了该问题。
lenooh

在带有KDE的Debian 9上,同样的问题。重新安装如上固定它。万分感谢。
sumitkm

我的计算机*也有RTL8111 / 8168/8411以太网设备,sudo rmmod r8169 && sudo modprobe r81691最后为我解决了该问题。在内核版本4.16之前没有此问题。(*带有GNOME,内核4.16和Realtek专有固件的 Debian 10 )
ossbuntu

为我工作的archlinux与ath10k_pci
没有人

6

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

case "${1}" in
    resume|thaw)
        # systemctl restart network-manager.service
        service NetworkManager restart
;;
esac

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

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


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

1
应该是/lib/systemd/system-sleep/15.04+
qwr

2

对我来说,这似乎是随机的,但是有时候如果我连接了wifi,它就会断开连接,或者如果我没有连接,它就不会显示网络。有时让我的笔记本电脑进入睡眠模式似乎可以触发它,但并非总是如此。

这些组合通常会使它再次运行而无需重新启动:

  • sudo iwlist $(ifconfig | grep -Po '^w\w+') scan
  • sudo service network-manager stop; sleep 5; sudo service network-manager start
    • 简单地打电话restart到这里似乎对我没有用。看起来它在关闭它之前尝试启动它,因此我在stop和之间有更多的停顿机会start
  • 在用户界面中关闭wifi;等待几秒钟;重新打开

这些似乎都不能始终如一地工作,但是我以最有可能成功的顺序列出了它们。


2

在Ubuntu 16.04上的工作方法:

创建服务: sudo nano /lib/systemd/system/wifi-resume.service

服务正在从以下位置调用程序:
/etc/init.d/network-manager

粘贴代码:

#/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的指示的[Install]目录中,并激活服务

之后,您可以使用以下方法检查状态: systemctl status wifi-resume.service


1

蓝牙存在相同的问题:挂起后,蓝牙鼠标不起作用。因此,我从上面得出了解决方案:

sudo nano /etc/systemd/system/bluetooth-resume.service

启用新服务

sudo systemctl enable bluetooth-resume.service

并编辑了服务

#/etc/systemd/system/bluetooth-resume.service
#sudo systemctl enable bluetooth-resume.service
[Unit]
Description=Restart bluethooth at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart bluetooth.service

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

我也尝试编辑...

sudo nano /etc/bluetooth/main.conf

并改变了

AutoEnable=true

但是,这对于“恢复问题”不起作用,并且对新的蓝牙设备也没有任何影响!


1

我在装有Ubuntu 16.04的笔记本电脑Dell Inspiron 15R上遇到了相同的问题。对我来说,工作是在第二个答复中报告的脚本

安装完脚本后,我尝试使用右上角菜单中的命令进行悬架,甚至合上嘴唇,从而解决了问题。

我不得不说问题是行为交替发生的(也就是说,有时在安装脚本之前就可以解决)。



0

暂停后,我在回到家庭wifi时遇到了同样的问题。尝试了其他各种建议的答案,这些答案偶尔会起作用,但并非总是如此。

最终,以下修复程序可以始终连接到wifi:

1)编辑此文件:

sudo vim /etc/NetworkManager/NetworkManager.conf

2)通过添加到它:

[device]
wifi.scan-rand-mac-address=no

0

现在可能很简单

sudo apt update
sudo apt upgrade

应该管用。

以我为例,在升级的软件包中bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.3),在此更新之后,wifi再次起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.