我正在尝试在
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内核源驱动程序/ acpi / battery.c的调用,如果我能弄清楚如何暴露界面.我可能需要方法acpi_battery_get_status和acpi_battery_get_info
>我也注意到里面的驱动程序/ acpi / sbs.c里面有一个方法acpi_battery_read,正好在上面有一个评论说“驱动程序接口”.这可能是另一种方式,如果有人知道如何使用它.
我认为在内核模块中读取文件可能是一个坏主意,但我不完全确定这些文件如何映射到内核函数调用,所以可能没问题.
那么,你能给我一些建议/建议吗?
编辑:我将我的解决方案包含在下面的答案中.