我正在尝试将ntpd配置为从gps接收器(BU-353S4)获取时间,但我遇到了一些错误。
我在Arch Linux Arm上使用ntpd 4.2.8.p6-3和gpsd 3.16-2。我一直在跟踪拱形维基教程,但它没有任何故障排除信息。
gpsd日志包含条目。
gpsd:ERROR: response: {"class":"ERROR","message":"No such device as /dev/gps0"}\x0d\x0a
每6秒左右重复一次,除了开始,别无其他,停止消息。
/var/log/ntp.log包含:
Listen and drop on 0 v6wildcard [::]:123
Listen and drop on 1 v4wildcard 0.0.0.0:123
Listen normally on 2 lo 127.0.0.1:123
Listen normally on 3 eth0 172.10.10.75:123
Listen normally on 4 lo [::1]:123
Listen normally on 5 eth0 [fe80::ba27:ebff:feba:af05%2]:123
Listening on routing socket on fd #22 for interface updates
GPSD_JSON(0): GPSD revision=3.16 release=3.16 protocol=3.11ntpq -p输出
remote refid st t when poll reach delay offset jitter
==============================================================================
GPSD_JSON(0) .GPS. 0 l - 64 0 0.000 0.000 0.000/etc/ntp.conf包含
restrict 127.0.0.1
restrict ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# GPSD config
server 127.127.46.0
fudge 127.127.46.0 time1 0.0 time2 0.0 refid GPS
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log然而,sudo gpscat /dev/gps0输出(对我未受过训练的眼睛)有效的nmea信息,而cgps和gpsmon都得到一个修复和输出有用的信息。
/dev/ttyUSB0具有crw-rw---- 1 root uucp 188权限。gpsd在用户nobody下运行,ntpd作为用户ntp运行。
发布于 2016-03-30 11:36:31
gpsd是以无名小卒的身份运行的,因此没有阅读/dev/ttyUSB0的特权,这正是它所抱怨的。
如果将nobody用户添加到组uucp中,应该会修复一些问题,但不建议这样做。或者,您可以将/dev/ttyUSB0上的模式更改为be 666,这稍微不那么可怕。最好的方法是编辑gpsd启动配置,使其以其他用户的身份运行,可能是gpsd,并使/dev/ttyUSB0组由gpsd的S主组(也可能是gpsd)拥有。
假设gpsd一旦能够正确读取GPS就会设置时间,这将使ntpd能够发布时间广告,因为您已经配置了时间,因为它是从分层0 (ntp)源获得的。
发布于 2017-10-26 17:33:14
请注意,您必须“在链接的/dev/gps0上运行gpsd,以便GPSD_JSON行按预期显示”。因此,请检查您的GPSD是否运行在/dev/gps0上。我的GPSD运行在我的服务器上的/dev/ttyS0上,在我将设备更改为/etc/default/gpsd中的/dev/gps0之后,NTPd可以成功地链接GPSD。
https://serverfault.com/questions/766985
复制相似问题