升级后的 Ubuntu 16.04 有时无法睡眠

升级后的 Ubuntu 16.04 有时无法睡眠

我将系统从 15.10(Ubuntu + xfce = XUbuntu)升级到 16.04,之后,当我通过“开始菜单 > 关闭 > 睡眠”将系统发送至睡眠状态时,屏幕变为空白,硬件继续运行(我听到风扇在转动)。我无法切换到控制台(ctrl + alt + f2)或执行任何其他操作。我正在寻找如何追踪此问题的方法。我在以下日志中没有找到任何内容:

/var/log/syslog.1

May  1 01:05:01 lampa CRON[7380]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4749] manager: sleep requested (sleeping: no  enabled: yes)
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4749] manager: sleeping...
May  1 01:14:27 lampa whoopsie[796]: [01:14:27] offline
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4750] manager: NetworkManager state is now ASLEEP
May  1 01:14:27 lampa systemd[1]: Reached target Sleep.
May  1 01:14:27 lampa systemd[1]: Starting Suspend...
May  1 01:14:27 lampa systemd-sleep[7497]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
May  1 01:14:27 lampa systemd-sleep[7499]: /lib/systemd/system-sleep/wpasupplicant failed with error code 255.
May  1 01:14:27 lampa systemd-sleep[7497]: Suspending system...

/var/log/pm-suspend.log.1

最后一行太旧了,来自:2016 年 4 月 26 日星期二 19:44:13 CEST:已完成。文件“pm-suspend.log”为空。

/var/log/kern.log

...
Apr 30 21:26:34 lampa kernel: [ 8420.249061] Key type cifs.idmap registered
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4749] manager: sleep requested (sleeping: no  enabled: yes)
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4749] manager: sleeping...
May  1 01:14:27 lampa NetworkManager[884]: <info>  [1462058067.4750] manager: NetworkManager state is now ASLEEP
May  1 08:01:21 lampa kernel: [    0.000000] Initializing cgroup subsys cpuset
...

我正在寻找 Xorg 日志,但我不知道哪些日志行属于这个时间点。当我按文件日期查看它(文件 Xorg.0.log 和 Xorg.0.log.old)时,这些文件很短且没有错误,它们最终显示:

[    11.084] (II) This device may have been added with another device file.
[    12.912] (II) RADEON(0): Allocate new frame buffer 2048x768 stride 2048
[    12.912] (II) RADEON(0): VRAM usage limit set to 931309K
[  1258.032] (II) AIGLX: Suspending AIGLX clients for VT switch
[  1259.227] (II) AIGLX: Resuming AIGLX clients after VT switch

[    10.176] (II) RADEON(0): Allocate new frame buffer 2048x768 stride 2048
[    10.176] (II) RADEON(0): VRAM usage limit set to 931309K

消息

我在我的系统上找不到 dmesg.0,我只看到“dmesg”,而且它是空的。

下一步该看哪儿?

编辑:我发现只有在我运行“wine 模拟器和 battle.net 游戏星际争霸 2”后才会发生这种情况。我尝试终止所有在我玩游戏后产生并保留的进程。我想知道我的显卡是否没有切换到某种无法休眠的模式。

答案1

我仍然有这个问题,但已经测试了许多可能的修复方法。问题的本质是暂停作业失败,挂起。

我试过了逐行检查内核日志,仍然不知道到底是什么原因造成的。我以为问题出在视频上,但现在怀疑是网络和/或 USB-C 支持。

当挂起失败时,重新登录,打开终端。如果在 ps aux 输出中看到类似这样的内容,则说明您处于相同的情况。

$ ps aux | grep sus
root     22926  0.0  0.0   8668   840 ?        Ss   23:07   0:00 /lib/systemd/systemd-sleep suspend

该作业 22926 可以被终止,这将导致 PC 立即挂起。

$ sudo kill -9 22926

本周,我找到了一个避免这种情况的好方法。创建一个如下脚本文件:

sudo /etc/init.d/network-manager stop
sudo /etc/init.d/networking stop
sudo systemctl suspend

对我来说,这减少了暂停时的延迟,而且它从未失败过

重新启动时,您需要记住手动重新启动网络。

sudo /etc/init.d/network-manager stop
sudo /etc/init.d/networking stop
sudo /etc/init.d/networking start
sudo /etc/init.d/network-manager start

这再次告诉网络关闭,只是为了好玩,然后重新启动它。

这是一个高级解决方案。我深入研究过,更改了暂停脚本中的许多细节。没有比这个更有效的了。

我发现的另一个有趣的帖子是硬件设备出现故障并导致错误唤醒。我试过了,但没有任何效果。如果这是真正的问题,我认为暂停作业不会失败。

很多人都有同样的问题,似乎有很多可能的原因。查看这个 Ask Ubuntu 搜索. 我最喜欢的一些:

答案2

您可能会遇到这个错误

要修复,请尝试安装新内核。

64位系统命令:

cd /tmp

wget \
kernel.ubuntu.com/~kernel-ppa/mainline/v4.5.2-wily/linux-headers-4.5.2-040502_4.5.2-040502.201604200335_all.deb \
kernel.ubuntu.com/~kernel-ppa/mainline/v4.5.2-wily/linux-headers-4.5.2-040502-generic_4.5.2-040502.201604200335_amd64.deb \
kernel.ubuntu.com/~kernel-ppa/mainline/v4.5.2-wily/linux-image-4.5.2-040502-generic_4.5.2-040502.201604200335_amd64.deb

sudo dpkg -i linux-headers-4.5*.deb linux-image-4.5*.deb

资料来源:Padraig Galvin,错误报告评论#26

答案3

这对我有用(Xubuntu 16.04):

sudo apt-get remove light-locker
sudo apt-get install xscreensaver

答案4

我遇到过同样的问题。

Sep 26 17:26:15 pavel-kjsdfk systemd-sleep[8022]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
Sep 26 17:26:15 pavel-kjsdfk systemd-sleep[8023]: /lib/systemd/system-sleep/wpasupplicant failed with error code 255.

因此,我整天都在寻找解决方案,但都无济于事。后来我找到了一个可疑的解决方案,但它确实有效!

打开/lib/systemd/system-sleep/wpasupplicant

从文件中删除/sbin/wpa_cli和,如下所示:resume

#!/bin/sh
set -e

if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
    case "$1" in
        pre) /sbin/wpa_cli suspend ;;
        post) /sbin/wpa_cli resume ;;
    esac
fi

变成:

#!/bin/sh
set -e

if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
    case "$1" in
        pre) suspend ;;
        post) ;;
    esac
fi

相关内容