yocto

时间:2016-04-13 10:23:57

标签: linux arm filesystems yocto cortex-a

我对yocto项目中的“只读rootfs”功能有一些疑问,遗憾的是文档没有用。

所以将它添加到EXTRA_IMAGE_FEATURES使得yocto fs只读,但是在:

5.15.3. Areas With Write Access

With the read-only-rootfs feature enabled, any attempt by the target to
write to the root filesystem at runtime fails. Consequently, you must make
sure that you configure processes and applications that attempt these types
of writes do so to directories with write access (e.g. /tmp or /var/run).
他们说某些地区可能是rw,但他们没有提供有关此的额外信息。

我想要实现的是所有要加载到RAM中的操作,进程和内容,SD卡应该保持不变,就好像它是在闪烁之后,而不是在它上面写一个位。但是用户应该可以随时转动SD卡上的特定文件夹(内存区域)并写入内容,然后再将系统设置为只读。

有人有机会这样做吗?你会帮助我很多。

2 个答案:

答案 0 :(得分:1)

默认情况下,Yocto应该将所有需要的RW挂载创建为tmpfs。 它们位于RAM中,因此是易失性的(在关机/重启时删除)。

为了持久存储数据,我实施了以下方法:

  • RootFS位于持久性内存的RO安装分区上。该分区在运行时保持“不受影响”。
  • 在运行时期间需要更改/写入的数据(如配置,日志等)存储在持久性存储器的第二个分区中。已安装RW中的此分区。
  • RootFS上默认配置但需要更改的配置将移至第二个分区,并由符号链接替换为这些文件。
  • 使用自定义fstab文件自动挂载第二个分区,该文件通过base-files_*.bbappend添加。

可能还有其他方法可以实现相同目标,但这种解决方案多年来一直没有困难; - )

答案 1 :(得分:0)

meta-readonly-rootfs-overlay,其中“(...)提供必要的脚本和配置,以在只读根文件系统之上设置可写的根文件系统覆盖。”