如何保持覆盆子计时准确?

Tom*_*Tom 8 time raspberry-pi windows-10-iot-core

我有3个Raspberry 3 Model B设备.他们的操作系统是Windows 10 IOT,它们是在同一天(昨天)安装的.

我对他们的计时有非常奇怪的经历,他们非常不准确.他们中的一些人在正确的时间后面有一些时间,而其他人则需要3-4分钟.常见的行为是不准确的.

我尝试通过在启动计划脚本中调用"w32tm/resync/force"来强制每次启动时间同步.它似乎没有任何帮助.

我也尝试使用不同的Wi-Fi网络(来自不同的供应商),所有这些都存在问题.

通过w32tm/query/status查询时间状态时,我得到以下结果:

设备1

跳跃指示器:3(最后一分钟有61个秒),阶层:0(未指定)精度:-23(每个时钟周期的119.209ns)根延时:0.0000000s根差:0.0000000s ReferenceId:00000000(未指定的)最后一次成功同步时间:来源不明:本地CMOS时钟轮询间隔:10(1024s)

设备2

飞跃指示灯:0(无警告)阶层:3(二次参考 - 由(S)NTP SYNCD)精度:-23(每蜱119.209ns)根延迟:0.1734432s根差:0.4173777s ReferenceId:0x338C7FC5(源IP:51.140 .127.197)上次成功同步时间:7/14/2017 7:48:12 AM来源:time.windows.com,0x9民意调查时间间隔:15(32768s)

设备3

飞跃指示灯:0(无警告)阶层:3(二次参考 - 由(S)NTP SYNCD)精度:-23(每蜱119.209ns)根延迟:0.1850726s根差:16.7226250s ReferenceId:0x338C7FC5(源IP:51.140 .127.197)上次成功同步时间:7/14/2017 11:42:52 AM来源:time.windows.com,0x9民意调查时间间隔:10(1024s)

我通过网络阅读有关该问题的主题,但我找不到任何可行的解决方案.我对我来说似乎很奇怪,时间应该是大多数应用程序的关键因素,所以必须有一个解决方案.

你能帮我解决一下吗?任何建议都非常高兴!

Bin*_*rus 2

首先,我必须声明,我还没有接触过Windows 10,也没有接触过Raspberry。另一方面,我看到以下方法解决了许多各种 Windows 计算机的所有时间同步问题,您可以尝试一下。

问题(根据我的经验):

1) time.windows.com 极其不可靠。在我和几个客户的设置中,大多数情况下,在开箱即用安装 Windows 后,即使不涉及无线连接,即使有可靠的高数据速率/低延迟,时间也无法可靠地同步与互联网提供商的连接。

2) Windows 似乎以一种不寻常的(我们也可以说:错误的)方式查询 NTP 服务器。虽然我对 NTP 的了解还不够深入,无法给出详细的解释,但 Windows 作为客户端似乎会向服务器发送所谓的“对称活动”数据包,而不是正常的“客户端数据包”。因此,一开始它与其他(标准)NTP 服务器的工作也非常不可靠。

可能的解决方案

问题 1) 的解决方案很明显:在网络中的某个位置安装标准 NTP 服务器。如果您手头有 Linux 机器,我最终可以帮助您正确配置它。然后,通过电缆将您的树莓派连接到该 NTP 服务器,并在树莓派上应用问题 2 的解决方案(见下文)。

问题 2) 的解决方案不太明显,涉及为 Windows 时间服务设置一个未记录的标志(至少在我现在手头的 Windows 7 Pro 中没有记录)。您已经查询了 Windows 时间服务状态,并向我们展示了输出。请注意输出中的以下部分(例如,对于设备 2):

Source: time.windows.com,0x9 Poll Interval: 15 (32768s)

问题是0x9应该是哪个0x8要更改该标志,请以管理员身份打开命令行窗口(仅属于管理组是不够的)并执行以下命令:

w32tm /config /manualpeerlist:xxx.xxx.xxx.xxx,0x8 /syncfromflags:MANUAL

请注意如何添加正确的标志0x8(当然,xxx.xxx.xxx.xxx 是您的 NTP 服务器的 IP 地址,但您也可以给出一个普通的主机名(例如 ntpserver.example.org))。基本上,上面的行告诉 Windows 时间服务应该同步到哪个服务器,它应该同步到该服务器,并且应该向该服务器发送正常的客户端请求数据包(而不是活动的对称数据包)。

完成此操作后,您必须通过重新启动 Windows 时间服务或更新其配置(我更喜欢第一个)来应用更改。

如果您再次查询状态,输出中将有以下部分:

Source: xxx.xxx.xxx.xxx,0x8 Poll Interval: xx (xxxxxs)

请注意,输出中的标志现在已从 更改0x90x8

最后两个注释

1) 如果您坚持同步到 time.windows.com,我不确定问题 2) 的解决方案是否有效。由于它不可靠,我已经很多年没有使用它了。0x9如果您将所述标志从 更改为0x8,但仍使用 time.windows.com 作为 NTP 服务器,情况可能会变得更糟。

出于多种原因,在本地网络中设置您自己的 NTP 服务器是一个非常好的主意(我不会在这里详细介绍,因为这会偏离主题)。如果您不能或不想这样做,我建议您使用其他公共时间服务器(通过访问http://www.ntp.pool.org开始搜索)而不是 time.windows.com。他们肯定会致力于解决问题 2)。

2) 作为最后的手段,您可以尝试在 Windows 中安装另一个时间服务。例如,Windows 上有一个成熟的 NTP 软件移植,但据我所知,仅适用于 Intel 平台。由于我对 Raspberry (ARM) 平台一无所知,我根本不知道是否还有其他时间服务软件,所以这只是一个想法,以防其他方法都失败。