如何避免在计算机暂停时关闭某些 USB 设备的电源

如何避免在计算机暂停时关闭某些 USB 设备的电源

当系统进入挂起(又名 S3 或“挂起至 RAM”)模式时,我想保持 USB 供电驱动器的电源供应。

通常,机器暂停时电源会被切断,这会导致机器被拆卸,然后在系统恢复时重新安装。这并不是很好,特别是如果驱动器本身支持电源管理的话。

虽然我可以在单独的电源上运行它,但我宁愿避免为至少在理论上可以使用我现有的硬件完成的事情分配更多的接线。

我如何确定我的系统是否可以执行此操作,以及如何安排特定 USB 设备(即此外壳)始终以这种方式处理?

我运行的是 ubuntu 10.10。

更新

发现这个 ubuntu 论坛主题建议用于acpitool -w确定 USB 控制器的可用唤醒级别。

在我的系统上运行此命令会显示 USB 控制器的 S1:

$ acpitool -w
   Device   S-state   Status   Sysfs node
  ---------------------------------------
  1. LID      S3    *enabled   
  2. PBTN     S4    *enabled   
  3. PCI0     S3    *disabled  no-bus:pci0000:00
  4. USB0     S1    *disabled  pci:0000:00:1d.0
  5. USB1     S1    *disabled  pci:0000:00:1d.1
  6. USB2     S1    *disabled  pci:0000:00:1d.2
  7. USB3     S1    *disabled  pci:0000:00:1d.7
  8. MODM     S3    *disabled  
  9. PCIE     S4    *disabled  pci:0000:00:1e.0

这似乎告诉我,唤醒功能只能在 S1 状态下为 USB 启用。

我不确定这有多大用处,因为提供全功率和允许唤醒可能是正交问题。它可能启用唤醒仅提供低功率,因此可能有不同的方式来启用全功率。

如果打开唤醒确实等于提供全功率,那么看起来我可以通过将 USB 卡插入扩展槽来实现我想要的功能(我猜这就是什么PCIE?)。不过我想在尝试挖掘 USB2 PC 卡之前我想更多地了解这一点。

答案1

在总线上启用唤醒并不等于在挂起时为该总线提供全部电源。它只是意味着系统将侦听与该设备对应的线路上的唤醒信号。备用电源由适当的总线提供,但该功率远小于正常操作的满功率。添加 PCI/PCIe USB 卡可能允许也可能不允许 USB 唤醒,但当计算机处于 S3 模式时,它绝对不会为 USB 端口提供全部电源。相反,它将提供足够的电流来保持芯片组运行,据我收集的数据,大约 200mA @ 3.3V这一页英特尔关于其网络适配器的信息。

我认为这是一个特定于主板的功能,并且只能通过 BIOS 进行控制。我有一个 Thinkpad 和一个 Gigabyte 主板,允许在机器未唤醒时为 USB 设备供电,在这两种情况下,它都是 BIOS 中的设置,而不是在系统完全启动时可以更改的设置。想想看,Thinkpad 可能有一种方法可以在运行时进行配置,但 Thinkpad 因具有用于管理电源选项的特殊 ACPI 扩展而闻名。无论如何,对于这两个系统来说,这是一个要么全有要么全无的命题——没有针对每端口或每设备配置的选项。我相当确定挂起状态下的全功率 USB 并不是 PC 上的标准配置,因此,没有便携式方法来检查它是否可用。

虽然它是额外的硬件,但我认为最简单、最通用的解决方案是仅使用供电的集线器。

答案2

内核支持USB 2.0省电功能

要在启动后禁用它,您可以尝试

回声 1 > /sys/bus/usb/devices/您的 USB 设备/电源/自动挂起

回显“打开”> /sys/bus/usb/devices/您的 USB 设备/能量等级

有关更多详细信息,请参阅此lesswatts.org 页面

答案3

正如 Miles 提到的,您可能需要启动 BIOS 并启用“从 USB 唤醒”。对于 MSI,我遵循这个视频:

  1. rebootesc在启动期间按住
  2. 进入 BIOS 后,选择“高级设置”菜单(F7 或鼠标)
  3. 导航Settings\Advanced\Wake Up Event Setup
  4. 启用“通过 USB 设备恢复”
  5. x退出BIOS并保存更改。

我也曾胡思乱想过禁用 USB 自动挂起这可能重要也可能不重要。

相关内容