【问题标题】:Updating root file system in buildroot generated image在 buildroot 生成的映像中更新根文件系统
【发布时间】:2018-08-06 15:36:13
【问题描述】:

几个月前,我使用 Mfgtools 和 buildroot 生成的图像在 i.MX6 板上安装了嵌入式 Linux。

我对根文件系统进行了更改并生成了一个新的根文件系统。我不想重新刷新现有设置,而是只想在进行配置更改后复制新创建的文件。

完成此任务的最佳方法是什么。我知道我可以逐个文件比较两个根文件系统文件,然后手动逐个复制。有没有其他机制

【问题讨论】:

  • 您能说明一下您是如何“刷新”您的根文件系统的吗?如果您将 rootfs 存档闪存到 NAND 或其他东西并在启动时将 FS 加载到 RAM 中,那么您无法在不重新刷新映像的情况下使您的更改持续存在。如果您需要持久更改,请考虑使用 UBIFS 之类的闪存文件系统:elinux.org/UBIFS。或者,您可以通过网络安装文件夹或使用 SD 卡之类的东西。
  • 我正在使用 eMMC。所以我可以手动复制更新的文件。我需要一种更好的方法来避免这种情况并避免重新刷新系统
  • 如果您的更改与kernel modulesbinaries 无关,您可以创建patch 并应用于您的目标。这样您就可以通过一个补丁更新所有文件。喜欢Delta Patching
  • 上述评论中的二进制文件是什么意思。你的意思是像ls,top这样的实用程序

标签: linux embedded-linux buildroot rootfs


【解决方案1】:

听起来像是rsync 的工作。你可以运行类似的东西:

rsync -av --update dev_machine@192.168.X.X:/home/user/buildroot/output/images/unpacked_rootfs/ ./

我不确定您要更新哪些文件,但rsync 擅长仅更改需要更新的文件。

也就是说,Buildroot 并不是真正为这样的部分升级而设计的。该工具旨在输出一个单一的“固件”映像,当需要进行更改时,该映像会重新生成和重新刷新。如果您需要一个更灵活的系统来允许单独的包管理,请考虑使用Yocto

【讨论】:

  • 所以我需要在嵌入式 Linux 板上安装 rsync 吗?
  • 你也可以反过来做。你的开发机器可能已经有 rsync。阅读手册页和谷歌搜索示例。
猜你喜欢
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多