Here is the configuration I use for a device that is not network-connected,
and uses GPS+PPS to derive accurate time. Note the offset for the GPS clock
so that the PPS signal can be aligned to the correct GPS time message.

refclock PPS /dev/pps0 poll 4 refid PPS lock GPS
refclock SHM 0 poll 4 offset 0.1 refid GPS
makestep 0.001 -1
maxupdateskew 1
lock_all
log refclocks
logdir /var/log

Simon.


On Fri, Apr 13, 2018 at 8:31 PM Alvaro Gamez <alvaro.ga...@hazent.com>
wrote:

> Hi!
>
> I'm trying to make chrony sync against a GPS and PPS signal, but it seems
> like the PPS is being ignored.
>
> I run gpsd attached to the serial console which has the GPS connected, and
> for PPS I want to use chrony, so this is the configuration I've set:
>
> # cat chrony.conf
> refclock SHM 0 refid GPS
> refclock PPS /dev/pps0 lock GPS refid PPS
> makestep 100 5
> logdir /tmp/logs
> log measurements tracking statistics refclocks
>
> I got in-kernel pps debug enabled, so when I start chronyd I can see on
> the console that the PPS signal is arriving and that there's someone
> (chronyd) accesing /dev/pps0:
>
> pps pps0: PPS_FETCH
> pps_core: ACCESS OK: READ  at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: timeout 0.000000000
> pps pps0: PPS event at 1523615280.496954999
> pps pps0: capture assert seq #902
> pps_core: ACCESS OK: WRITE at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: PPS event at 1523615281.472931499
> pps pps0: capture assert seq #903
> pps pps0: PPS_FETCH
> pps_core: ACCESS OK: READ  at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: timeout 0.000000000
> pps_core: ACCESS OK: WRITE at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: PPS event at 1523615282.472780341
> pps pps0: capture assert seq #904
> pps pps0: PPS_FETCH
> pps_core: ACCESS OK: READ  at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: timeout 0.000000000
> pps_core: ACCESS OK: WRITE at 0xbf85eb6c (size 0x3c), seg 0xbfffffff
> pps pps0: PPS event at 1523615283.472628439
> pps pps0: capture assert seq #905
>
> However, chrony doesn't seem to understand /dev/pps0 output, because this
> is what 'sources' command reports:
>
> 210 Number of sources = 2
> MS Name/IP address         Stratum Poll Reach LastRx Last
> sample
>
> ===============================================================================
> #* GPS                           0   4   377    22    +50ms[  +59ms] +/-
> 8042us
> #? PPS                           0   4     0     -     +0ns[   +0ns]
> +/-    0ns
>
> As such, refclocks.log shows only entries for GPS Refid, but none for PPS,
> as it seems even though it's connected, it isn't able to decipher what is
> being sent to it.
>
> Any ideas?
>
> Thanks, best regards!
>
>
> --
> Álvaro Gámez Machado
>

Reply via email to