我有一个带有超级电容器硬件的嵌入式 Linux 系统(当前运行 Angstrom),可以提供完成写入的时间,并避免在外部电源断开时损坏文件系统。架构为ARM,SOC为Freescale iMX6Q
有一个 GPIO 输入可监控外部电源的存在。
将此输入连接到现有逻辑以进行电源故障处理的最佳方法是什么?我应该SIGPWR
自己向所有正在运行的进程广播吗?仅将其提高到systemd
?写点东西给/dev/initctl
?做点别的什么让内核本身发送出去SIGPWR
?
是否存在可以在 devicetree 中配置的硬件电源故障输入的现有机制?或者用户模式守护进程(具有高优先级)轮询 sysfs gpio 文件是最好的方法吗?
之前的这个问题指出了备用电池的优点,但以“保持电源足够长的时间”停止,没有深入讨论如何在写入刷新代码中触发电源故障路径的任何细节。 (由于即将断电,系统不应在正常进程关闭中浪费任何时间,只执行保护数据完整性的操作。尤其应避免日志关闭的操作,因为它们会增加执行写入(包括更新)时损坏的机会在最坏的情况下获取磨损均衡数据。 讨论.)