0

我们的产品具有以下配置,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,那么我们还需要联合挂载来同时挂载只读应用程序分区和读/写数据分区。

如果我们使用 initramfs,那么我想我们不必实施联合挂载。这种理解对吗?

这是我们在 linux 中的第一个项目,因此我想从使用过这种 RFS 的有经验的人那里获得反馈

4

2 回答 2

0

@all 我们能够在不使用 unionfs 或 union mount 的情况下实现解决方案。虽然我们在 /run 下挂载 ext4 分区时使用了 squashfs 文件系统(只读 RFS),但它允许我们读写。Linux 检测到挂载的分区是 R/W 分区,即使 RFS 是只读文件系统,也允许我们进行适当的操作。我相信只有当您想更新只读 RFS 内容本身的部分时,您才需要使用 unionFS 或 union mount。

于 2015-02-18T11:55:43.010 回答
0

我认为,如果您想将 RFS 的某些部分放在 RAM 中,您应该非常仔细地考虑您将放在那里的确切内容(例如 /var/log/ 目录用于日志记录,每次任何日志文件都会减少 RAM写)。

另外,据我所知,有许多嵌入式系统的解决方案都具有像您这样的架构:例如,看看无状态系统,或者您可能想将 UnionFS 用于您的目的。

于 2014-11-22T06:50:53.427 回答