我尝试通过使用 ArchLinux 的 Raspberry PI从 GPS 接收器 GlobalSat BU-353s4( /dev/ttyUSB0
)获取高精度时间。gpsd
/etc/chrony.conf
包含:
refclock SHM 0 delay 0.5 refid NEMA
refclock SHM 1 offset 0.0 delay 0.1 refid PPS
refclock SOCK /var/run/chrony.ttyUSB0.sock delay 0.0 refid SOCK
我已经通过 NEMA 获得了时间(SHM 0 源)(但准确率较低)。
gpsd
没有找到内核 PPS 扩展,结果SHM 1 源没有工作:
gpsd:WARN: KPPS:/dev/ttyUSB0 kernel PPS unavailable, PPS accuracy will suffer
但lsmod
显示 pps 模块已加载:
# lsmod
Module Size Used by
pps_ldisc 2305 0
pps_core 7982 1 pps_ldisc
套接字源也没有工作:
# chronyc sources
210 Number of sources = 9
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#x NEMA 0 4 377 18 -532ms[ -532ms] +/- 252ms
#? SOCK 0 4 0 - +0ns[ +0ns] +/- 0ns
但gpsd -N -D8 /dev/ttyUSB0
显示sock文件已打开:
gpsd:RAW: PPS:/dev/ttyUSB0 using chrony socket: /var/run/chrony.ttyUSB0.sock
问题:如何使内核 PPS 可用gpsd
或使套接字工作?
答案1
首先,pps 不能通过 USB 连接。您需要使用直接连接。USB 是轮询的,因此无法提供足够准确的信号。我在工作中尝试设置一些 Windows 机器时了解到了这一点。
您的 GPS 模块没有 PPS 输出,它将位于单独的引脚或连接器上。这需要连接到 Pi 上的 GPIO 引脚。
我刚刚为 ntp 设置了两个 Pi,这是我使用 Adafruit GPS 模块作为参考的网站。(带蓝色框的图片)
http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
我与第二个天线进行了斗争,因为我没有 GPS 锁,因为我需要第二个天线,而且外面还下着雨。