如何同步覆盆子PI系统时钟?

发布于 2025-01-21 07:42:27 字数 2994 浏览 0 评论 0 原文

我已经使用BuildRoot构建了用于Raspberry Pi CM4的自定义Linux OS。我能够启动它,但是我的系统时钟没有同步。它设置为静态时间,我想展示实时时间。我已经选择 br2_package_rtc_tools = y br2_package_util_linux_hwclock = y br2_package_ntp = y br2_package_ntp_ntpime = y menuconfig 。但仍然是相同的结果。

timEdatectl 显示:

Local time: Tue 2022-01-18 11:52:05 UTC
           Universal time: Tue 2022-01-18 11:52:05 UTC
                 RTC time: n/a
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

Systemctl状态Systemd-Timessyncd 显示:

systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled;
     Active: active (running) since Tue 2022-01-18 11:35:47 UTC; 17min ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 194 (systemd-timesyn)
     Status: "Daemon is running"
      Tasks: 1 (limit: 1009)
        CPU: 396ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─194 /usr/lib/systemd/systemd-timesyncd

Jan 18 11:35:46 br2rauc systemd[1]: Starting Network Time Synchronization...
Jan 18 11:35:47 br2rauc systemd[1]: Started Network Time Synchronization.

timeDatectl show-timessync 结果:

FallbackNTPServers=time1.google.com time2.google.com time3.google.com time4.google.com
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=0
Frequency=0

我不知道为什么 /etc/systemd/timesyncd.conf 看起来不设置,

[Time]
#NTP=
#FallbackNTP=time1.google.com time2.google.com time3.google.com time4.google.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#SaveIntervalSec=60

我需要为 ntp 设置任何值吗?

我还通过启用 br2_package_htpdate = y systemctl status htpdate.status 显示:

htpdate.service - htpdate daemon
     Loaded: loaded (/usr/lib/systemd/system/htpdate.service; enabled; vendor pr
     Active: active (running) since Tue 2022-01-18 11:35:48 UTC; 22min ago
    Process: 221 ExecStart=/usr/sbin/htpdate -D -i /run/htpdate.pid $HTPDATE_ARG
   Main PID: 228 (htpdate)
      Tasks: 1 (limit: 1009)
        CPU: 26ms
     CGroup: /system.slice/htpdate.service
             └─228 /usr/sbin/htpdate -D -i /run/htpdate.pid -a -s -t https:/

Jan 18 11:35:48 br2rauc systemd[1]: Starting htpdate daemon...
Jan 18 11:35:48 br2rauc htpdate[228]: htpdate version 1.3.3 started
Jan 18 11:35:48 br2rauc htpdate[228]: www.google.com host or service unavailable
Jan 18 11:35:48 br2rauc systemd[1]: Started htpdate daemon.

您可以看到上述日期和时间设置为1月18日。进入互联网。然后,我使用 Connman 在系统引导后连接到Internet。但是,即使在重新启动 SystemD-Timessyncd 之后,也是相同的结果。

谁能让我知道如何正确同步系统时钟?

您的帮助将不胜感激。

预先感谢

P.S:如果此处缺少任何信息,请告诉我。

I have built a custom Linux OS for Raspberry Pi CM4 using Buildroot. I am able to boot it but my system clock is not synchronized. Its set to some static time and I want to show real time instead. I have selected BR2_PACKAGE_RTC_TOOLS=y, BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y and BR2_PACKAGE_NTP=y, BR2_PACKAGE_NTP_NTPDATE=y, BR2_PACKAGE_NTP_NTPTIME=y in menuconfig. But still it's same result.

The timedatectl shows:

Local time: Tue 2022-01-18 11:52:05 UTC
           Universal time: Tue 2022-01-18 11:52:05 UTC
                 RTC time: n/a
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

The systemctl status systemd-timesyncd shows:

systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled;
     Active: active (running) since Tue 2022-01-18 11:35:47 UTC; 17min ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 194 (systemd-timesyn)
     Status: "Daemon is running"
      Tasks: 1 (limit: 1009)
        CPU: 396ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─194 /usr/lib/systemd/systemd-timesyncd

Jan 18 11:35:46 br2rauc systemd[1]: Starting Network Time Synchronization...
Jan 18 11:35:47 br2rauc systemd[1]: Started Network Time Synchronization.

And timedatectl show-timesync results in:

FallbackNTPServers=time1.google.com time2.google.com time3.google.com time4.google.com
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=0
Frequency=0

I don't know why but /etc/systemd/timesyncd.conf looks like not set

[Time]
#NTP=
#FallbackNTP=time1.google.com time2.google.com time3.google.com time4.google.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#SaveIntervalSec=60

Do I need to set any value for NTP?

I also tried by enabling BR2_PACKAGE_HTPDATE=y and systemctl status htpdate.status shows:

htpdate.service - htpdate daemon
     Loaded: loaded (/usr/lib/systemd/system/htpdate.service; enabled; vendor pr
     Active: active (running) since Tue 2022-01-18 11:35:48 UTC; 22min ago
    Process: 221 ExecStart=/usr/sbin/htpdate -D -i /run/htpdate.pid $HTPDATE_ARG
   Main PID: 228 (htpdate)
      Tasks: 1 (limit: 1009)
        CPU: 26ms
     CGroup: /system.slice/htpdate.service
             └─228 /usr/sbin/htpdate -D -i /run/htpdate.pid -a -s -t https:/

Jan 18 11:35:48 br2rauc systemd[1]: Starting htpdate daemon...
Jan 18 11:35:48 br2rauc htpdate[228]: htpdate version 1.3.3 started
Jan 18 11:35:48 br2rauc htpdate[228]: www.google.com host or service unavailable
Jan 18 11:35:48 br2rauc systemd[1]: Started htpdate daemon.

As you can see above date and time is set to Jan 18. While booting Pi is not connected to internet. And I connect to internet using connman after system boot. But even after restarting systemd-timesyncd it's same result.

Can anyone please let me know how to properly synchronize the system clock?

Your help will be much appreciated.

thanks in advance

P.S: Please let me know if any info is missing here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请你别敷衍 2025-01-28 07:42:27

与BuildRoot(实际上是非GLIBC发行版)结合使用,HTPDATE确实有1.3.2版的问题。 https://github.com/twekkel/htpdate”的最新信息。

请使用

htpdate did have an issue up to version 1.3.2 in combination with buildroot (actually non-glibc distributions). Please use the latest from https://github.com/twekkel/htpdate

In case htpdate is started before network is available, the time synchronization can take some time... try using '-m 5' to speed up that process.

卖梦商人 2025-01-28 07:42:27

快速简便的方法来同步您的RPI时钟:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

Quick and easy way to sync your RPi clock:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文