Re: [oe] [meta-networking][PATCHv3] chrony: Versatile implementation of NTP
> Op 15 jun. 2016, om 20:17 heeft Henry Hallamhet > volgende geschreven: > > From: Henry Hallam > > chrony is an alternative to ntpd. In particular it may be useful > for quasi-realtime embedded systems that have a pulse-per-second > time reference available and need to rapidly synchronize to it after > boot, which appears to be unachievable with ntpd. > > Signed-off-by: Henry Hallam Reviewed-by: Koen Kooi > --- > .../recipes-support/chrony/chrony/chrony.conf | 44 +++ > .../recipes-support/chrony/chrony/chronyd | 58 ++ > .../recipes-support/chrony/chrony_2.4.bb | 127 + > 3 files changed, 229 insertions(+) > create mode 100644 meta-networking/recipes-support/chrony/chrony/chrony.conf > create mode 100644 meta-networking/recipes-support/chrony/chrony/chronyd > create mode 100644 meta-networking/recipes-support/chrony/chrony_2.4.bb > > diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf > b/meta-networking/recipes-support/chrony/chrony/chrony.conf > new file mode 100644 > index 000..8d226d3 > --- /dev/null > +++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf > @@ -0,0 +1,44 @@ > +# Use public NTP servers from the pool.ntp.org project. > +# Please consider joining the pool project if possible by running your own > +# server(s). > +# If you are a vendor distributing a product using chrony, you *MUST* > +# read and comply with http://www.pool.ntp.org/vendors.html > +pool 0.openembedded.pool.ntp.org iburst > + > +# Use a local timeserver in preference to the pool, if it's reachable. > +#server 192.168.22.22 iburst minpoll 2 prefer > + > +# Sync to pulse-per-second from an onboard GPS. > +#refclock PPS /dev/pps0 poll 0 prefer > +# You'll want to enable CONFIG_PPS and CONFIG_PPS_CLIENT_GPIO in your kernel, > +# and an entry something like this in your device tree: > +#pps { > +#compatible = "pps-gpio"; > +#gpios = <_gpio_0 56 0>; > +#}; > + > +# In first three updates step the system clock instead of slew > +# if the adjustment is larger than 1 second. > +makestep 1.0 3 > + > +# Record the rate at which the system clock gains/loses time, > +# improving accuracy after reboot > +driftfile /var/lib/chrony/drift > + > +# Enable kernel synchronization of the hardware real-time clock (RTC). > +rtcsync > + > +# Allow NTP client access from local network. > +#allow 192.168/16 > + > +# Serve time even if not synchronized to any NTP server. > +#local stratum 10 > + > +# Specify file containing keys for NTP authentication. > +#keyfile /etc/chrony.keys > + > +# Specify directory for log files. > +logdir /var/log/chrony > + > +# Select which information is logged. > +#log measurements statistics tracking > diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd > b/meta-networking/recipes-support/chrony/chrony/chronyd > new file mode 100644 > index 000..04f1b68 > --- /dev/null > +++ b/meta-networking/recipes-support/chrony/chrony/chronyd > @@ -0,0 +1,58 @@ > +#! /bin/sh > + > +# System V init script for chrony > +# Adapted from the script already in meta-networking for ntpd > + > +### BEGIN INIT INFO > +# Provides:chrony > +# Required-Start: $network $remote_fs $syslog > +# Required-Stop: $network $remote_fs $syslog > +# Default-Start: 2 3 4 5 > +# Default-Stop: > +# Short-Description: Start chrony time daemon > +### END INIT INFO > + > +PATH=/sbin:/bin:/usr/bin:/usr/sbin > + > +DAEMON=/usr/sbin/chronyd > +PIDFILE=/var/run/chronyd.pid > + > +test -x $DAEMON -a -r /etc/chrony.conf || exit 0 > + > +# Source function library. > +. /etc/init.d/functions > + > +# Functions to do individual actions > +startdaemon(){ > + echo -n "Starting chronyd: " > + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas > $DAEMON -- "$@" > + echo "done" > +} > +stopdaemon(){ > + echo -n "Stopping chronyd: " > + start-stop-daemon --stop --quiet --oknodo -p $PIDFILE > + echo "done" > +} > + > +case "$1" in > + start) > + startdaemon > + ;; > + stop) > + stopdaemon > + ;; > + force-reload | restart | reload) > + stopdaemon > + startdaemon > + ;; > + status) > + status /usr/sbin/chronyd; > + exit $? > + ;; > + *) > + echo "Usage: chronyd { start | stop | status | restart | reload }" >&2 > + exit 1 > + ;; > +esac > + > +exit 0 > diff --git a/meta-networking/recipes-support/chrony/chrony_2.4.bb > b/meta-networking/recipes-support/chrony/chrony_2.4.bb > new file mode 100644 > index 000..aa37caa > --- /dev/null > +++ b/meta-networking/recipes-support/chrony/chrony_2.4.bb > @@ -0,0 +1,127 @@ > +SUMMARY = "Versatile implementation of the Network Time Protocol" > +DESCRIPTION = "Chrony can synchronize the system clock with NTP \ > +servers, reference clocks (e.g. GPS receiver), and manual
[oe] [meta-networking][PATCHv3] chrony: Versatile implementation of NTP
From: Henry Hallamchrony is an alternative to ntpd. In particular it may be useful for quasi-realtime embedded systems that have a pulse-per-second time reference available and need to rapidly synchronize to it after boot, which appears to be unachievable with ntpd. Signed-off-by: Henry Hallam --- .../recipes-support/chrony/chrony/chrony.conf | 44 +++ .../recipes-support/chrony/chrony/chronyd | 58 ++ .../recipes-support/chrony/chrony_2.4.bb | 127 + 3 files changed, 229 insertions(+) create mode 100644 meta-networking/recipes-support/chrony/chrony/chrony.conf create mode 100644 meta-networking/recipes-support/chrony/chrony/chronyd create mode 100644 meta-networking/recipes-support/chrony/chrony_2.4.bb diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf b/meta-networking/recipes-support/chrony/chrony/chrony.conf new file mode 100644 index 000..8d226d3 --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf @@ -0,0 +1,44 @@ +# Use public NTP servers from the pool.ntp.org project. +# Please consider joining the pool project if possible by running your own +# server(s). +# If you are a vendor distributing a product using chrony, you *MUST* +# read and comply with http://www.pool.ntp.org/vendors.html +pool 0.openembedded.pool.ntp.org iburst + +# Use a local timeserver in preference to the pool, if it's reachable. +#server 192.168.22.22 iburst minpoll 2 prefer + +# Sync to pulse-per-second from an onboard GPS. +#refclock PPS /dev/pps0 poll 0 prefer +# You'll want to enable CONFIG_PPS and CONFIG_PPS_CLIENT_GPIO in your kernel, +# and an entry something like this in your device tree: +# pps { +# compatible = "pps-gpio"; +# gpios = <_gpio_0 56 0>; +# }; + +# In first three updates step the system clock instead of slew +# if the adjustment is larger than 1 second. +makestep 1.0 3 + +# Record the rate at which the system clock gains/loses time, +# improving accuracy after reboot +driftfile /var/lib/chrony/drift + +# Enable kernel synchronization of the hardware real-time clock (RTC). +rtcsync + +# Allow NTP client access from local network. +#allow 192.168/16 + +# Serve time even if not synchronized to any NTP server. +#local stratum 10 + +# Specify file containing keys for NTP authentication. +#keyfile /etc/chrony.keys + +# Specify directory for log files. +logdir /var/log/chrony + +# Select which information is logged. +#log measurements statistics tracking diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd b/meta-networking/recipes-support/chrony/chrony/chronyd new file mode 100644 index 000..04f1b68 --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony/chronyd @@ -0,0 +1,58 @@ +#! /bin/sh + +# System V init script for chrony +# Adapted from the script already in meta-networking for ntpd + +### BEGIN INIT INFO +# Provides:chrony +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: +# Short-Description: Start chrony time daemon +### END INIT INFO + +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +DAEMON=/usr/sbin/chronyd +PIDFILE=/var/run/chronyd.pid + +test -x $DAEMON -a -r /etc/chrony.conf || exit 0 + +# Source function library. +. /etc/init.d/functions + +# Functions to do individual actions +startdaemon(){ + echo -n "Starting chronyd: " + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- "$@" + echo "done" +} +stopdaemon(){ + echo -n "Stopping chronyd: " + start-stop-daemon --stop --quiet --oknodo -p $PIDFILE + echo "done" +} + +case "$1" in + start) + startdaemon + ;; + stop) + stopdaemon + ;; + force-reload | restart | reload) + stopdaemon + startdaemon + ;; + status) + status /usr/sbin/chronyd; + exit $? + ;; + *) + echo "Usage: chronyd { start | stop | status | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta-networking/recipes-support/chrony/chrony_2.4.bb b/meta-networking/recipes-support/chrony/chrony_2.4.bb new file mode 100644 index 000..aa37caa --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony_2.4.bb @@ -0,0 +1,127 @@ +SUMMARY = "Versatile implementation of the Network Time Protocol" +DESCRIPTION = "Chrony 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),
[oe] [meta-networking][PATCHv3] chrony: Versatile implementation of NTP
Patch version 3: - Move variable defs to appropriate places in the recipe, per Koen's feedback - Correct location of drift file - Add conflict with ntimed, and note about systemd-timesyncd Thanks, Henry -- ___ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel