我有两台基于 arm 的 Linux(ubuntu 14.04)计算机,一台 Jetson TK1 和一台 TX1,它们将在多旋翼飞行器上飞行,因此没有互联网连接(它们在机上联网)。它们也没有内置 RTC,但我为 Jetston TK1 添加了外部 RTC。TK1 的时间在启动时从此 RTC 设置,没有问题(使用sudo hwclock -s -f /dev/rtc0
rc.local 中的)。我正在尝试使用 ntp 让 TX1 同步到 TK1 的时间。
TK1 的 ntp.conf 文件包含:
driftfile /var/lib/ntp/ntp.drift
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
tos orphan 5
TX'1s ntp.conf 文件包含:
driftfile /var/lib/ntp/ntp.drift
# Specify one or more NTP servers.
server 10.20.3.149 iburst prefer
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
其中 10.20.3.149 是 TK-1 的 IP 地址。如果我运行,ntpq -p
我会得到 ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.0.10 .INIT. 16 - - 512 0 0.000 0.000 0.000
192.168.3.149 .INIT. 16 - - 512 0 0.000 0.000 0.000
如果我跑,ntpdate -dv 10.20.3.149
我会
12 Aug 12:36:23 ntpdate[2197]: ntpdate [email protected] Thu Feb 11 18:30:14 UTC 2016 (1)
Looking for host 10.20.3.149 and service ntp
host found : TK-Astro
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
10.20.3.149: Server dropped: Server has gone too long without sync
server 10.20.3.149, port 123
stratum 5, precision -22, leap 00, trust 000
refid [10.20.3.149], delay 0.02838, dispersion 0.00037
transmitted 4, in filter 4
reference time: 00000000.00000000 Sun, Dec 31 1899 19:00:00.000
originate timestamp: db58798a.31270a17 Fri, Aug 12 2016 12:36:26.192
transmit timestamp: db58798e.185b391c Fri, Aug 12 2016 12:36:30.095
filter delay: 0.02843 0.02838 0.02869 0.02863
0.00000 0.00000 0.00000 0.00000
filter offset: -3.90380 -3.90424 -3.90470 -3.90468
0.000000 0.000000 0.000000 0.000000
delay 0.02838, dispersion 0.00037
offset -3.904242
12 Aug 12:36:30 ntpdate[2197]: no server suitable for synchronization found
我发现参考时间差得很远(即使系统时间是正确的)——这就是触发消息的原因吗Server has gone too long without a sync
?只要两个板同步在一起,我不在乎时间是否 100% 准确。有没有办法强制两个板同步,而不管上次服务器同步的时间?
答案1
除了 tos 孤儿线之外,孤儿模式组的所有成员都必须配置为网格(即它们必须都是彼此的客户端/对等体)。可以使用任何 NTP 关联模式来设置此网格。
TK1 配置缺少 TX1 的配置。除非您截断了配置,否则您还需要适当的“限制”线路以允许彼此连接。
restrict default kod nomodify notrap nopeer noquery
restrict 10.20.3.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
答案2
两台服务器必须以对等方式连接。在每台服务器上添加一行,peer 192.0.2.16
使用另一台服务器的 IP 地址。
我认为您需要设置其中一台服务器来提供时钟源。我总是将一台服务器配置为网络连接失败时的备用服务器。如果您在两台服务器上都启用了本地时钟,请将层设置为不同的值。8 到 12 之间的任何值都应该不错。
# Fallback to local clock if all else fails
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
孤立时钟的推荐设置比最坏情况时钟大 2,而且看起来 6 是最低有效设置。如果您可以使用上述设置同步到 RTC,我会将孤立时钟设置为 12。
如果您在两台服务器上都启用了本地时钟,请将层设置为不同的值。8 到 12 之间的任何值都应是好的。由于您只有一个 RTC,因此这不适用。