我曾经在此HP Compaq 610上安装了Fedora 14,并且挂起功能正常运行。现在,我已经安装了Scientific Linux 6.1暂停功能,该功能不再可用。如何调试/修复它?
我曾经在此HP Compaq 610上安装了Fedora 14,并且挂起功能正常运行。现在,我已经安装了Scientific Linux 6.1暂停功能,该功能不再可用。如何调试/修复它?
Answers:
有许多方法可以处理挂起和休眠功能,许多旧方法已被弃用。这使得寻找解决方案变得困难,因为似乎每个解决方案都与下一个完全无关。照这样说...
从http://pm-utils.freedesktop.org/wiki/提倡的当前推荐的方法应该可用于最新发行版。我将首先检查您是否已pm-utils
安装,以及所包含的命令是否按预期运行。
查看软件包是否已安装,请在终端中输入此命令
rpm -qa | grep pm-utils
这应该输出您已安装的版本。如果没有获得预期的输出,则需要安装该软件包。
sudo yum install pm-utils
验证通过后,请测试您的挂起能力。
sudo pm-suspend
如果您不暂停,但没有得到任何输出原因,请检查您最近的dmesg输出
dmesg | tail -50
一旦获得一些线索,这应该会帮助您入门,它很容易深入。发回有关您的结果的评论,我可以帮助您解决其他问题。
dmesg
输出会告诉你发生了什么幕后。更重要的是,特别是失败的地方。O和BTW,您不需要devel软件包。编译代码时只需要它们,因此请清除。从这里可以走很多路,我只是不给你发错树皮而已。
pm-suspend
从外壳而不是通过GNOME菜单运行命令?echo -n "mem" >/sys/power/state
以root身份尝试。另外,如果您正在使用acpi
,则可以acpi_listen
查看正在生成哪些事件,例如在关闭盖子时。
以根用户身份尝试:
PM_DEBUG=true pm-suspend
然后检查/var/log/pm-suspend.log
可能出问题的提示。
如果您可以暂停但不能恢复,那么Ubuntu Wiki上有一篇很好的文章介绍了如何调试此问题。
如果只想在挂起/恢复系统后才能使用它,则可以尝试以下操作:
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb 7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb 7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb 7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb 7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb 7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb 7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
正如Mika所建议的那样,作为根:
PM_DEBUG=true pm-suspend
内的详细信息:
/var/log/pm-suspend.log
在这种情况下,您正在寻找
[...] service [servicename] suspend suspend success
结束,并且
[...] service [servicename] suspend resume success
开始。在两者之间的某个地方,您可能会发现返回错误的呼叫,此时挂起被禁止。在这种情况下,您可能会将挂起的更改回滚。找出导致错误的服务调用,然后在vi中打开并查看它。
我遇到了同样的问题,即xboxdrv
在Ubuntu 12.04上安装后,在规则中/etc/pm/sleep.d/
进行的调用试图停止从未启动或不存在的服务,在本例中为xboxdrv
。事实证明,由于没有/lib/modules/uinput.ko
模块,因此永远无法启动它,因为该模块已合并到内核中。/etc/pm/sleep.d/xboxdrv
当case与调用的“ suspend”相匹配时,这将导致case语句抛出错误service xboxdrv stop
。在该行的前面#
绕过该语句,但要付出的代价是必须在挂起时拔出并重新插入控制器,然后再恢复。