Re: [oe] [meta-networking][PATCHv3] chrony: Versatile implementation of NTP

2016-06-15 Thread Koen Kooi

> Op 15 jun. 2016, om 20:17 heeft Henry Hallam  het 
> 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

2016-06-15 Thread Henry Hallam
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 
---
 .../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

2016-06-15 Thread Henry Hallam

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