在命令行上返回当前功耗的值


Answers:


22

在我的系统上,我可以从电池中获取电能

cat /sys/class/power_supply/BAT0/power_now
9616000

在Thinkpads上,如果tp_smapi模块已加载,则文件为

cat /sys/devices/platform/smapi/BAT0/power_now

不过,该值似乎以µW为单位。您可以使用任何您喜欢的工具进行转换,例如awk

awk '{print $1*10^-6 " W"}' /sys/class/power_supply/BAT0/power_now
9.616 W

如果找不到sysfs文件系统中的位置,则可以搜索它:

find /sys -type f -name power_now 2>/dev/null

此外,该软件包lm-sensors可用于确定某些机器上的系统电源使用情况:

# sensors power_meter-acpi-0
power_meter-acpi-0
Adapter: ACPI interface
power1:      339.00 W  (interval =   1.00 s)

7

我的笔记本电脑没有这些(目前也没有电池),但是确实有一个“ powercap”设备。
看来此设备能够对用户功率设置限制。

它(自然地)可以读取功率消耗以强制执行。
功率消耗可以在energy_uj文件中找到,即:

cat /sys/class/powercap/*/energy_uj

它将以微焦耳形式显示讲座(或多个讲座,如果您有许多powercap设备)。这实际上是能量消耗的计数器,因此您需要将其除以时间增量才能获得能量。

这是笔记本电脑消耗的功率,还是仅仅是一部分?我不知道。


好吧,这些设备在新计算机上相当普遍……在我的所有测试中,至少有一个显示了非常精确的现实功耗值。我应该用万用表测试。
阿尔巴·门德斯

这似乎是一个很好的解决方案。您从哪里得到时间增量?
Freefri

@Freefri您读取了该值,请等待1秒钟,然后再次读取该值。1秒是您的增量。(Energy_now-Energy_one_second_ago)/ 1秒=每秒消耗的焦耳(或瓦特,1瓦特= 1焦耳/ 1秒)
GDR

6

在笔记本电脑上,可以通过procfs或sysfs读取ACPI数据。在我的系统上,文件为:

/proc/acpi/battery/BAT0/state
/sys/bus/acpi/drivers/battery/PNP0C0A:00/power_supply/BAT0/power_now

请注意,sysfs是高度符号链接的,因此有许多方法可以访问文件。power_now是您要查找的文件名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.