[chrony-users] kernel PPS troubleshooting

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-users Archives ]


Hi,

I’m very new to chrony and am trying to do something that I believe to be supported.  I am trying to sync our system to two local GPS receivers depending on whether one or both of them have a fix, with a preference for the higher priced receiver.  As we are on an embedded platform I’m using the PPS-GPIO  kernel module to get our PPS signal in.  I’m working off of the chrony development branch for the PHC support because we will eventually will want to tie our PTP capable PHY into chrony and the rest of the system.

 

I’ve recently cross-compiled chrony-0308330 to run on our armv5 platform and it seems to silently/selectively ignore our PPS source even when it is present.  Currently all testing is being done with our cheap receiver (GPSi/PPSi below).   After ~hours I get a handful of entries into the refclocks.log for the PPSi source, but no mention on the console that the source is or is not present.  Right this instant we are getting updates to /sys/class/pps/pps1/assert every second but chronyc sources shows the LastRX as 26 minutes ago.

Is there a way to enable more verbose debugging of the chrony source selection/rejection process so that I can see why it is rejecting what look to be good PPS updates?  I’m happy to provide more information, logs, or compile options as necessary.

 

Thanks in advance!

Scott

 

Our system has the following sources currently configured:

/dev/ttyS0 is our high priced GPS

/dev/eser2 is our cheap GPS

/dev/pps0 is the pps signal from our expensive GPS

/dev/pps1 is the pps signal form our cheap GPS

 

We are using gpsd (3.10) to read in the GPSs as follows:

gpsd -bn /dev/ttyS0 /dev/eser2

 

the PPS-GPIO module is configured to look for rising edges on the two gpios, and connect them to pps0 and pps1, this works at ppstest captures consecutive reads from /dev/pps1 while I was running the chrony testing.

 

chrony.conf (commented out the socket interface to gpsd, a question for another post):

refclock PPS /dev/pps0 lock GPSe refid PPSe

refclock PPS /dev/pps1 lock GPSi refid PPSi

refclock SHM 0 offset 0.001 delay 0.0001 refid GPSe

refclock SHM 2 offset 0.140 delay 0.01 refid GPSi

#refclock SOCK /var/run/chrony.ttyS0.sock refid GPSe

#refclock SOCK /var/run/chrony.eser2.sock offset 0.140 delay 0.01 refid GPSi

logdir /var/log/chrony

log measurements statistics tracking refclocks

 

the following is the console output from chronyd –d:

:~# ./chronyd -d

main.c:355:(main)[25-22:50:52] chronyd version DEVELOPMENT starting

sys_linux.c:1022:(get_version_specific_details)[25-22:50:53] Linux kernel major=3 minor=3 patch=0

sys_linux.c:1080:(get_version_specific_details)[25-22:50:53] hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000 slew_delta_tick=833 max_tick_bias=1000 shift_pll=2

sources.c:913:(SRC_SelectSource)[25-22:51:56] Selected source GPSi

 

 



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/