首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解power_supply文件

理解power_supply文件
EN

Unix & Linux用户
提问于 2022-11-30 11:02:24
回答 1查看 785关注 0票数 2

这是一个非常简单的问题,但我认为,在它的简单性,它有水输出。

我有兴趣更好地理解/sys/class/power_supply中托管的文件,以及管理系统电池监控的文件。在我的例子中,我使用带有电池的笔记本电脑,其目录位于/sys/class/power_supply/BAT0中。另一方面,正如我从/sys/class/power_supply/AC0中了解到的那样,我在这里中有一个交流适配器接口。

在电池接口中,我找到了各种文件:

代码语言:javascript
复制
/sys/class/power_supply/BAT0$ ls
alarm               model_name
capacity            power
capacity_level      present
charge_full         serial_number
charge_full_design  status
charge_now          subsystem
current_now         technology
cycle_count         type
device              uevent
hwmon2              voltage_min_design
manufacturer        voltage_now

据我所知,capacity参考了当前电池的百分比。我还通过上下文capacity_levelstatus来理解:

代码语言:javascript
复制
/sys/class/power_supply/BAT0$ cat capacity
81

/sys/class/power_supply/BAT0$ cat capacity_level
Normal

/sys/class/power_supply/BAT0$ cat status
Discharging

但是,我不理解其他文件,如charge_fullcharge_full_designcharge_nowcurrent_nowcycle_count

代码语言:javascript
复制
/sys/class/power_supply/BAT0$ cat charge_full
900000
/sys/class/power_supply/BAT0$ cat charge_full_design
4100000
/sys/class/power_supply/BAT0$ cat charge_now
630000
/sys/class/power_supply/BAT0$ cat current_now
1191000
/sys/class/power_supply/BAT0$ cat cycle_count
0

uevent类中,可以查看前面的每个变量,并提供更多细节:

代码语言:javascript
复制
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000
POWER_SUPPLY_CURRENT_NOW=1089000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=standard
POWER_SUPPLY_MANUFACTURER=OEM
POWER_SUPPLY_SERIAL_NUMBER=00001

清楚地理解电池容量的百分比来自POWER_SUPPLY_CHARGE_NOW (/sys/class/power_supply/BAT0/charge_now)在POWER_SUPPLY_CHARGE_FULL (/sys/class/power_supply/BAT0/charge_full)上的计算: 100*675000/900000=75。

但是你怎么能理解这些价值观呢?POWER_SUPPLY_CHARGE_NOW从哪里来?上述值的电压是否会干扰任何事情?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-12-05 13:31:30

您可能想看看Linux设备类是如何在包括/linux/电源h中在Linux内核源代码中定义的。其中所描述的数据结构中的值在/sys/class/power_supply/*中以-is表示:

代码语言:javascript
复制
/*
 * All voltages, currents, charges, energies, time and temperatures in uV,
 * µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
 * stated. It's driver's job to convert its raw values to units in which
 * this class operates.
 */

/*
 * For systems where the charger determines the maximum battery capacity
 * the min and max fields should be used to present these values to user
 * space. Unused/unknown fields will not appear in sysfs.
 */

所以所有的charge_*值都是以微安小时为单位,而current_now是以微安培为单位的.

代码语言:javascript
复制
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000

电池的最小设计电压(不应低于此电压)为11400000微伏= 11.4伏。

目前的电压水平是11.759伏。

代码语言:javascript
复制
POWER_SUPPLY_CURRENT_NOW=1089000

电池现在提供1.089安培的电流。

代码语言:javascript
复制
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000

当它是新的,电池声称有一个充分的充电能力为4.10安培小时,但从那时起,它已经退化,所以目前的全充电能力只有0.9安培小时。目前,它还有0.675安培的充电时间。

因此,作为一个简单的估计,当你现在从电池中获取电流时,你将有0.675 Ah / 1.089 A=大约0.62小时,或者大约37分钟的能量。

power_supply.h文件还有许多其他信息丰富的注释,这些注释直接描述了各种值的含义。你可能想看看那些评论。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/726822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档