我正在尝试在Linux内核模块中获取电池电量(通过modprobe插入模块)。我希望使用内核API调用来获取电池信息。我已在网络上寻找解决方案,并探索了Linux内核源代码和Michael Meskes的"acpi"程序源代码以获得更多想法。
这些是我认为可以使用的一些技术:
因此,你们能给我一些建议/推荐吗?
编辑:我在下面的答案中包含了我的解决方案。
这些是我认为可以使用的一些技术:
- 读取和解析/proc/acpi/battery/BAT0/state和/proc/acpi/battery/BAT0/info。
- 从/sys/class/power_supply/BAT0/charge_now和charge_full中读取,无需解析。
- 如果我能找出如何公开接口,我可以尝试使用来自Linux内核源代码drivers/acpi/battery.c的调用。我可能需要方法acpi_battery_get_status和acpi_battery_get_info。
- 我还注意到,在drivers/acpi/sbs.c内部有一个方法acpi_battery_read,并且在其上面有一个注释说"Driver Interface"。如果有人知道如何使用它,这可能是另一种方法。
因此,你们能给我一些建议/推荐吗?
编辑:我在下面的答案中包含了我的解决方案。