每部智能手机、平板电脑和笔记本电脑都可以独立于操作系统实现这一功能。我的问题是如何实现?涉及哪些硬件和软件?哪些协议和接口?为外部电池组(例如连接到台式电脑的 DIY UPS)复制这种机制的可行性有多大?
能否利用诸如 coreboot 之类的开源 BIOS 和诸如 linux 之类的开源操作系统来简化这项任务,并提供一种标准方法来完成这项任务而无需重新发明轮子?
答案1
我在这个 unix.stackexchange 问题上发现了很多有趣的信息:https://unix.stackexchange.com/questions/317864/how-to-clear-reset-smart-battery-memory
关键词是 SMBus(系统管理总线)和 SBS(智能电池规范)。只要主板提供 I2C 接口并实施适当的监控电路,它们就应该允许操作系统直接与电池对话(或至少从 BIOS 和 ACPI 获取电池信息)。
链接的答案还提供了包含有关电池固件的更多详细信息的文档的链接:https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf。遵循这些规则,让操作系统识别电池为内置电池应该相对简单,而无需通过 USB 并编写自定义驱动程序、应用程序和小部件。
祝你好运!