从休眠状态恢复后 Wifi 丢失

从休眠状态恢复后 Wifi 丢失

从休眠状态恢复时,Wi-Fi 丢失。

无法从 appindicator 或 >setting >Network 打开 Wi-Fi。

通过热键(Fn+ F2)打开/关闭也是没用的。

我必须先暂停,然后从暂停状态恢复,然后 Wi-Fi 才能再次工作。

我的平台:Ubuntu 14.04 LTS。

如何解决wifi从休眠恢复后仍然自然工作(无需干预)的问题。

按照威廉姆森的指示,

sudo gedit /etc/pm/power.d/wireless

,无线”文件不是空白的,它显示:

#!/bin/sh
# tlp - if tlp is enabled, override corresponding script
#       in /usr/lib*/pm-utils/power.d/

CONFFILE=/etc/default/tlp LIBDIRS='/usr/lib /usr/lib64'

for d in ${LIBDIRS}; do
    if [ -d "${d}/pm-utils/power.d" ]; then
        blocked="${d}/pm-utils/power.d/${0##*/}"
        break
    fi done

if [ -n "$blocked" ] && [ -x "$blocked" ]; then
    # else nothing to disable -> don't read $CONFFILE

    if [ -e "$CONFFILE" ] && . "$CONFFILE" -- && [ "$TLP_ENABLE" = '1' ]; then
        # TLP is enabled -> disable $blocked
        echo "Notice: '${blocked}' disabled by TLP."
    else
        exec "$blocked" $*
    fi fi

exit 0

答案1

打开终端并输入以下命令;我们需要查看该卡上是否启用了电源管理。

iwconfig wlan0

通过运行此代码,我们应该看到类似这样的输出:

jayadmin@jayadmin-OptiPlex-GX280:~$ iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"MU WiFi"  
      Mode:Managed  Frequency:2.412 GHz  Access Point: 18:33:9D:C6:76:72   
      Bit Rate=65 Mb/s   Tx-Power=20 dBm   
      Retry  long limit:7   RTS thr:off   Fragment thr:off
      Power Management:off
      Link Quality=40/70  Signal level=-70 dBm  
      Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:18  Invalid misc:80   Missed beacon:0

如果电源管理处于打开状态,则运行以下命令(您需要 SU 权限才能执行此操作,因此需要使用“sudo”命令):

sudo iwconfig wlan0 power off

您必须在此命令后输入您的密码;如果没有“sudo”,您可能没有用户权限来运行它。

要使此设置永久生效,您必须添加/创建一个系统文件,以防止 Ubuntu 在重启后使用 PM。为此,请打开终端(如果您已将其关闭)并输入以下命令:

sudo gedit /etc/pm/power.d/wireless

这将打开一个带有空白文件的文本编辑器。将以下行插入到文件中:

#!/bin/sh


/sbin/iwconfig wlan0 power off

现在,保存文件并关闭 gedit 和终端窗口。即使重启后 PM 也应该被禁用。

听起来 Ubuntu 和您的特定显卡在休眠后恢复电源管理方面存在问题。我的笔记本电脑也遇到过同样的问题,我禁用了 PM,问题就解决了。

我知道这不是您想要的“自然工作”非命令行干预,但它应该可以解决您的问题。有时您必须使用终端来解决奇怪的问题。

附加信息

@常绿

您的无线文件中提到的 TLP 是 Ubuntu 中的高级电源管理实用程序。这可能是您的无线网卡无法正常工作的问题;您的 wifi 卡可能不完全兼容。

在终端中运行此代码(如果有效的话,这应该是一个永久修复):

sudo gedit /etc/default/tlp

在该文件中,搜索以下两行。它们应该在一起:

WIFI_PWR_ON_AC=5
WIFI_PWR_ON_BAT=5

请注意,如果我没记错的话。1已禁用, 尽管5已启用. 更改5在两行中1然后保存文件并exit退出终端。

为了安全起见,请重新启动计算机以确保更改在您的系统上生效。如果不替换这两行,您更改 wifi PM 设置所做的任何其他操作都将被 TLP 脚本阻止。

我希望这能有所帮助。我今晚剩下的时间都不在我的 Ubuntu 机器旁,所以如果这没有帮助,那么我下次尝试解决这个问题将会被推迟几个小时。你可以完全用我的第一个答案中的文本替换 /etc/pm/power.d/wireless 中找到的文本,但它将不会除非文件中的此设置tlp被改变,否则它将正常工作。

答案2

我一直遇到同样的问题,最后找到了一个完整的解决方案,如下所示:

  1. Ctrl按+ Alt+进入终端T

  2. 打开一个新.txt文件来写入新命令。(您可以更改文件名,但仍必须以此开头,99-因为系统按字母顺序工作,我们需要这是最后一个:

    sudo nano /etc/pm/sleep.d/99_synclient` 
    
  3. 将以下行粘贴到空.txt文件中:

    #!/bin/bash
    
    case "$1" in
      suspend|hibernate)
      ;;
    
      resume|thaw)
        sudo -u <USERNAME> env DISPLAY=:0 service network-manager restart 
      ;;
      *) 
        exit $NA
      ;;  
    esac
    

    请将以上内容替换为您的用户名,不带<>

  4. 使文件可执行:

    sudo chmod +x /etc/pm/sleep.d/99_synclient
    

    如果您之前已经更改过名称,请不要忘记更改。

您已完成!休眠后,您的 WiFi 应该可以正常工作。

答案3

我会跑

sudo service network-manager restart

sudo使其成为超级用户或 root,因此您可以运行它。service运行脚本,删除大多数环境变量并将目录设置为/network-manager告诉它我们想要的服务,然后restart停止并启动该过程。

相关内容