Linux设备异常断电导致的SD卡损坏的解决方案
需求|背景
如果一台linux设备的系统镜像是保存在SD卡中,启动方式是通过SD卡启动,频繁异常断电容易对SD卡和其中的文件造成损坏,这种情况下想要恢复系统极为困难。
解决方案
1.增加一个掉电检测电路,
2.掉电后触发CPU中断
3.增加超级电容,掉电后放电支撑CPU再工作几秒
4.在中断处理函数中,进行掉电后的紧急处理工作
硬件电路
检测到+5V衰减后,DECT引脚会从高电平跳变到低电平
将DECT引脚连接到SOC上的中断引脚,掉电时通知SOC进行处理。
软件
通过注册一个GPIO中断,检测DECT引脚,中断信号检测到后,使用系统调用ksys_sync()进行文件系统同步工作。
此函数能立刻将缓存中的文件写入到卡中
kenel中,电源管理子系统power management中就是使用这个函数去进行同步。
也许还有效率更好的同步方式。俺也不知道。
EXT4文件系统参数修改
改变文件系统的某些参数,