暂停后如何防止wifi睡眠


14

每次打开笔记本计算机盖子时,我都必须等待几秒钟以重新连接wifi。我记得在Windows中已经连接了。我需要一种方法来防止wifi暂停挂起。

我找到的最接近的答案是/ubuntu//a/961460/613425,但这没有用。我也在iwconfig wlan0 poweroff答案中尝试了,但即使在重启之前也无法正常工作。


因此,与您上面链接的问题不同,您的WiFi并非不稳定。打开盖子并将笔记本电脑从睡眠状态唤醒后,它可以正常工作。您希望WiFi连接更快。当笔记本电脑在睡眠状态下移动20英里时会发生什么?它仍然保持连接状态吗?
user68186

@ user68186它永远不会保持连接状态,即使在我重新打开盖子后也位于同一位置。我必须等待它再次连接。
Guerlando OC

您是说它永远不会保持连接状态吗?我曾经认识一个曾经在睡觉时讲话的人,但是我的笔记本电脑却不这样做。我认为除非您完全停止笔记本电脑的睡眠,否则您想要的东西是不可能的。
user68186

1
@SebastianStark Razer Blade Stealth 2016 12.5“。它在Windows上具有预期的行为
Guerlando OC

1
输出到iwconfig什么?请编辑您的问题以在此处而不是在注释中提供输出。
Fabby

Answers:


14

睡眠后启用WiFi的方法有两种。第一个是Network Manager的常见补丁,您可以通过列出文件来看到我所做的:

关闭或启用节能功能,如下所示:

$ cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 3
# Slow sleep fix: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
#wifi.powersave = 2
  • 编辑上面显示的网络管理器文件。
  • WiFi.powersave从更改23(启用省电)。
  • 如果已将其设置为3尝试将其设置为2(禁用省电)。
  • 保存文件后运行 sudo systemctl restart NetworkManager

第二个是systemd从挂起状态恢复时重新加载WiFi内核模块的脚本。它来自以下答案:Wifi可用网络没有突然出现

该脚本是为iwlwifi`编写的,它是常见的Intel驱动程序名称。如果您的身份不同,请在下面更改该名称:

#!/bin/sh

# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi which can be flakey after a long suspend.
# DATE: Apr 1, 2017. Modified August 30, 2017.

MYNAME=$0

restart_wifi() {
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'
    /sbin/modprobe -v -r iwldvm # This removes iwlwifi too
    /sbin/modprobe -v iwlwifi   # This starts iwldvm too
#    systemctl restart NetworkManager.service
    /usr/bin/logger 'systemctl restart NetworkManager.service (SUPPRESSED)'
    /usr/bin/logger $MYNAME 'restart_wifi END'
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
    hibernate|suspend|pre*)
      ;;
    resume|thaw|post*)
      restart_wifi;;
esac

注意:有时仅需要重置网络管理器即可。在这种情况下,通过删除取消注释上面的行#。然后,通过将#这两行的开头放在注释中,将其注释掉。

您需要创建此脚本,叫iwlwifi-reset,有sudo权力,并将其保存到该目录/lib/systemd/system-sleep。然后使用以下命令将其标记为可执行文件:

chmod a+x /lib/systemd/system-sleep/iwlwifi-reset

Fedora 31 + XFCE遇到了相同的问题(不是gnome shell),第一种方法解决了它。
jherek


2

首先创建一个新脚本并使其可执行。

sudo touch /usr/lib/pm-utils/sleep.d/wakewifi
sudo chmod a+x /usr/lib/pm-utils/sleep.d/wakewifi

然后编辑脚本

sudo nano /usr/lib/pm-utils/sleep.d/wakewifi

并使其看起来像这样。

 #!/bin/sh

    case "$1" in
        resume)
            nmcli radio wifi on
    esac

确保nmcli radio wifi on是正确的命令,尝试进入睡眠模式,启动计算机并执行

sudo nmcli radio wifi on

如果您的计算机随后连接到正确的wifi,则这可能是您的可选解决方案。您的计算机应自动连接。到您保存的Wi-Fi接入点。

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.