Update ntp-4.2.8p13 --> 4.2.8p14. The advisory can be found at: http://support.ntp.org/bin/view/Main/SecurityNotice#\ March_2020_ntp_4_2_8p14_NTP_Rele No CVEs have been documented yet. MFC after: now Security: http://support.ntp.org/bin/view/Main/NtpBug3610 http://support.ntp.org/bin/view/Main/NtpBug3596 http://support.ntp.org/bin/view/Main/NtpBug3592
537 lines
20 KiB
HTML
537 lines
20 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Generic NMEA GPS Receiver</title>
|
|
<!-- Changed by: Pearly &, 04-Feb-2019 -->
|
|
<link href="scripts/style.css" type="text/css" rel="stylesheet">
|
|
<style type="text/css">
|
|
table.dlstable { font-size:85%; }
|
|
td.ttf{ font-family:Courier; font-weight:bold; }
|
|
</style></head>
|
|
|
|
|
|
|
|
<body>
|
|
<h3>Generic NMEA GPS Receiver</h3>
|
|
<p>Last update:
|
|
<!-- #BeginDate format:En2m -->13-Jan-2020 07:12<!-- #EndDate -->
|
|
UTC</p>
|
|
<hr>
|
|
<h4>Synopsis</h4>
|
|
|
|
<p>
|
|
Address: 127.127.20.<i>u</i><br>
|
|
Reference ID: <tt>GPS</tt><br>
|
|
Driver ID: <tt>GPS_NMEA</tt><br>
|
|
Serial Port: <tt>/dev/gps<i>u</i></tt>; 4800 - 115200 bps, 8-bits, no parity<br>
|
|
Serial Port: <tt>/dev/gpspps<i>u</i></tt>; for just the PPS signal (this
|
|
is tried first for PPS, before <tt>/dev/gps<i>u</i></tt>)<br>
|
|
Serial Port: <tt>/dev/gps<i>u</i></tt>; symlink to server:port (for nmead)<br>
|
|
Features: <tt>tty_clk</tt>
|
|
</p>
|
|
|
|
<h4>Description</h4>
|
|
|
|
<p>
|
|
This driver supports GPS receivers with
|
|
the <tt>$GPRMC</tt>, <tt>$GPGLL</tt>, <tt>$GPGGA</tt>, <tt>$GPZDA</tt>
|
|
and <tt>$GPZDG</tt> NMEA sentences by default. Note that Accord's
|
|
custom NMEA sentence <tt>$GPZDG</tt> reports using the GPS timescale,
|
|
while the rest of the sentences report UTC. The difference between
|
|
the two is a whole number of seconds which increases with each leap
|
|
second insertion in UTC. To avoid problems mixing UTC and GPS
|
|
timescales, the driver disables processing of UTC sentences
|
|
once <tt>$GPZDG</tt> is received.
|
|
<br>
|
|
<strong>Caveat:</strong> Please see <a href="#talkerids">Talker
|
|
IDs</a> when using non-GPS or multi-system receivers.
|
|
</p>
|
|
<p>
|
|
The driver expects the receiver to be set up to transmit at least one
|
|
supported sentence every second.
|
|
</p>
|
|
<p>
|
|
The accuracy depends on the receiver used. Inexpensive GPS models are
|
|
available with a claimed PPS signal accuracy of
|
|
1 μs or better relative to the broadcast
|
|
signal. However, in most cases the actual accuracy is limited by the
|
|
precision of the timecode and the latencies of the serial interface and
|
|
operating system.
|
|
</p>
|
|
<p>
|
|
If the Operating System supports PPSAPI
|
|
(<a href="http://www.ietf.org/rfc/rfc2783.txt">RFC 2783</a>), fudge flag1
|
|
1 enables its use.
|
|
</p>
|
|
<p>
|
|
The various GPS sentences that this driver recognises look like this:<br>
|
|
(others quietly ignored)
|
|
</p>
|
|
|
|
<p><table class="dlstable" border="1">
|
|
<caption>Accepted NMEA sentences</caption>
|
|
<tbody><tr>
|
|
<th>Sentence</th>
|
|
<th>Vendor</th>
|
|
</tr><tr>
|
|
<td class="ttf">$GPRMC,UTC,POS_STAT,LAT,LAT_REF,LON,LON_REF,SPD,HDG,DATE,MAG_VAR,MAG_REF*CS<cr><lf></td>
|
|
</tr><tr>
|
|
<td class="ttf">$GPGLL,LAT,LAT_REF,LON,LON_REF,UTC,POS_STAT*CS<cr><lf></td>
|
|
</tr><tr>
|
|
<td class="ttf">$GPGGA,UTC,LAT,LAT_REF,LON,LON_REF,FIX_MODE,SAT_USED,HDOP,ALT,ALT_UNIT,GEO,G_UNIT,D_AGE,D_REF*CS<cr><lf></td>
|
|
</tr><tr>
|
|
<td class="ttf">$GPZDA,UTC,DD,MM,YYYY,TH,TM,*CS<cr><lf></td>
|
|
</tr><tr>
|
|
<td class="ttf">$GPZDG,GPSTIME,DD,MM,YYYY,AA.BB,V*CS<cr><lf></td>
|
|
<td>Accord</td>
|
|
</tr><tr>
|
|
</tr><tr>
|
|
<td class="ttf">$PGRMF,gpsWk,gpsTow,DATE,UTC,LEAPS,LAT,LAT_REF,LON,LON_REF,TYPE,MODE,SPD,HDOP,TDOP*CS<cr><lf></td>
|
|
<td>Garmin</td>
|
|
</tr><tr>
|
|
<td class="ttf">$PUBX,04,UTC,DATE,utcTow,utcWk,LEAPS,clkBias,clkDrift,tpGran,*CS<cr><lf></td>
|
|
<td>UBLOX</td>
|
|
</tr>
|
|
</tbody></table></p>
|
|
|
|
<p><table class="dlstable" border="1">
|
|
<caption>NMEA data items</caption>
|
|
<tbody><tr>
|
|
<th>Symbol</th>
|
|
<th>Meaning and Format</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="ttf">ALT</td>
|
|
<td>Antenna Altitude</td>
|
|
</tr><tr>
|
|
<td class="ttf">ALT_UNIT</td>
|
|
<td>Altitude Units (Metres/Feet)</td>
|
|
</tr><tr>
|
|
<td class="ttf">DATE</td>
|
|
<td>Date (ddmmyy)</td>
|
|
</tr><tr>
|
|
<td class="ttf">DD</td>
|
|
<td>Day of the month (1-31)</td>
|
|
</tr><tr>
|
|
<td class="ttf">D_AGE</td>
|
|
<td>Age of last DGPS Fix</td>
|
|
</tr><tr>
|
|
<td class="ttf">D_REF</td>
|
|
<td>Reference ID of DGPS station</td>
|
|
</tr><tr>
|
|
<td class="ttf">FIX_MODE</td>
|
|
<td>Position Fix Mode (0 = Invalid, >0 = Valid)</td>
|
|
</tr><tr>
|
|
<td class="ttf">GEO</td>
|
|
<td>Geoid/Elipsoid separation</td>
|
|
</tr><tr>
|
|
<td class="ttf">GPSTIME</td>
|
|
<td>Time of day on GPS timescale. Hours, minutes and seconds [fraction (opt.)] (hhmmss[.f])</td>
|
|
</tr><tr>
|
|
<td class="ttf">gpsTow</td>
|
|
<td>GPS week time, seconds since start of GPS week (0..604799)</td>
|
|
</tr><tr>
|
|
<td class="ttf">gpsWk</td>
|
|
<td>Week number in the GPS time scale (may exceed 1024)</td>
|
|
</tr><tr>
|
|
<td class="ttf">G_UNIT</td>
|
|
<td>Geoid units (M/F)</td>
|
|
</tr><tr>
|
|
<td class="ttf">HDG</td>
|
|
<td>Heading/track made good (degrees True) (x.x)</td>
|
|
</tr><tr>
|
|
<td class="ttf">HDOP</td>
|
|
<td>Horizontal Dilution of Precision</td>
|
|
</tr><tr>
|
|
<td class="ttf">LAT</td>
|
|
<td>Latitude (llll.ll)</td>
|
|
</tr><tr>
|
|
<td class="ttf">LAT_REF</td>
|
|
<td>Latitude direction (N = North, S = South)</td>
|
|
</tr><tr>
|
|
<td class="ttf">LEAPS</td>
|
|
<td>Leap seconds or difference between GPS time scale and UTC</td>
|
|
</tr><tr>
|
|
<td class="ttf">LON</td>
|
|
<td>Longitude (yyyyy.yy)</td>
|
|
</tr><tr>
|
|
<td class="ttf">LON_REF</td>
|
|
<td>Longitude direction (E = East, W = West)</td>
|
|
</tr><tr>
|
|
<td class="ttf">MAG_REF</td>
|
|
<td>Magnetic variation (E = East, W = West)</td>
|
|
</tr><tr>
|
|
<td class="ttf">MAG_VAR</td>
|
|
<td>Magnetic variation (degrees) (x.x)</td>
|
|
</tr><tr>
|
|
<td class="ttf">MM</td>
|
|
<td>Month of the year (1-12)</td>
|
|
</tr><tr>
|
|
<td class="ttf">POS_STAT</td>
|
|
<td>Position status. (A = Data valid, V = Data invalid)</td>
|
|
</tr><tr>
|
|
<td class="ttf">SAT_USED</td>
|
|
<td>Number of Satellites used in solution</td>
|
|
</tr><tr>
|
|
<td class="ttf">SPD</td>
|
|
<td>Speed over ground. (knots) (x.x)</td>
|
|
</tr><tr>
|
|
<td class="ttf">UTC</td>
|
|
<td>Time of day on UTC timescale. Hours, minutes and seconds [fraction (opt.)] (hhmmss[.fff])</td>
|
|
</tr><tr>
|
|
<td class="ttf">YYYY</td>
|
|
<td>Year</td>
|
|
</tr><tr>
|
|
<td class="ttf">WEEK</td>
|
|
<td>GPS week (0-1023)</td>
|
|
</tr><tr>
|
|
<td class="ttf">WSEC</td>
|
|
<td>Seconds since start of week (0-604799)</td>
|
|
</tr><tr>
|
|
<td class="ttf">LEAP</td>
|
|
<td>GPS leap seconds, that is, seconds ahead of UTC</td>
|
|
</tr><tr>
|
|
<td class="ttf">AA.BB</td>
|
|
<td>Denotes the signal strength (should be < 05.00)</td>
|
|
</tr><tr>
|
|
<td class="ttf">V</td>
|
|
<td>GPS sync status<br>
|
|
'0' => INVALID time,<br>
|
|
'1' => accuracy of +/- 20ms,<br>
|
|
'2' => accuracy of +/- 100ns</td>
|
|
</tr><tr>
|
|
<td class="ttf">CS</td>
|
|
<td> Checksum</td>
|
|
</tr><tr>
|
|
<td class="ttf"><cr><lf></td>
|
|
<td>Sentence terminator.</td>
|
|
</tr>
|
|
</tbody></table></p>
|
|
|
|
|
|
<h4><a name="talkerids"/>NMEA Talker IDs</h4>
|
|
|
|
<p>
|
|
GNSS receivers use a distinct talker ID for the GNSS they
|
|
process. Receivers capable of tracking different systems at the same time
|
|
can emit <tt>$GPRMC</tt> (GPS), <tt>$GLRMC</tt> (GLONASS),
|
|
<tt>$GARMC</tt> (Galileo), <tt>$GNRMC</tt> (generic/combined) and others
|
|
all in one data stream.
|
|
</p><p>
|
|
The driver supports this to a certain degree by ignoring the
|
|
talker ID on the standard sentences RMC, GLL, GGA, ZDA and ZDG. (It
|
|
possibly should not do that on the latter, but for now, that's the way
|
|
it is.) So whenever <tt>$GPRMC</tt> is mentioned in this document,
|
|
substitute any possible talker ID your receiver might emit -- it will
|
|
still match.
|
|
</p><p>
|
|
This approach has a drawback. It is easy to use for single-system
|
|
receivers, but it cannot separate the data streams for multi-system
|
|
receiver modules. It is therefore undefined which GNSS actually
|
|
provides the data, and this can lead to strange behavior. This is
|
|
especially true if the different GNSS provide very different signal
|
|
quality to the receiver; the driver is not able to cherry-pick the best
|
|
source and might actually end up in using the worst available. It is
|
|
therefore recommended to set up such a receiver to either use just a
|
|
single GNSS (which would defeat its purpose) or to emit only the
|
|
combined data, which usually has the <tt>GN</tt> talker ID defined by
|
|
the NMEA standard.
|
|
<p>
|
|
|
|
|
|
<h4>The 'mode' byte</h4>
|
|
|
|
<p>
|
|
Specific GPS sentences and bitrates may be selected by setting bits of
|
|
the 'mode' in the server configuration line:<br> <tt>server
|
|
127.127.20.x mode X</tt>
|
|
</p>
|
|
|
|
<table border="1">
|
|
<caption>mode byte bits and bit groups</caption>
|
|
<tbody><tr>
|
|
<th align="center">Bit</th>
|
|
<th align="center">Decimal</th>
|
|
<th align="center">Hex</th>
|
|
<th align="left">Meaning</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center">0</td>
|
|
<td align="center">1</td>
|
|
<td align="center">1</td>
|
|
<td>process <tt>$GPRMC</tt></td>
|
|
</tr><tr>
|
|
<td align="center">1</td>
|
|
<td align="center">2</td>
|
|
<td align="center">2</td>
|
|
<td>process <tt>$GPGGA</tt></td>
|
|
</tr><tr>
|
|
<td align="center">2</td>
|
|
<td align="center">4</td>
|
|
<td align="center">4</td>
|
|
<td>process <tt>$GPGLL</tt></td>
|
|
</tr><tr>
|
|
<td align="center">3</td>
|
|
<td align="center">8</td>
|
|
<td align="center">8</td>
|
|
<td>process <tt>$GPZDA</tt> or <tt>$GPZDG</tt></td>
|
|
</tr><tr>
|
|
<td rowspan="6" align="center">4-6</td>
|
|
<td align="center">0</td>
|
|
<td align="center">0</td>
|
|
<td>linespeed 4800 bps</td>
|
|
</tr><tr>
|
|
<td align="center">16</td>
|
|
<td align="center">0x10</td>
|
|
<td>linespeed 9600 bps</td>
|
|
</tr><tr>
|
|
<td align="center">32</td>
|
|
<td align="center">0x20</td>
|
|
<td>linespeed 19200 bps</td>
|
|
</tr><tr>
|
|
<td align="center">48</td>
|
|
<td align="center">0x30</td>
|
|
<td>linespeed 38400 bps</td>
|
|
</tr><tr>
|
|
<td align="center">64</td>
|
|
<td align="center">0x40</td>
|
|
<td>linespeed 57600 bps</td>
|
|
</tr><tr>
|
|
<td align="center">80</td>
|
|
<td align="center">0x50</td>
|
|
<td>linespeed 115200 bps</td>
|
|
</tr><tr>
|
|
<td align="center">7</td>
|
|
<td align="center">128</td>
|
|
<td align="center">0x80</td>
|
|
<td>Write the sub-second fraction of the receive time stamp to the
|
|
clockstat file for all recognised NMEA sentences. This can be used to
|
|
get a useful value for fudge time2.<br><strong>Caveat:</strong> This
|
|
will fill your clockstat file rather fast. Use it only temporarily to
|
|
get the numbers for the NMEA sentence of your choice.</td>
|
|
</tr>
|
|
</tr><tr>
|
|
<td align="center">8</td>
|
|
<td align="center">256</td>
|
|
<td align="center">0x100</td>
|
|
<td>process <tt>$PGRMF</tt></td>
|
|
</tr><tr>
|
|
<td align="center">9</td>
|
|
<td align="center">512</td>
|
|
<td align="center">0x200</td>
|
|
<td>process <tt>$PUBX,04</tt></td>
|
|
</tr><tr>
|
|
<td align="center">10-15</td>
|
|
<td align="center"></td>
|
|
<td align="center">0xFC00</td>
|
|
<td>reserved - leave 0</td>
|
|
</tr><tr>
|
|
<td align="center">16</td>
|
|
<td align="center">65536</td>
|
|
<td align="center">0x10000</td>
|
|
<td>Append extra statistics to the clockstats line.
|
|
Details below.</td>
|
|
</tr><tr>
|
|
<td align="center">17</td>
|
|
<td align="center">131072</td>
|
|
<td align="center">0x20000</td>
|
|
<td>"Silent PPS" mode. Use the PPS channel (if enabled with
|
|
fudge flag 1) to get precise receive time stamps.
|
|
Do <em>not</em> set the PPS flag in the clock status, so the
|
|
clock is not considered as PPS peer.
|
|
</td>
|
|
</tr><tr>
|
|
<td align="center">18</td>
|
|
<td align="center">262144</td>
|
|
<td align="center">0x40000</td>
|
|
<td>Trust the date delivered via NMEA. Do this only if
|
|
you <em>really</em> trust the receiver!
|
|
See <a href="#datetrust">below</a>. <strong>Caveat:</strong>
|
|
This (hitherto undocumented) bit has moved!
|
|
</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
|
|
<p>
|
|
The default (mode 0) is to process all supported sentences at a linespeed
|
|
of 4800 bps, which results in the first one received and recognised in
|
|
each cycle being used. If only specific sentences should be
|
|
recognised, then the mode byte must be chosen to enable only the selected
|
|
ones. Multiple sentences may be selected by adding their mode bit
|
|
values, but of those enabled still only the first received sentence in a
|
|
cycle will be used. Using more than one sentence per cycle is
|
|
impossible, because
|
|
</p><ul>
|
|
<li>there is only <a href="#fudgetime2">fudge time2</a> available to
|
|
compensate for transmission delays but every sentence would need a
|
|
different one and
|
|
</li><li>using more than one sentence per cycle overstuffs the internal data
|
|
filters.
|
|
</li></ul>
|
|
The driver uses 4800 bits per second by default, but faster bitrates can
|
|
be selected using bits 4 to 6 of the mode field.
|
|
</p>
|
|
|
|
<p>
|
|
<strong>Caveat:</strong> Using higher line speeds does not necessarily
|
|
increase the precision of the timing device. Higher line speeds are
|
|
not necessarily helpful for the NMEA driver, either. They can be
|
|
used to accomodate for an amount of data that does not fit into a
|
|
1-second cycle at 4800 bps, but high-speed high-volume NMEA data is likely
|
|
to cause trouble with the serial line driver since NMEA supports no
|
|
protocol handshake. Any device that is exclusively used for time
|
|
synchronisation purposes should be configured to transmit the relevant
|
|
data only, e.g. one <tt>$GPRMC</tt> or <tt>$GPZDA</tt> per second, at a
|
|
linespeed of 4800 bps or 9600 bps.
|
|
</p>
|
|
|
|
<h4><a name="datetrust"/>About distrusting NMEA date stamps</h4>
|
|
<p>
|
|
Trusting the calendar dates delivered via NMEA is a risky thing, and by
|
|
default these dates are handled with a huge dose of skepticism. Many
|
|
receivers deliver a correct calendar date for a period of just 1024 weeks,
|
|
with a starting point baked somewhere into their firmware. Beyond that,
|
|
they warp back to the begin of their era and simply provide wrong date
|
|
information. To battle this widely observed effect, the date delivered is
|
|
by default reduced to GPS time again and then (re-)mapped according to the
|
|
base date, either the implicit value or the value set via "tos basedate".
|
|
If the receiver can <em>really</em> be trusted to deliver the right date
|
|
(which is not impossible, just more expensive for the manufacturer), then
|
|
mode bit 18 can be used to bypass the era mapping. Setting this bit is
|
|
not needed under most circumstances, and setting it with an unreliable
|
|
receiver can have severe effects. Handle with care.
|
|
</p><p>
|
|
<strong>Note:</strong> This functionality was available for some time as
|
|
undocumented feature, with a different bit value. It was moved in the
|
|
process of becoming officially acknowledged to avoid excessive scattering
|
|
of the mode bit mask.
|
|
</p>
|
|
|
|
|
|
<h4>Monitor Data</h4>
|
|
|
|
<p>The last GPS sentence that is accepted or rejected is written to the
|
|
clockstats file and available with <code>ntpq -c clockvar</code>.
|
|
(Logging the rejected sentences lets you see/debug why they were rejected.)
|
|
Filtered sentences are not logged.</p>
|
|
|
|
<p>
|
|
If the 0x10000 mode bit is on and clockstats is enabled, several extra
|
|
counters will be appended to the NMEA sentence that gets logged.
|
|
For example:
|
|
<pre>
|
|
56299 76876.691 127.127.20.20 $GPGGA,212116.000,3726.0785,N,12212.2605,W,1,05,2.0,17.0,M,-25.7,M,,0000*5C 228 64 0 0 64 0
|
|
</pre>
|
|
</p>
|
|
|
|
<table border="1">
|
|
<caption>Clockstats</caption>
|
|
<tbody><tr>
|
|
<th align="center">Column</th>
|
|
<th align="center">Sample</th>
|
|
<th align="left">Meaning</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center">1</td>
|
|
<td align="center">56299</td>
|
|
<td>MJD</td>
|
|
</tr><tr>
|
|
<td align="center">2</td>
|
|
<td align="center">76876.691</td>
|
|
<td>Time of day in seconds</td>
|
|
</tr><tr>
|
|
<td align="center">3</td>
|
|
<td align="center">127.127.20.20</td>
|
|
<td>IP Address from server config line</td>
|
|
</tr><tr>
|
|
<td align="center">4</td>
|
|
<td align="center">$GPGGA,...0*5C</td>
|
|
<td>NMEA Sentence</td>
|
|
</tr><tr>
|
|
<td align="center">5</td>
|
|
<td align="center">228</td>
|
|
<td>Number of sentences received</td>
|
|
</tr><tr>
|
|
<td align="center">6</td>
|
|
<td align="center">64</td>
|
|
<td>Number of sentences accepted and used for timekeeping</td>
|
|
</tr><tr>
|
|
<td align="center">7</td>
|
|
<td align="center">0</td>
|
|
<td>Number of sentences rejected because they were marked invalid (poor signal)</td>
|
|
</tr><tr>
|
|
<td align="center">8</td>
|
|
<td align="center">0</td>
|
|
<td>Number of sentences rejected because of bad checksum or invalid date/time</td>
|
|
</tr><tr>
|
|
<td align="center">9</td>
|
|
<td align="center">64</td>
|
|
<td>Number of sentences filtered by mode bits or same second</td>
|
|
</tr><tr>
|
|
<td align="center">10</td>
|
|
<td align="center">0</td>
|
|
<td>Number of PPS pulses used, overrides NMEA sentences</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
Sentences like $GPGSV that don't contain the time will get
|
|
counted in the total but otherwise ignored.
|
|
|
|
<p>
|
|
<a href="https://support.ntp.org/bin/view/Support/ConfiguringNMEARefclocks">Configuring
|
|
NMEA Refclocks</a> might give further useful hints for specific hardware
|
|
devices that exhibit strange or curious behaviour.
|
|
</p>
|
|
|
|
<p>
|
|
To make a specific setting, select the corresponding decimal values from
|
|
the mode byte table, add them all together and enter the resulting
|
|
decimal value into the clock configuration line.
|
|
</p>
|
|
|
|
<h4>Setting up the Garmin GPS-25XL</h4>
|
|
|
|
Switch off all output with by sending it the following string.
|
|
<pre>"$PGRMO,,2<cr><lf>"</pre>
|
|
<p>Now switch only $GPRMC on by sending it the following string.</p>
|
|
<pre>"$PGRMO,GPRMC,1<cr><lf>"</pre>
|
|
|
|
<p>On some systems the PPS signal isn't switched on by default. It can be
|
|
switched on by sending the following string.</p>
|
|
<pre>"$PGRMC,,,,,,,,,,,,2<cr><lf>"</pre>
|
|
|
|
<h4>Fudge Factors</h4>
|
|
|
|
<dl>
|
|
<dt><tt>time1 <i>time</i></tt></dt>
|
|
<dd>Specifies the PPS time offset calibration factor, in seconds and fraction, with default 0.0.</dd>
|
|
<dt><a name="fudgetime2"><tt>time2 <i>time</i></tt></a></dt>
|
|
<dd>Specifies the serial end of line time offset calibration factor, in seconds and fraction, with default
|
|
0.0.</dd>
|
|
<dt><tt>stratum <i>number</i></tt></dt>
|
|
<dd>Specifies the driver stratum, in decimal from 0 to 15, with default 0.</dd>
|
|
<dt><tt>refid <i>string</i></tt></dt>
|
|
<dd>Specifies the driver reference identifier, an ASCII string from one to four characters, with
|
|
default <tt>GPS</tt>.</dd>
|
|
<dt><tt>flag1 0 | 1</tt></dt>
|
|
<dd>Disable PPS signal processing if 0 (default); enable PPS signal processing if 1.</dd>
|
|
<dt><tt>flag2 0 | 1</tt></dt>
|
|
<dd>If PPS signal processing is enabled, capture the pulse on the rising edge if 0 (default); capture on the
|
|
falling edge if 1.</dd>
|
|
<dt><tt>flag3 0 | 1</tt></dt>
|
|
<dd>If PPS signal processing is enabled, use the <tt>ntpd</tt> clock discipline if 0 (default); use the kernel
|
|
discipline if 1.</dd>
|
|
<dt><tt>flag4 0 | 1</tt></dt>
|
|
<dd>Obscures location in timecode: 0 for disable (default), 1 for enable.</dd>
|
|
</dl>
|
|
|
|
<p>Additional Information</p>
|
|
<p><tt>flag1</tt>, <tt>flag2</tt>, and <tt>flag3</tt> are ignored under Windows.</p>
|
|
<p><a href="../refclock.html">Reference Clock Drivers</a></p>
|
|
<hr>
|
|
<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
|
|
</body></html>
|