【问题标题】:How to change timezone in read-only rootfs in Yocto poky warrior如何在 Yocto poky Warriors 的只读 rootfs 中更改时区
【发布时间】:2020-12-08 22:23:43
【问题描述】:

我正在尝试为 Raspberry-pi Cm3 更改嵌入式 Linux (Yocto poky Warriors) 上的时区。 但我无法这样做。我收到一条错误消息说明

root@raspberrypi-cm3:~# timedatectl set-timezone "America/New_York"
Failed to set time zone: Failed to set time zone: Read-only file system

这在将 rootfs 更改为只读之前有效。

如何更改只读 rootfs 上的时区?

【问题讨论】:

  • 如果你的整个 rootfs 是只读的,你就不能在运行时配置任何东西。如果您想要部分可配置性,则需要文件系统的某些部分是可写的(选项包括 /etc 的单独挂载点或在构建时为 /etc 中的特定文件创建指向另一个可写文件系统位置的符号链接)
  • @JussiKukkonen 我确实做到了。我将/etc/localtime/etc/timzone 移动到文件系统的可写部分。但我认为问题在于 timedated.c 文件查找 /etc/localtime 我认为我必须更改。但我不是嵌入式开发人员。我在理解代码时遇到了一些问题。我可以将这些问题添加到此页面吗?
  • 见:github.com/systemd/systemd/pull/8277。 TL;DR:开箱即用并不是真的可能,您需要在那里选择(并维护)建议的补丁或使用overlayfs或其他类型的解决方法。基本上,/etc/localtime 会在需要时按时间重新创建(相当于ln -fs)......这显然无法完成,因为它位于 RO FS 上。
  • @qschulz 你是上帝派来的。我爱你。您能否将此评论作为答案。

标签: yocto systemd readonly


【解决方案1】:

/etc/localtime 在需要时按时间重新创建(相当于ln -fs)...这显然无法完成,因为它位于 RO FS 上。

开箱即用并非真正可行,您需要选择(并维护)以下补丁或使用overlayfs或其他类型的解决方法。

请参阅this 了解完整说明。

【讨论】:

  • 你是如何使用TIMEDATEDIR的?
  • 一旦我这样做了。我确实看到 datetimedatectl 之间不匹配。
  • 我不再为使用此技巧的公司工作,因此无法回答(距今已有 2 年半了;))。 IIUC 我自己的帖子,您需要在/etc/localtime/path/rw/localtime 之间创建符号链接,以便非定时工具仍然可以访问它。如果不遵循符号链接,您可能需要直接修补正在读取 /etc/localtime 的任何工具,而不是遵循符号链接。
猜你喜欢
  • 2021-10-19
  • 1970-01-01
  • 2018-03-15
  • 2021-02-24
  • 2018-07-01
  • 1970-01-01
  • 2018-09-05
  • 2014-08-31
  • 1970-01-01
相关资源
最近更新 更多