如何调试暂停?

我已经使用Ubuntu大约五年了,我仍然无法在我想要的时候暂停它。 令我非常恼火的是,我可以编程风暴,以其他许多方式破解机器,然而,当我试图让它暂停或调试暂停时,我失败了。

我需要帮助。

我从哪里开始发现问题? 我该怎么做才能解决这个问题? 我正在为此付出一笔赏金,因为我在这个问题上已经失去了几个小时的生命,而且一直让我的电脑一直都很糟糕。

症状:

  • 按暂停使我的计算机进入闪烁光标状态,风扇正在运行,似乎HD已关闭(我认为),我无法做任何事情从此状态恢复(缺少硬重启)。
  • 可能相关:即使在关机后我的粉丝仍然保持打开状态,即便如此,我还需要按下电源按钮五秒才能再次启动它。
  • 我不知道要调查问题的日志是什么,我想他们无论如何都会在重启时受到伤害。

请帮忙。 这让我完全疯了,我已经和它一起生活了一年多。

来自https://wiki.ubuntu.com/UnderstandingSuspend

  • 最大的问题是图形硬件
  • 尝试暂停而不受限制设备(nvidia,fglrx)
  • 内核不知道如何处理图形设备
  • BIOS知道如何恢复图形状态
    • 通过16位分段模式,C000:xxxx包含可见的64kvideoROM。
    • 在C000:0003开始执行,通常重新发布videoBIOS(/ usr / sbin / vbetoolpost)
      • 在64位模式下更难,因为需要模拟16位调用。
      • 一些内存在3-4G范围内,这需要在模拟时重新映射以避免命中映射在同一空间中的内核。 ovideoBIOS可能已从C000窗口中分页POST代码ovidia BIOS重写ROM只返回停止重新发布尝试从控制台暂停(通过/etc/acpi/sleep.sh)
    • 确保你已退出Xorg(或使用“force”参数运行sleep.sh)
    • 如果videoBIOS没有处于正常状态,返回Xorg可能会挂起硬件
    • 继续测试封锁(如果没有封锁,内核挂起)
    • 如果背光没有重新打开,videoBIOS可能没有重新初始化
    • 如果屏幕为空白但有背光,请尝试按输入或在虚拟终端之间切换
    • 尝试在单用户模式下(通过将“single”附加到grub内核启动选项)
    • 有关操作的详细信息,请尝试bash -x /etc/acpi/sleep.sh> /root/sleep.log 2>&1
    • 查看与/usr/share/acpi-support/*.config中的设置匹配的dmidecode信息
    • 如果单用户模式控制台暂停或恢复失败
    • PM跟踪(echo“1”> / sys / power / pm_trace)将设备哈希值写入系统计时器
    • 试图暂停
    • 在失败之后,在重新启动时,检查dmesg输出中的“设备哈希”条目以跟踪在恢复期间挂起系统的设备。
    • 意识到这将重置系统时钟,并且fsck会惊慌失措(“已经过了31337天没有fsck”)。 考虑tune2fs -c 0 / dev / your / filesystems。

你可以在这里和这里找到很多指导方针/建议。

从您的描述中,听起来好像您的ACPI无法正常工作,或者内核驱动程序阻止完全挂起。 第二个链接显示了如何处理这类问题。

症状:

  • 按暂停使我的计算机进入闪烁光标状态,风扇正在运行,似乎HD已关闭(我认为),我无法做任何事情从此状态恢复(缺少硬重启)。
  • 可能相关:即使在关机后我的粉丝仍然保持打开状态,即便如此,我还需要按下电源按钮五秒才能再次启动它。
  • 我不知道要调查问题的日志是什么,我想他们无论如何都会在重启时受到伤害。

我的许多Linux问题的网站是Arch Linux。 以下是与您类似的暂停/恢复问题 :

从暂停中立即唤醒

对于某些带有LynxPoint和LynxPoint-LP芯片组的Intel Haswell系统,报告了暂停后的瞬时唤醒。 它们与错误的BIOS ACPI实现以及xhci_hcd模块在引导期间如何解释它相关联。 作为一个变通报告的受影响系统被内核XHCI_SPURIOUS_WAKEUP添加到黑名单(名为XHCI_SPURIOUS_WAKEUP )。[ 2 ]

例如,如果在挂起期间插入USB设备并且启用了ACPI唤醒触发,则可能发生瞬时恢复。 如果不在黑名单中,这种系统的可行解决办法是禁用唤醒触发器。 禁用通过USB唤醒的示例如下所述。[ 3 ]

要查看当前配置:

 $ cat /proc/acpi/wakeup Device S-state Status Sysfs node ... EHC1 S3 *enabled pci:0000:00:1d.0 EHC2 S3 *enabled pci:0000:00:1a.0 XHC S3 *enabled pci:0000:00:14.0 

相关设备是EHC1EHC2XHC (用于USB 3.0)。 要切换状态,您必须以root身份将设备名称回显到文件。

 # echo EHC1 > /proc/acpi/wakeup # echo EHC2 > /proc/acpi/wakeup # echo XHC > /proc/acpi/wakeup 

这应该导致暂停工作。 但是,此设置只是临时的,必须在每次重新启动时设置。 要自动执行此操作,请查看systemd#Writing unit files 。 有关可能的解决方案和更多信息,请参阅BBS线程 。


上面关于Suspend / Resume的整个Arch Linux文章是很多领域的一个很好的参考:

 1 Low level interfaces 1.1 kernel (swsusp) 1.2 uswsusp 2 High level interfaces 2.1 systemd 3 Hibernation 3.1 About swap partition/file size 3.2 Required kernel parameters 3.2.1 Hibernation into swap file 3.3 Configure the initramfs 4 Troubleshooting 4.1 ACPI_OS_NAME 4.2 VAIO Users 4.3 Suspend/hibernate doesn't work, or not consistently 4.4 Wake-on-LAN 4.5 Instantaneous wakeups from suspend