You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让chrony从TCP套接字获取GPS时间?配置无效问题排查

排查chronyd无法从GPS套接字同步时间的常见问题
  • 套接字类型不匹配:chronyd的SOCK refclock默认仅支持UDP套接字,若你的转发程序或调制解调器用的是TCP套接字,chronyd根本无法读取数据。要么将转发程序改为创建UDP套接字,要么确认你的chronyd版本是否支持在refclock配置行添加proto tcp参数。

  • 权限不足:chronyd通常以chrony用户身份运行,/tmp/gps.sock的权限需允许该用户读写。可直接调整权限:

    chown chrony:chrony /tmp/gps.sock
    chmod 660 /tmp/gps.sock
    

    也可以让转发程序在创建套接字时直接设置正确权限。

  • GGPA格式不符合解析要求:chronyd的SOCK驱动需要接收可识别的时间格式(如NTP数据包、标准GPS时间戳),如果GGPA是自定义格式,chronyd无法解析。需让转发程序将GGPA转换为chrony能识别的格式,比如提取GPS时间戳包装成NTP包,或者输出包含时间、精度的标准字符串。

  • 配置参数存在问题:

    • precision 1e-1(0.1秒)的精度设置过于保守,GPS时间精度可达纳秒级,建议改为1e-9,过高的精度阈值可能导致chronyd判定数据源不可靠。
    • poll 3对应8秒轮询间隔,若GPS数据发送频率低于该间隔,chronyd会认为数据源不可用,可先改为poll 1(2秒)测试。
    • 务必注释掉配置文件中所有server或pool项,确保GPS是唯一同步源,避免chronyd优先选择其他时间源。
  • 查看日志定位错误:检查chronyd日志文件(通常为/var/log/chrony/chronyd.log或/var/log/messages),日志会记录refclock的初始化状态、数据接收情况或具体错误(如无法打开套接字)。

  • 验证套接字状态:用ss -xulnp | grep chronyd检查chronyd是否正在监听指定套接字,同时用nc或自定义工具测试套接字能否正常接收GGPA数据。

内容的提问来源于stack exchange,提问作者user1470618

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:52:19