[LinuxPPS] ntp-dev-4.2.5p237-RC does sync with PPS for me

Rodolfo Giometti giometti at enneenne.com
Wed Oct 28 14:32:06 CET 2009


On Wed, Oct 28, 2009 at 08:18:51AM -0500, William S. Brasher wrote:
> On Wed, 28 Oct 2009, Rodolfo Giometti wrote:
> 
> > On Tue, Oct 27, 2009 at 04:52:36PM -0500, William S. Brasher wrote:
> > > On Tue, 27 Oct 2009, Rodolfo Giometti wrote:
> > > 
> > 
> > 
> > It should depend on PPS mode is set... maybe we should change ppstest
> > program as follow:
> > 
> > diff --git a/Documentation/pps/ppstest.c b/Documentation/pps/ppstest.c
> > index d911bf6..6f73a02 100644
> > --- a/Documentation/pps/ppstest.c
> > +++ b/Documentation/pps/ppstest.c
> > @@ -54,7 +54,7 @@ int find_source(char *path, pps_handle_t *handle,
> > int *avail_m
> >         }
> >         params.assert_offset.tv_sec = 0;
> >         params.assert_offset.tv_nsec = 675;
> > -       params.mode |= PPS_CAPTUREASSERT | PPS_OFFSETASSERT;
> > +       params.mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT;
> >         ret = time_pps_setparams(*handle, &params);
> >         if (ret < 0) {
> >                 fprintf(stderr, "cannot set parameters (%m)\n");
> > 
> > In order to force PPS_CAPTUREASSERT only on all sources.
> > 
> > Can you please try this modification?
> > 
> > Ciao,
> > 
> > Rodolfo
> > 
> > -- 
> > 
> > GNU/Linux Solutions                  e-mail: giometti at enneenne.com
> > Linux Device Driver                          giometti at linux.it
> > Embedded Systems                     phone:  +39 349 2432127
> > UNIX programming                     skype:  rodolfo.giometti
> > Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
> > 
> > 
> 
> 
> Done.  The result is the same.  Ntpd rejects pps out of hand:
> 
> root at spectre: # ntpq -p
>      remote           refid      st t when poll reach   delay   offset  jitter
> ==============================================================================
> xGPS_NMEA(0)     .GPS.            0 l   12   16  377    0.000  107.412  13.774
> xPPS(0)          .PPS.            0 l   11   16  377    0.000  107.412  13.630
> *chronos         .PPS.            1 u   37   64  177    0.113   41.837  35.745

The above modification doesn't affect NTPD at all... you should use
ppstest only.

> and the clear sequence number is not advancing:
> 
> root at spectre: # ppstest /dev/pps0
> trying PPS source "/dev/pps0"
> found PPS source "/dev/pps0"
> ok, found 1 source(s), now start fetching data...
> source 0 - assert 1256735232.886904849, sequence: 456 - clear  1256734786.998287980, sequence: 10
> source 0 - assert 1256735233.886712462, sequence: 457 - clear  1256734786.998287980, sequence: 10
> source 0 - assert 1256735234.886520177, sequence: 458 - clear  1256734786.998287980, sequence: 10
> source 0 - assert 1256735235.886327307, sequence: 459 - clear  1256734786.998287980, sequence: 10
> source 0 - assert 1256735236.886135754, sequence: 460 - clear  1256734786.998287980, sequence: 10

This sounds good to me since CLEAR capture is disabled. :)

However a better implementation of the above setting should be:

diff --git a/Documentation/pps/ppstest.c b/Documentation/pps/ppstest.c
index d911bf6..30c8f6d 100644
--- a/Documentation/pps/ppstest.c
+++ b/Documentation/pps/ppstest.c
@@ -55,6 +55,7 @@ int find_source(char *path, pps_handle_t *handle,
int *avail_m
        params.assert_offset.tv_sec = 0;
        params.assert_offset.tv_nsec = 675;
        params.mode |= PPS_CAPTUREASSERT | PPS_OFFSETASSERT;
+       params.mode &= ~(PPS_CAPTURECLEAR | PPS_OFFSETCLEAR);
        ret = time_pps_setparams(*handle, &params);
        if (ret < 0) {
                fprintf(stderr, "cannot set parameters (%m)\n");

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti at enneenne.com
Linux Device Driver                          giometti at linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it



More information about the LinuxPPS mailing list