我将系统从 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