Subject: Re: ntpd problems with GPS receiver under NetBSD-amd64
To: Alicia da Conceicao <alicia@engine.ca>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-net
Date: 02/03/2005 11:29:28
In message <420141D0.5060304@engine.ca>Alicia da Conceicao writes
>Greetings:
[...]
>a loss as to why ntpd is failing for the NMEA pseduo-port at 127.127.20.0.
>
>Looking at the NetBSD kernel source code, the original of that EPERM errno
>value outputed by ntpd appears to originate in "/usr/src/sys/kern/tty.c"
>when ntpd attempts to do a "ioctl(rio->fd,TIOCSCTTY,0)" in "libntp/iosignal.c"
>to become a controlling tty.
>
>Any suggestions is greatly apprecated.
>
>Thanks in advance.
>Alicia.

Alicia,

For NTP PPS purposes, NMEA timecodes aren't good for much more than
indicating that the refclock ticked at some unknown point within the
NMEA burst. You can calibrate to the correct year and day and hour.

The idea is that you'd use an TTL-to-RS232 level converter to hook the
PPS pusle up to the modem leads of an RS-232 port. Then, NTP should use
the RFC-2783 API to  obtain timesamps of the leadning and trailing-edge 
interrupts.

Alternatively, and I beleieve supported on FreeBSD, is to hook up the
PPS signal to a parallel-port lead; though that way, you can only get
notification of a single edge.  (I haven't done this in so long that
I'm not a good source of advice (I seem to end up recommending test
tools, then discovering the tools aren't actually in a NetBSD
distribution because I forgot to commit them.)

current-users@netbsd.org might be a better place to ask.