我注意到powertop
实用程序报告多个设备的“PCI 设备运行时 PM”为“错误”。似乎powertop
可以修复该问题,但它没有说明修复该问题的具体方法。我应该怎么做才能修复“运行时 PM...”问题?
答案1
创建一个名为的文件,/etc/udev/rules.d/10-runtime-pm.rules
内容如下:
SUBSYSTEM!="pci", GOTO="power_runtime_rules_end"
ACTION!="add", GOTO="power_runtime_rules_end"
KERNEL=="????:??:??.?"
PROGRAM="/bin/sleep 0.1"
ATTR{power/control}=="*", ATTR{power/control}="auto"
LABEL="power_runtime_rules_end"
重启后,所有支持运行时 PM 的设备都会启用它。它还会为所有热插拔设备启用它。
答案2
您需要为这些设备设置power/control
属性auto
。立即为所有 PCI 设备设置该属性的最简单方法是:
echo auto | sudo tee /sys/bus/pci/devices/*/power/control
当使用输出重定向(>
)到多个文件时, Bash 会抱怨ambiguous redirect
。
如果要永久设置,请使用这个答案。
答案3
自从 UX32VD 上的 bios 2.11 更新以来,此规则破坏了 usb 设备的自动检测。我真的不知道怎么回事,但从那时起,为了检测 usb 设备,必须在连接 usb 设备后重新加载 xhci_hcd 模块才能检测到它。
答案4
这CrunchBang Linux 论坛主题帮我解决了这个问题。
您可以通过这种方式为每个 PCI 设备启用 PM:
echo auto > /sys/bus/pci/devices/*/power/control
顺便说一下,论坛主题展示了一个很好的省电脚本。