如何防止 Wi-Fi 挂起后进入睡眠状态

如何防止 Wi-Fi 挂起后进入睡眠状态

每次打开笔记本电脑时,我都必须等待几秒钟才能重新连接 wifi。我记得在 Windows 中它已经连接了。我需要一种方法来防止 wifi 在挂起时断开连接。

我找到的最接近的答案是https://askubuntu.com/a/961460/613425但它不起作用。我也尝试了iwconfig wlan0 poweroff答案中的方法,但在重启之前它不起作用。

答案1

有两种方法可以在睡眠后启用 WiFi。第一种方法是网络管理器的常见补丁,您可以看到我通过列出文件来制作补丁:

关闭或启用省电功能,如下图所示:

$ 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 内核模块的脚本。它来自这个答案:Wi-Fi 可用网络突然不显示

此脚本是为 iwlwifi` 编写的,这是常见的英特尔驱动程序名称。如果您的名称不同,请在下面更改该名称:

#!/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

答案2

我认为这与 systemd 有关。您可以编写一个脚本,在挂起后启动 wifi 设备。先尝试手动执行此操作。

答案3

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

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 无线电 wifi 开启是正确的命令,尝试进入睡眠模式,启动计算机并执行

sudo nmcli radio wifi on

如果您的计算机连接到正确的 wifi,那么这可能是一个可选的解决方案。您的计算机应该自动连接到您保存的 wifi 接入点。

相关内容