我们的产品具有以下配置:iMx6处理器,2GB eMMC,512 MB RAM,几个以太网端口和USART端口。 这将是一个24/7 365天的工作设备。
我们计划构建一个大约7到10 MB的最小Linux映像(内核+ RFS),将我们的主应用程序和自定义内核驱动程序保存在一个大小为2 MB的单独的squashfs分区中(因为这是我们经常使用的)在字段中更新我们希望保持此分区单独和小)。
另一个ext4读/写数据分区,用于存储我们的持久数据。除了数据分区,我们希望所有其他的只读分区。
我的疑问是
由于我们拥有较小的Linux操作系统映像(内核+ RFS),我们可以将整个RFS作为initramfs吗?
将RFS作为initramfs有任何含义吗? (RAM会消耗得更多,我猜大约20到30 MB,考虑到我们拥有的RAM量,我觉得这不应该是一个问题)
另一种解决方案是将RFS作为squashfs,这样可以节省空间。 以上是否比initramfs还有其他优势?
如果我们有squashfs,那么我们还需要使用union mount来同时安装只读应用程序分区和读/写数据分区。
如果我们使用initramfs,那么我想我们不必实现union mount。这种理解是对的吗?
这是我们在linux上的第一个项目,因此我希望得到使用此类RFS的有经验的人的反馈
答案 0 :(得分:0)
我认为,如果你想将RFS的某些部分放在RAM中,你应该非常认真地考虑到你应该放在哪里(例如/ var / log /目录用于记录,每次任何日志都会减少RAM) -file将被写入。)
另外,据我所知,有很多嵌入式系统的解决方案都有像你这样的架构:例如,看看无状态系统,或者你想将UnionFS用于你的目的。
答案 1 :(得分:0)
@all我们能够在不使用unionfs或union mount的情况下实现解决方案。虽然我们在/ run下挂载ext4分区时使用了squashfs文件系统(只读RFS)但它允许我们读写。 Linux检测到挂载的分区是R / W分区,即使RFS是只读文件系统,也允许我们进行适当的操作。我相信只有当你想要更新部分只读RFS内容时,才必须使用unionFS或union mount。