Provided by: linuxptp_4.0-1ubuntu1_amd64 bug

NAME

       timemaster - run NTP with PTP as reference clocks

SYNOPSIS

       timemaster [ -nmqv ] [ -l print-level ] -f file

DESCRIPTION

       timemaster is a program that uses ptp4l and phc2sys in combination with chronyd or ntpd to
       synchronize the system clock to NTP and PTP time sources. The  PTP  time  is  provided  by
       phc2sys  and  ptp4l  via  SOCK  reference clock to chronyd or SHM reference clock to ntpd,
       which can compare all time sources and use the best  sources  to  synchronize  the  system
       clock.

       On  start,  timemaster  reads  a  configuration  file  that specifies the NTP and PTP time
       sources, checks which network interfaces have  and  share  a  PTP  hardware  clock  (PHC),
       generates  configuration  files  for ptp4l and chronyd/ntpd, and start the ptp4l, phc2sys,
       chronyd/ntpd processes as needed. Then, it waits for  a  signal  to  kill  the  processes,
       remove the generated configuration files and exit.

OPTIONS

       -f file
              Specify the path to the timemaster configuration file.

       -n     Don't  start  the  programs,  only print their configuration files and the commands
              that would be executed if this option wasn't specified.

       -l level
              Set the maximum syslog level of messages which should be printed  or  sent  to  the
              system logger. The default value is 6 (LOG_INFO).

       -m     Print messages to the standard output.

       -q     Don't send messages to the system logger.

       -v     Print the software version and exit.

       -h     Display a help message and exit.

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.

       Sections that can used in the configuration file and options that can be set in  them  are
       described below.

   [timemaster]
       ntp_program
              Select  which  NTP  implementation  should be used. Possible values are chronyd and
              ntpd. The default value is chronyd. Limitations of the implementations relevant  to
              the timemaster configuration are listed in NOTES.

       rundir Specify   the   directory  where  should  be  generated  chronyd,  ntpd  and  ptp4l
              configuration files and sockets. The directory will be created if it doesn't exist.
              The default value is /var/run/timemaster.

       first_shm_segment
              Specify  the  first number in a sequence of SHM segments that will be used by ptp4l
              and phc2sys. The default value is 0. Increasing the number can be useful  to  avoid
              conflicts  with  time  sources  that are not started by timemaster, e.g. gpsd using
              segments number 0 and 1.

       restart_processes
              Enable or disable restarting of processes started by timemaster. If the  option  is
              set   to  a  non-zero  value,  all  processes  except  chronyd  and  ntpd  will  be
              automatically restarted when terminated and timemaster is running for at least  one
              second  (i.e.  the  process  did  not terminate due to a configuration error). If a
              process was terminated and is not started again, timemaster  will  kill  the  other
              processes and exit with a non-zero status.  The default value is 1 (enabled).

       use_vclocks
              Enable  or disable synchronization with virtual clocks. If enabled, timemaster will
              create virtual clocks running on top of physical clocks needed  by  configured  PTP
              domains. This enables hardware time stamping for multiple ptp4l instances using the
              same network interface. The default value is -1, which enables the  virtual  clocks
              if running on Linux 5.18 or later.

   [ntp_server address]
       The  ntp_server  section specifies an NTP server that should be used as a time source. The
       address of the server is included in the name of the section.

       minpoll
       maxpoll
              Specify the minimum and maximum NTP polling interval as powers of two  in  seconds.
              The  default  values are 6 (64 seconds) and 10 (1024 seconds) respectively. Shorter
              polling intervals usually improve the accuracy significantly, but  they  should  be
              used  only  when  allowed  by  the operators of the NTP service (public NTP servers
              generally don't allow too frequent queries). If the NTP server is  located  on  the
              same LAN, polling intervals around 4 (16 seconds) might give best accuracy.

       iburst Enable  or  disable sending a burst of NTP packets on start to speed up the initial
              synchronization. Possible values are 1 and 0. The default value is 0 (disabled).

       ntp_options
              Specify extra options that should be added for this source to the server  directive
              in  the configuration file of the selected NTP implementation. No extra options are
              added by default.

   [ptp_domain number]
       The ptp_domain section specifies a PTP domain that should be used as a  time  source.  The
       PTP  domain  number  is  included  in  the  name  of  the section. The ptp4l instances are
       configured to run in the clientOnly mode. In this section at least the  interfaces  option
       needs to be set, other options are optional.

       interfaces
              Specify  which  network  interfaces  should be used for this PTP domain. A separate
              ptp4l instance will be started for each group of interfaces sharing  the  same  PHC
              and  for  each  interface  that supports only SW time stamping. HW time stamping is
              enabled automatically. If an interface with HW time stamping is specified  also  in
              other PTP domains and virtual clocks are disabled, only the ptp4l instance from the
              first PTP domain will be using HW time stamping.

       ntp_poll
              Specify the polling interval of the SOCK/SHM reference clock reading  samples  from
              ptp4l  or  phc2sys. It's specified as a power of two in seconds.  The default value
              is 2 (4 seconds).

       phc2sys_poll
              Specify the polling interval used by phc2sys to read a PTP  clock  synchronized  by
              ptp4l and update the SOCK/SHM sample for chronyd/ntpd. It's specified as a power of
              two in seconds. The default value is 0 (1 second).

       delay  Specify the maximum assumed roundtrip delay to the primary source of  the  time  in
              this  PTP  domain.  This  value  is included in the distance used by chronyd in the
              source selection algorithm to detect falsetickers and  assign  weights  for  source
              combining. The default value is 1e-4 (100 microseconds). With ntpd, the tos mindist
              command can be used to set a limit with  similar  purpose  globally  for  all  time
              sources.

       ntp_options
              Specify  extra  options  that  should  be  added for this source to the refclock or
              server directives in the configuration file of the selected NTP implementation.  No
              extra options are added by default.

       ptp4l_option
              Specify  an  extra ptp4l option specific to this PTP domain that should be added to
              the configuration files generated for ptp4l. This option may be used multiple times
              in one ptp_domain section.

   [chronyd]
       path   Specify  the path to the chronyd binary. The default value is chronyd to search for
              the binary in PATH.

       options
              Specify extra options that should be added to the chronyd command line.   No  extra
              options are added by default.

   [chrony.conf]
       Settings specified in this section are copied directly to the configuration file generated
       for chronyd. If this section is not present in  the  timemaster  configuration  file,  the
       following setting will be added:

       makestep 1 3

       This  configures chronyd to step the system clock in the first three updates if the offset
       is larger than 1 second.

   [ntpd]
       path   Specify the path to the ntpd binary. The default value is ntpd to  search  for  the
              binary in PATH.

       options
              Specify  extra  options  that  should  be  added to the ntpd command line. No extra
              options are added by default.

   [ntp.conf]
       Settings specified in this section are copied directly to the configuration file generated
       for  ntpd.  If  this  section  is  not  present  in the timemaster configuration file, the
       following settings will be added:

       restrict default nomodify notrap nopeer noquery
       restrict 127.0.0.1
       restrict ::1

       This configures ntpd to use safe default restrictions.

   [phc2sys]
       path   Specify the path to the phc2sys binary. The default value is phc2sys to search  for
              the binary in PATH.

       options
              Specify  extra  options  that  should  be  added  to all phc2sys command lines.  By
              default, -l 5 is added to the command lines.

   [ptp4l]
       path   Specify the path to the ptp4l binary. The default value is ptp4l to search for  the
              binary in PATH.

       options
              Specify  extra options that should be added to all ptp4l command lines. By default,
              -l 5 is added to the command lines.

   [ptp4l.conf]
       Settings specified in this section are copied  directly  to  the  global  section  of  the
       configuration files generated for all ptp4l instances. There is no default content of this
       section.

       Other sections (e.g. [unicast_master_table]) may be specified here,  but  lines  beginning
       with  the  bracket  need  to  be  prefixed with the > character to prevent timemaster from
       parsing it as a beginning of another section.

NOTES

       For best accuracy, chronyd is usually preferred over ntpd, it also synchronizes the system
       clock  faster.  Both  NTP  implementations, however, have some limitations that need to be
       considered before choosing the one to be used in a given timemaster configuration.

       The chronyd limitations are:

              In version 1.31 and older, the maximum number of reference clocks used at the  same
              time  is  8.  This  limits the number of PHCs and interfaces using SW time stamping
              that can be used for PTP.

              Using polling intervals (minpoll, maxpoll, ntp_poll  options)  shorter  than  2  (4
              seconds)  is  not recommended with versions before 1.30. With 1.30 and later values
              of 0 or 1 can be  used  for  NTP  sources  and  negative  values  for  PTP  sources
              (ntp_poll) to specify a subsecond interval.

       The ntpd limitations are:

              In  versions  before  4.2.8p1, only the first two shared-memory segments created by
              the ntpd SHM refclock driver have owner-only access.  Other  segments  are  created
              with world access, which allows any user on the system to write to the segments and
              disrupt or take control over the synchronization of  the  clock.   In  4.2.8p1  the
              access  was  made configurable with the mode option, which is set by timemaster for
              owner-ownly access.

              The shortest polling interval for all sources is 3 (8 seconds).

              Nanosecond resolution in the SHM refclock driver is supported in version  4.2.7p303
              and later, older versions have only microsecond resolution.

EXAMPLES

       A minimal configuration file using one NTP source and two PTP sources would be:

       [ntp_server 10.1.1.1]

       [ptp_domain 0]
       interfaces eth0

       [ptp_domain 1]
       interfaces eth1

       A more complex example using all timemaster options would be:

       [ntp_server 10.1.1.1]
       minpoll 3
       maxpoll 4
       iburst 1
       ntp_options key 12

       [ptp_domain 0]
       interfaces eth0 eth1
       ntp_poll 0
       phc2sys_poll -2
       delay 10e-6
       ntp_options prefer
       ptp4l_option clock_servo linreg
       ptp4l_option delay_mechanism P2P

       [timemaster]
       ntp_program chronyd
       rundir /var/run/timemaster
       first_shm_segment 1
       restart_processes 0
       use_vclocks 0

       [chronyd]
       path /usr/sbin/chronyd
       options

       [chrony.conf]
       makestep 1 3
       logchange 0.5
       rtcsync
       driftfile /var/lib/chrony/drift

       [ntpd]
       path /usr/sbin/ntpd
       options -u ntp:ntp

       [ntp.conf]
       restrict default nomodify notrap nopeer noquery
       restrict 127.0.0.1
       restrict ::1
       driftfile /var/lib/ntp/drift

       [phc2sys]
       path /usr/sbin/phc2sys
       options -l 5

       [ptp4l]
       path /usr/sbin/ptp4l
       options

       [ptp4l.conf]
       logging_level 5

SEE ALSO

       chronyd(8), ntpd(8), phc2sys(8), ptp4l(8)