[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, ¶ms);
> > 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, ¶ms);
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