Advanced NTP client and server
Find a file
2015-06-15 14:40:54 +02:00
contrib contrib: remove DNSchrony from distribution 2015-01-26 10:39:58 +01:00
examples doc: remove chrony(1) man page 2015-05-18 13:15:43 +02:00
test test: add 202-prefer 2015-06-08 12:33:46 +02:00
.gitignore sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
addressing.h ntp: store socket in NTP instance 2014-03-25 15:22:59 +01:00
addrfilt.c update copyright years 2015-04-10 11:06:32 +02:00
addrfilt.h ntp: open server socket only when access is allowed 2015-01-06 16:35:12 +01:00
array.c array: allow arrays larger than 4 GB 2015-06-08 14:43:16 +02:00
array.h Add array utility functions 2014-09-25 10:58:57 +02:00
candm.h cmdmon: add smoothtime command 2015-06-09 16:15:30 +02:00
chrony.conf.5.in doc: remove chrony(1) man page 2015-05-18 13:15:43 +02:00
chrony.texi.in client: add smoothtime command 2015-06-09 16:15:30 +02:00
chronyc.1.in doc: remove chrony(1) man page 2015-05-18 13:15:43 +02:00
chronyd.8.in doc: remove chrony(1) man page 2015-05-18 13:15:43 +02:00
client.c client: add smoothtime command 2015-06-09 16:15:30 +02:00
clientlog.c clientlog: remove unused code 2015-01-26 11:38:02 +01:00
clientlog.h clientlog: remove unused code 2015-01-26 11:38:02 +01:00
cmdmon.c cmdmon: reply with STT_INVALID on invalid option in handle_manual() 2015-06-09 17:05:45 +02:00
cmdmon.h Create sockets only in selected family with -4 or -6 option 2013-05-20 15:37:25 +02:00
cmdparse.c update copyright years 2015-04-10 11:06:32 +02:00
cmdparse.h cmdparse: add function to convert error status to string 2014-12-15 18:21:51 +01:00
conf.c smooth: add option to smooth out only leap seconds 2015-06-02 15:24:01 +02:00
conf.h smooth: add option to smooth out only leap seconds 2015-06-02 15:24:01 +02:00
configure sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
COPYING Update COPYING and FSF address 2009-10-28 17:53:33 +01:00
getdate.c Fix compiler warnings on NetBSD 2014-09-09 11:48:09 +02:00
getdate.h Update COPYING and FSF address 2009-10-28 17:53:33 +01:00
getdate.y Fix compiler warnings on NetBSD 2014-09-09 11:48:09 +02:00
hash.h Free allocated memory on exit 2014-09-25 10:57:55 +02:00
hash_intmd5.c Free allocated memory on exit 2014-09-25 10:57:55 +02:00
hash_nss.c Free allocated memory on exit 2014-09-25 10:57:55 +02:00
hash_tomcrypt.c Free allocated memory on exit 2014-09-25 10:57:55 +02:00
keys.c ntp: update packet processing to NTPv4 (RFC 5905) 2014-10-14 16:52:22 +02:00
keys.h keys: store IDs in uint32_t 2014-09-26 14:14:54 +02:00
local.c smooth: add option to smooth out only leap seconds 2015-06-02 15:24:01 +02:00
local.h local: check offset sanity before accumulation 2015-04-07 15:23:47 +02:00
localp.h sys: allow drivers to fail when applying step offset 2015-04-07 15:23:47 +02:00
logging.c logging: remove warning on missing debug messages 2014-09-25 11:12:23 +02:00
logging.h sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
main.c use return to exit from main function 2015-04-17 17:34:02 +02:00
main.h Remove CVS headers 2011-01-28 12:56:09 +01:00
make_release doc: remove chrony(1) man page 2015-05-18 13:15:43 +02:00
Makefile.in sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
manual.c manual: check offset sanity 2015-04-07 15:23:47 +02:00
manual.h manual: check offset sanity 2015-04-07 15:23:47 +02:00
md5.c Add support for different authentication hashes 2011-11-02 13:53:00 +01:00
md5.h Cleanup including of system headers 2013-06-14 13:41:16 +02:00
memory.c Check for memory allocation errors 2014-09-23 15:47:02 +02:00
memory.h Check for memory allocation errors 2014-09-23 15:47:02 +02:00
mkdirpp.c Check for memory allocation errors 2014-09-23 15:47:02 +02:00
mkdirpp.h Remove CVS headers 2011-01-28 12:56:09 +01:00
nameserv.c nameserv: add support for returning multiple addresses 2014-10-23 16:48:13 +02:00
nameserv.h nameserv: add support for returning multiple addresses 2014-10-23 16:48:13 +02:00
nameserv_async.c nameserv: add support for returning multiple addresses 2014-10-23 16:48:13 +02:00
nameserv_async.h nameserv: add support for returning multiple addresses 2014-10-23 16:48:13 +02:00
NEWS update NEWS 2015-06-10 14:44:54 +02:00
ntp.h ntp: keep all length constants signed 2015-01-22 14:37:35 +01:00
ntp_core.c ntp: include message precision in peer dispersion 2015-05-28 13:49:43 +02:00
ntp_core.h ntp: return status from NCR_ProcessKnown() 2014-11-24 16:14:04 +01:00
ntp_io.c ntp: don't log error when socket() fails for client only socket 2015-04-14 15:59:55 +02:00
ntp_io.h ntp: count references to NTP server sockets 2015-01-06 16:33:49 +01:00
ntp_sources.c ntp: add debug message to print number of resolved addresses 2015-06-15 13:03:11 +02:00
ntp_sources.h ntp: support pools 2014-11-03 11:18:04 +01:00
pktlength.c cmdmon: add smoothtime command 2015-06-09 16:15:30 +02:00
pktlength.h Add padding to cmdmon requests to prevent amplification attack 2014-01-30 15:59:45 +01:00
README doc: update chrony description 2015-04-27 12:58:19 +02:00
refclock.c util: add UTI_Log2ToDouble() 2015-05-28 12:51:54 +02:00
refclock.h sources: allow setting minsamples and maxsamples for each source 2014-12-03 16:27:51 +01:00
refclock_phc.c Convert TRACEON LOG messages to DEBUG_LOG 2013-11-27 14:35:41 +01:00
refclock_pps.c configure: unify macro naming for optional features 2014-09-22 13:14:16 +02:00
refclock_shm.c Convert TRACEON LOG messages to DEBUG_LOG 2013-11-27 14:35:41 +01:00
refclock_sock.c refclock: fix compiler warning in SOCK error message 2014-08-05 17:13:08 +02:00
reference.c reference: use 2012 leap second in leapsectz test 2015-04-24 12:16:47 +02:00
reference.h ntp: smear leap second with slewing mode and smoothing 2015-04-07 10:45:32 +02:00
regress.c Convert disabled log messages to debug or remove them 2014-06-27 10:17:35 +02:00
regress.h regress: make minimum number of samples for regression public 2014-04-10 17:15:13 +02:00
reports.h cmdmon: add smoothing command 2015-06-09 16:15:30 +02:00
rtc.c local: check offset sanity before accumulation 2015-04-07 15:23:47 +02:00
rtc.h rtc: move preinit call to RTC_Initialise() 2014-08-19 10:46:32 +02:00
rtc_linux.c local: check offset sanity before accumulation 2015-04-07 15:23:47 +02:00
rtc_linux.h rtc: return status from preinit function 2014-08-19 10:46:35 +02:00
sched.c sched: detect timeout overflow in SCH_AddTimeoutByDelay() 2015-06-08 14:49:52 +02:00
sched.h Rename SCH_GetFileReadyTime() and extend it to return raw time 2013-06-05 18:07:05 +02:00
smooth.c cmdmon: add smoothtime command 2015-06-09 16:15:30 +02:00
smooth.h cmdmon: add smoothtime command 2015-06-09 16:15:30 +02:00
sources.c sources: remove unused code in SRC_SelectSource() 2015-06-09 16:15:30 +02:00
sources.h sources: allow setting minsamples and maxsamples for each source 2014-12-03 16:27:51 +01:00
sourcestats.c sourcestats: fix updating of slope on slew with large residual freq 2015-03-27 10:37:55 +01:00
sourcestats.h sources: allow setting minsamples and maxsamples for each source 2014-12-03 16:27:51 +01:00
srcparams.h ntp: change default maxdelay to 3 seconds 2015-03-27 10:37:54 +01:00
strerror.c Use config.h 2011-05-24 18:07:06 +02:00
stubs.c ntp: support pools 2014-11-03 11:18:04 +01:00
sys.c sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
sys.h Remove CVS headers 2011-01-28 12:56:09 +01:00
sys_generic.c sys: clamp frequency set in generic driver on exit 2015-04-10 10:22:28 +02:00
sys_generic.h local: add new driver call to set synchronization status 2014-12-10 15:35:56 +01:00
sys_linux.c sys: allow drivers to fail when applying step offset 2015-04-07 15:23:47 +02:00
sys_linux.h Remove kernel version check from rtc code 2011-06-06 21:33:59 +02:00
sys_macosx.c sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
sys_macosx.h sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
sys_netbsd.c sys: allow drivers to fail when applying step offset 2015-04-07 15:23:47 +02:00
sys_netbsd.h Remove CVS headers 2011-01-28 12:56:09 +01:00
sys_solaris.c sys: allow drivers to fail when applying step offset 2015-04-07 15:23:47 +02:00
sys_solaris.h Remove CVS headers 2011-01-28 12:56:09 +01:00
sys_sunos.c sys: allow drivers to fail when applying step offset 2015-04-07 15:23:47 +02:00
sys_sunos.h Remove CVS headers 2011-01-28 12:56:09 +01:00
sysincl.h sys: MacOS X driver ported from NetBSD 2015-06-15 14:40:54 +02:00
tempcomp.c tempcomp: allow configuration with list of points 2014-11-21 13:11:16 +01:00
tempcomp.h Update copyright 2011-01-27 13:05:26 +01:00
util.c util: add UTI_Log2ToDouble() 2015-05-28 12:51:54 +02:00
util.h util: add UTI_Log2ToDouble() 2015-05-28 12:51:54 +02:00
wrap_adjtimex.c sys: fix TMX_ResetOffset() to set status back correctly 2015-04-27 12:27:55 +02:00
wrap_adjtimex.h sys: avoid syslog message when leap bits are not changed 2015-03-25 15:32:05 +01:00

This is the README for chrony.

What is chrony?
===============

chrony is a versatile implementation of the Network Time Protocol (NTP).
It can synchronize the system clock with NTP servers, reference clocks
(e.g. GPS receiver), and manual input using wristwatch and keyboard.
It can also operate as an NTPv4 (RFC 5905) server and peer to provide
a time service to other computers in the network.

It is designed to perform well in a wide range of conditions, including
intermittent network connections, heavily congested networks, changing
temperatures (ordinary computer clocks are sensitive to temperature),
and systems that do not run continuosly, or run on a virtual machine.

Typical accuracy between two machines on a LAN is in tens, or a few
hundreds, of microseconds; over the Internet, accuracy is typically
within a few milliseconds.  With a good hardware reference clock
sub-microsecond accuracy is possible.

Two programs are included in chrony, chronyd is a daemon that can be
started at boot time and chronyc is a command-line interface program
which can be used to monitor chronyd's performance and to change various
operating parameters whilst it is running.

What will chrony run on?
========================

The software is known to work on Linux, FreeBSD, NetBSD and Solaris.
Closely related systems may work too.  Any other system will likely
require a porting exercise.  You would need to start from one of the
existing system-specific drivers and look into the quirks of certain
system calls and the kernel on your target system.

How do I set it up?
===================

The file INSTALL gives instructions.  On supported systems the
compilation process should be automatic.

You will need an ANSI C compiler -- gcc is recommended.

The manual (in texinfo and text formats) describes how to set the
software up for the less straightforward cases.

What documentation is there?
============================

A manual is supplied in Texinfo format (chrony.texi) and
ready-formatted plain text (chrony.txt) in the distribution.

There is also information available on the chrony web pages, accessible
through the URL 

    http://chrony.tuxfamily.org/

Where are new versions announced?
=================================

There is a low volume mailing list where new versions and other
important news relating to chrony is announced.  You can join this list
by sending mail with the subject "subscribe" to

chrony-announce-request@chrony.tuxfamily.org

These messages will be copied to chrony-users (see below).

How can I get support for chrony?
and where can I discuss new features, possible bugs etc?
========================================================

There are 3 mailing lists relating to chrony.  chrony-announce was
mentioned above.  chrony-users is a users' discussion list, e.g. for
general questions and answers about using chrony.  chrony-dev is a more
technical list, e.g. for discussing how new features should be
implemented, exchange of information between developers etc.  To
subscribe to either of these lists, send a message with the subject
"subscribe" to

chrony-users-request@chrony.tuxfamily.org
or
chrony-dev-request@chrony.tuxfamily.org

as applicable.

License
=======

chrony is distributed under the GNU General Public License version 2.


Author
======

Richard P. Curnow <rc@rc0.org.uk>


Maintainers
===========

Miroslav Lichvar <mlichvar@redhat.com>


Acknowledgements
================

The following people have provided patches and other major contributions
to the program :

Benny Lyne Amorsen <benny@amorsen.dk>
    Patch to add minstratum option

Andrew Bishop <amb@gedanken.demon.co.uk>
    Fixes for bugs in logging when in daemon mode
    Fixes for compiler warnings
    Robustness improvements for drift file
    Improve installation (directory checking etc)
    Entries in contrib directory
    Improvements to 'sources' and 'sourcestats' output from chronyc
    Improvements to documentation
    Investigation of required dosynctodr behaviour for various Solaris
      versions.

Stephan I. Boettcher <stephan@nevis1.columbia.edu>
    Entries in contrib directory

Erik Bryer <ebryer@spots.ab.ca>
    Entries in contrib directory

Juliusz Chroboczek <jch@pps.jussieu.fr>
    Fix install rule in Makefile if chronyd file is in use.

Paul Elliott <pelliott@io.com>
    DNSchrony (in contrib directory), a tool for handling NTP servers
    with variable IP addresses.

Mike Fleetwood <mike@rockover.demon.co.uk>
    Fixes for compiler warnings

Alexander Gretencord <arutha@gmx.de>
    Changes to installation directory system to make it easier for
    package builders.

Walter Haidinger <walter.haidinger@gmx.at>
    Providing me with login access to a Linux installation where v1.12
    wouldn't compile, so I could develop the fixes for v1.13.  Also, for
    providing the disc space so I can keep an independent backup of the
    sources.

Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
    Port to NetBSD

John Hasler <john@dhh.gt.org>
    Project and website at tuxfamily.org
    Changes to support 64 bit machines (i.e. those where
      sizeof(unsigned long) > 4)
    Bug fix to initstepslew directive
    Fix to remove potential buffer overrun errors.
    Memory locking and real-time scheduler support
    Fix fault where chronyd enters an endless loop

Tjalling Hattink <t.hattink@fugro.nl>
    Fix scheduler to allow stepping clock from timeout handler
    Patch to take leap second in PPS refclock from locked source
    Patch to make reading of RTC for initial trim more reliable

Liam Hatton <me@liamhatton.com>
    Advice on configuring for Linux on PPC

Jachym Holecek <jakym@volny.cz>
    Patch to make Linux real time clock work with devfs

Håkan Johansson <f96hajo@chalmers.se>
    Patch to avoid large values in sources and sourcestats output

Jim Knoble <jmknoble@pobox.com>
    Fixes for compiler warnings

Antti Jrvinen <costello@iki.fi>
    Advice on configuring for BSD/386

Miroslav Lichvar <mlichvar@redhat.com>
    Reference clock support
    IPv6 support
    Linux capabilities support
    Leap second support
    Improved source selection
    Improved sample history trimming
    Improved polling interval adjustment
    Improved stability with temporary asymmetric delays
    Temperature compensation
    Many other bug fixes and improvements

Victor Moroz <vim@prv.adlum.ru>
    Patch to support Linux with HZ!=100

Kalle Olavi Niemitalo  <tosi@stekt.oulu.fi>
    acquisitionport support

Frank Otto <sandwichmacher@web.de>
    Handling arbitrary HZ values

Andreas Piesk <apiesk@virbus.de>
    Patch to make chronyc use the readline library if available

Timo Teras <timo.teras@iki.fi>
    Patch to reply correctly on multihomed hosts

Wolfgang Weisselberg <weissel@netcologne.de>
    Entries in contrib directory

Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
    Many robustness and security improvements
    
Ulrich Windl <ulrich.windl@rz.uni-regensburg.de> for the
    Providing me with information about the Linux 2.2 kernel
    functionality compared to 2.0.

Doug Woodward <dougw@whistler.com>
    Advice on configuring for Solaris 2.8 on x86

Many other people have contributed bug reports and suggestions.  I'm
sorry I can't identify all of you individually.