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

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

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

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

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

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

设备1

飞跃指标:3(最后一分钟有61秒)
Stratum:0(未指定)
精度:-23(每剔119.209ns)
根延迟:0.0000000s
根分散:0.0000000s
ReferenceId:0x00000000(未指定)
上次成功同步时间:未指定
来源:本地CMOS时钟
民意调查间隔:10(1024s)

设备2

飞跃指标:0(无警告)
Stratum:3(辅助参考 – 由(S)NTP同步)
精度:-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(无警告)
Stratum:3(辅助参考 – 由(S)NTP同步)
精度:-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)

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

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

首先,我必须声明我还没有触摸Windows 10,我还没有触摸过RaspBerry.另一方面,我已经看到以下方法解决了所有类型的Windows机器的所有时间同步问题,您可以尝试一下.

问题(根据我的经验):

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

2)Windows似乎以不寻常的方式查询NTP服务器(我们也可以说:错误).虽然我对NTP的深度不够详细解释,但作为客户端的Windows似乎将所谓的“对称活动”数据包发送到服务器而不是普通的“客户端数据包”.所以起初它与其他(标准)NTP服务器的工作非常不可靠.

可能的解决方

问题1)的解决方案显而易见:在网络中的某个位置安装标准NTP服务器.如果你手头有一个Linux盒子,我最终可以帮你正确配置它.然后,通过电缆将RaspBerrys连接到此NTP服务器,并在RaspBerrys上将解决方案应用于问题2(见下文).

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

来源:time.windows.com,0x9民意调查时间间隔: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时间服务来应用更改(我更喜欢第一个).

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

来源:xxx.xxx.xxx.xxx,0x8民意调查间隔:xx(xxxxxs)

请注意,输出中的标志现在已从0x9更改为0x8.

最后两个笔记

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软件的完整端口,但AFAIK仅适用于英特尔平台.由于我对RaspBerry(ARM)平台一无所知,我不知道是否还有其他时间服务软件,所以这只是一个想法,以防其他方法失败.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...