Provided by: linuxptp_4.0-1ubuntu1.1_amd64 

NAME
ts2phc - Synchronizes one or more PTP Hardware Clocks using external time stamps.
SYNOPSIS
ts2phc [ -hmqv ] [ -c device|name ] [ -f config ] [ -l print-level ] [ -s device|name ] [ long-options ]
...
DESCRIPTION
ts2phc synchronizes PTP Hardware Clocks (PHC) to external time stamp signals. A single source may be
used to distribute time to one or more PHC devices.
OPTIONS
-a Adjust the direction of synchronization automatically. The program determines which PHC should the
reference clock for time distribution and which should be the destinations by querying the port
states from the running instance of ptp4l. Note that using this option, the PPS signal
distribution hierarchy still remains fixed as per the configuration file. This implies that using
this option, a PPS source of the PHC kind may become a target clock, and a PPS sink may become a
reference clock. Other, non-PHC types of PPS sources (generic, NMEA) cannot become target clocks.
Clocks which are not part of ptp4l's list of ports are not synchronized. This option is useful
when the boundary_clock_jbod option of ptp4l is also enabled.
-c device|name
Specifies a PHC to be synchronized. The clock may be identified by its character device (like
/dev/ptp0) or its associated network interface (like eth0). This option may be given multiple
times.
-f config
Read configuration from the specified file. No configuration file is read by default.
-h Displays the command line help summary.
-l print-level
Sets the maximum syslog level of messages which should be printed or sent to the system logger.
The default is 6 (LOG_INFO).
-m Prints log messages to the standard output.
-q Prevents sending log messages to the system logger.
-s device|name
Specifies the source of the Time of Day (ToD) data. Use the key word "generic" for an external
1-PPS without ToD information. When using a PHC as the time source, the clock may be identified
by its character device (like /dev/ptp0) or its associated network interface (like eth0). Use the
key word "nmea" for an external 1-PPS from a GPS providing ToD information via the RMC NMEA
sentence.
-v Prints the software version and exits.
LONG OPTIONS
Each and every configuration file option (see below) may also appear as a "long" style command line
argument. For example, the use_syslog option may be set using either of these two forms.
--use_syslog 1 --use_syslog=1
Option values given on the command line override values in the global section of the configuration file.
CONFIGURATION FILE
The configuration file is divided into sections. Each section starts with a line containing its name
enclosed in brackets and it follows with settings. Each setting is placed on a separate line, it
contains the name of the option and the value separated by whitespace characters. Empty lines and lines
starting with # are ignored.
There are two different section types.
1. The global section (indicated as [global]) sets the program options and the default time sink
options. Other sections are clock specific sections, and they override the default options.
2. Time sink sections give the name of the configured PHC (e.g. [eth0]). Time sinks specified in
the configuration file need not be specified with the -c command line option.
GLOBAL OPTIONS
first_step_threshold
The maximum offset, specified in seconds, that the servo will correct by changing the clock
frequency (phase when using nullf servo) instead of stepping the clock. This is only applied on
the first update. When set to 0.0, the servo will not step the clock on start. The default is
0.00002 (20 microseconds).
free_running
When set to 1, no PHC will be adjusted. This option can be useful in test scenarios, for example
to determine how well synchronized a group of local clocks are to each other. The default is 0
(adjust the clocks).
leapfile
The path to the current leap seconds definition file. In a Debian system this file is provided by
the tzdata package and can be found at /usr/share/zoneinfo/leap-seconds.list. If a leapfile is
configured it will be reloaded if modified. The default is an empty string, which causes the
program to use a hard coded table that reflects the known leap seconds on the date of the
software's release.
logging_level
The maximum logging level of messages which should be printed. The default is 6 (LOG_INFO).
max_frequency
The maximum allowed frequency adjustment of the clock in parts per billion. This is an additional
limit to the maximum allowed by the hardware. When set to 0, the hardware limit will be used. The
default is 900000000 (90%).
message_tag
The tag which is added to all messages printed to the standard output or system log. The default
is an empty string (which cannot be set in the configuration file as the option requires an
argument).
step_threshold
The maximum offset, specified in seconds, that the servo will correct by changing the clock
frequency instead of stepping the clock. When set to 0.0, the servo will never step the clock
except on start. The default is 0.0.
ts2phc.nmea_remote_host, ts2phc.nmea_remote_port
Specifies the remote host providing ToD information when using the "nmea" PPS signal source. Note
that if these two options are both specified, then the given remote connection will be used in
preference to the configured serial port. These options default to the empty string, that is, not
specified.
ts2phc.nmea_serialport, ts2phc.nmea_baudrate
Specifies the serial port and baudrate in bps for character device providing ToD information when
using the "nmea" PPS signal source. Note that if the options, ts2phc.nmea_remote_host and
ts2phc.nmea_remote_port, are both specified, then the given remote connection will be used in
preference to the configured serial port. The default serial port is "/dev/ttyS0". The default
baudrate is 9600 bps.
ts2phc.perout_phase
Configures the offset between the beginning of the second and the PPS source's rising edge.
Available only for the PHC kind of PPS source. The supported range is 0 to 999999999 nanoseconds.
The default is 0 nanoseconds, but leaving this option unspecified will not transmit the phase to
the kernel, instead PPS will be requested to start at an absolute time equal to the nearest 2nd
full second since the start of the program. This should yield the same effect, but may not work
with drivers that do not support starting periodic output at an absolute time.
ts2phc.pulsewidth
The pulse width of the external PPS signal in nanoseconds. When 'ts2phc.extts_polarity' is
"both", the given pulse width is used to detect and discard the time stamp of the unwanted edge.
In case the PPS source is of the PHC kind, an attempt is made to request the kernel to actually
emit using this pulse width. If this fails, it is assumed that the specified pulse width is
correct, and the value is used in the edge rejection algorithm. The supported range is 1000000 to
990000000 nanoseconds. The default is 500000000 nanoseconds.
ts2phc.tod_source
Specifies the source of Time of Day (ToD) data. Use the key word "generic" for an external 1-PPS
without ToD information. When using a PHC as the time source, the clock may be identified by its
character device (like /dev/ptp0) or its associated network interface (like eth0). Use the key
word "nmea" for an external 1-PPS from a GPS providing ToD information via the RMC NMEA sentence.
The default is "generic"
use_syslog
Print messages to the system log if enabled. The default is 1 (enabled).
verbose
Print messages to the standard output if enabled. The default is 0 (disabled).
TIME SINK OPTIONS
ts2phc.channel
The external time stamping or periodic output channel to be used. Some PHC devices feature
programmable pins and one or more time stamping channels. This option allows selecting a
particular channel to be used. When using a PHC device as the PPS source, this option selects the
periodic output channel. The default is channel 0.
ts2phc.extts_correction
The value, in nanoseconds, to be added to each PPS time stamp. The default is 0 (no correction).
ts2phc.extts_polarity
The polarity of the external PPS signal, either "rising" or "falling". Some PHC devices always
time stamp both edges. Setting this option to "both" will allow the ts2phc program to work with
such devices by detecting and ignoring the unwanted edge. In this case be sure to set
'ts2phc.pulsewidth' to the correct value. The default is "rising".
ts2phc.master
Setting this option to 1 configures the given PHC device as the source of the PPS signal. The
default is 0 for the time sink role.
ts2phc.pin_index
The pin index to be used. Some PHC devices feature programmable pins, and this option allows
configuration of a particular pin for the external time stamping or periodic output function. The
default is pin index 0.
WARNING
Be cautious when sharing the same configuration file between ptp4l, phc2sys, and ts2phc. Keep in mind
that values specified in the configuration file take precedence over the default values. If an option
which is common to the other programs is set in the configuration file, then the value will be applied to
all the programs using the file, and this might not be what is expected.
It is recommended to use separate configuration files for ptp4l, phc2sys, and ts2phc in order to avoid
any unexpected behavior.
SEE ALSO
phc2sys(8) ptp4l(8)
linuxptp February 2023 TS2PHC(8)