如何防止UPS通过USB唤醒计算机?

如何防止UPS通过USB唤醒计算机?

我将 Eaton 3S 700 UPS 通过 USB 电缆插入 Windows 7 Pro 64 位计算机,我无法阻止 UPS 不断唤醒计算机。当 UPS 处于电池模式和市电模式且电池充电时,都会发生这种情况。计算机进入睡眠模式后几秒或几分钟会自动唤醒。

根据 Windows 设备管理器设置(能源管理选项卡),不允许UPS唤醒计算机,只有网络适配器和鼠标可以:

C:\>powercfg -devicequery wake_armed
Realtek RTL8168D/8111D Family PCI-E Gigabit Ethernet NIC (NDIS 6.20)
HID-compliant mouse

在对 USB 设备唤醒功能设置进行一些测试后,我发现仅当允许至少一个 USB 设备(鼠标或键盘)唤醒计算机时才会出现此问题。当网络适配器(Realtek RTL8168D/8111D 系列 PCI-E 千兆以太网网卡 (NDIS 6.20)) 是唯一允许的设备,计算机将保持睡眠模式,并且只能通过电源按钮或网络唤醒魔术包唤醒。但这只是一种解决方法,我不想满足于此。

系统被 UPS 唤醒后,我立即获取了一些数据:

C:\>powercfg -lastwake
Wake History Count - 1
Wake History [0]
  Wake Source Count - 1
  Wake Source [0]
    Type: Device
    Instance Path: USB\ROOT_HUB20\4&28734d27&0
    Friendly Name:
    Description: USB Root Hub
    Manufacturer: (Standard USB Host Controller)

事件查看器:

系统已从睡眠状态恢复。

睡眠时间:2017-02-18T17:55:45.477601500Z
唤醒时间:2017-02-18T17:56:31.983600900Z

唤醒源:设备 -USB Root Hub

我尝试了几乎所有的建议这里那里(检查计划任务、禁用唤醒定时器、更新视频驱动程序、更新 BIOS、尝试一些控制面板电源管理调整、启用/禁用休眠、启用/禁用混合睡眠)但毫无效果。安装官方 UPS 管理软件(Eaton Power Protector)也解决不了任何问题。

然后我查看了 BIOS 设置,发现ACPI 2.0 支持已禁用,因此我启用它,然后在另一块硬盘上全新安装 Windows(在安装最新驱动程序和 Windows 更新之前)。仍然没有结果。

最后,我想知道这里是否有人可以解决这个问题。您可以在此处下载有关我的系统配置(Everest 和 dxdiag 报告)的非常详细的信息:https://drive.google.com/drive/folders/0B1ltKLthoSRbZTh4UGdULTFaUE0?usp=sharing

除此之外,我还有一些其他相关问题:

  • 这是预期的行为(UPS 唤醒计算机,无论设备管理器设置如何)还是可能来自主板或 UPS 设计缺陷?
  • 为什么这个问题只影响 UPS 而不影响其他 USB 设备?这与 UPS 自供电有关吗?

谢谢

答案1

根据提供的信息,计算机从 EHCI 控制器的根集线器获得唤醒 (SMI)。唤醒事件可以由主机本身(强制恢复)发起,也可以由连接的设备远程唤醒。或者,如果配置(通常通过 BIOS),EHCI 可以从外部事件(如过流)唤醒(我假设这不会发生)或连接或断开连接事件(这也不太可能发生)。正如您所发现的,如果通过禁用键盘/鼠标(USB 设备)作为唤醒源来阻止 EHCI 唤醒,则不会发生从 UPS 唤醒。

我不确定 Windows 的通用电源策略,它几乎是一个错误,但完全有可能 UPC 等专有设备不受管理,因此它们可能不会出现在电源配置horizo​​n。要诊断问题并确定谁是唤醒源,必须检索一些支持 USB 的 Windows 调试日志,或者可以使用外部 USB 协议分析仪。分析仪(Teledyne-LeCroy、Ellysis 或 Beagle)应该能够记录暂停事件的顺序和恢复事件。如果软件使用 UPS 暂停端口并表示要唤醒它,则应该有特定的控制事务启用和装备 UPS 设备以进行远程唤醒。如果没有,唤醒(恢复)将在内部发生。

伊顿 IPP 软件的功能列表中有一些可疑之处,

“看门狗功能可以自动保证装有 PC 或服务器的信息亭平稳运行...”

所以这可能是问题的根本原因。Eaton 应用程序中可能存在一些配置来关闭任何看门狗服务。

相关内容