gpt4 book ai didi

raspberry-pi - 在嵌入式 Raspberry Pi 上进行本地登录的策略?

转载 作者:行者123 更新时间:2023-12-04 04:46:38 26 4
gpt4 key购买 nike

我的公司使用 Raspberry Pi 3 作为产品中的嵌入式 Controller 。用户不会优雅地关闭它,他们只是扳动一个开关。为避免损坏,/boot 和/root 文件系统是只读的。这似乎是防弹的——我们已经使用测试装置一遍又一遍地“拔插头”(2000 多个循环),没有任何问题。

我们正在开发一项需要本地日志记录的新功能。为此,我们在 SD 卡上创建了一个额外的 ext4 读/写分区(我们目前在 8GB 卡上使用大约 2GB)作为日志文件。为了最大限度地减少磨损,应用程序每分钟缓冲日志数据并写入卡一次。日志文件在写入之间关闭。没有其他东西使用该分区。当应用程序处于可能指示用户即将关闭的状态时,不会写入日志文件。

在对此进行测试时,我们发现尽管我们使用了相当保守的方法,但读/写分区在重新启动后总是被标记为“脏”,经常包含文件系统错误,并且经常有损坏的日志文件。我们也有一些卡遭受无法恢复的错误,导致设备无法启动。

丢失最后一组日志条目不是问题。

丢失日志文件是不可取的,但可以接受。

对/root 和/boot 文件系统的损坏是 Not Acceptable ,卡的物理损坏(标准 NAND 闪存磨损除外)也是如此。

除了添加 UPS 以正常关闭 Pi,是否有任何方法可以安全地允许读/写操作?

是否有一种 SD 卡分区“几何”配置可以确保没有两个分区与一个闪存删除块重叠?

最佳答案

只是几点:

脏标志:我猜您没有卸载文件系统,对吗?这是在每次不干净的重新启动后看到脏标志的可能原因。另一种(可能更好的方法)是在写入后将文件系统切换到只读模式,并在写入文件之前将其设为可读写。

顺便说一句,ext4 推迟写入磁盘。 close() on file 并不意味着文件被写入磁盘,您需要调用额外的 fsync()sync (见 Does Linux guarantee the contents of a file is flushed to disc after close()?)。所以最好让系统真正写入文件。

关于raspberry-pi - 在嵌入式 Raspberry Pi 上进行本地登录的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48599948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com