PPS:如何从PPS调整系统时钟?

时间:2019-02-15 23:34:24

标签: linux timer ntp real-time-clock system-clock

在Linux PPS文档中说:

  

PPS表示“每秒脉冲数”,而PPS信号源只是一种   每秒提供高精度信号,从而使应用   可以用来调整系统时钟时间。

但是我还没有找到如何调整系统时钟计时器(hwclock)的方法。 我宁愿不以最简单的方式使用ntp来使系统计时器与PPS同步。

是否可以从PPS调整系统计时器(不使用ntp)?

我也不太了解pps时间,可以使用time_pps_fetch命令从用户空间读取pps时间(请参阅ppstest.c示例)

如果linuxpps是仅“每秒脉冲数”的时钟,它如何提供纳秒分辨率?

2 个答案:

答案 0 :(得分:0)

好吧,您的系统中需要一个pps设备(例如/ dev / pps0)。

如果您已经将PPS源(例如gps接收器)连接到串行接口,则可以通过 ldattach 命令(例如' sudo ldattach pps / dev / ttyS0 ')来实现。端口(/ dev / ttyS0)。之后,您可以将/ dev / pps0作为设备路径提供给time_pps_fetch函数。或控制台应用程序 pps_test 。您可以阅读更详细的说明(使用udev的规则,通过systemd服务自动启动)here

我希望它会对您有所帮助;)

答案 1 :(得分:0)

最简单的解决方案是在需要将系统时钟连接到PPS时使用ntpd。

任何其他选择都需要使用adjtimex()编写实现。