diff options
Diffstat (limited to 'recipes-support')
-rw-r--r-- | recipes-support/ntp/files/ntp.conf.patch | 23 | ||||
-rw-r--r-- | recipes-support/ntp/files/ntp.init.patch | 190 | ||||
-rw-r--r-- | recipes-support/ntp/files/ntpd-default | 2 | ||||
-rw-r--r-- | recipes-support/ntp/files/ntpd-init.patch | 20 | ||||
-rw-r--r-- | recipes-support/ntp/ntp_4.2.6p5.bbappend | 25 |
5 files changed, 221 insertions, 39 deletions
diff --git a/recipes-support/ntp/files/ntp.conf.patch b/recipes-support/ntp/files/ntp.conf.patch index 2d0fdd8..bb1dcfe 100644 --- a/recipes-support/ntp/files/ntp.conf.patch +++ b/recipes-support/ntp/files/ntp.conf.patch @@ -1,7 +1,7 @@ diff -Naur old/ntp.conf new/ntp.conf ---- old/ntp.conf 2017-02-01 12:51:59.766760466 -0600 -+++ new/ntp.conf 2017-02-01 14:46:23.005239689 -0600 -@@ -1,16 +1,58 @@ +--- old/ntp.conf 2017-02-02 19:09:54.524791189 -0600 ++++ new/ntp.conf 2017-02-02 19:06:41.744669788 -0600 +@@ -1,16 +1,47 @@ -# This is the most basic ntp configuration file # The driftfile must remain in a place specific to this # machine - it records the machine specific clock error @@ -11,6 +11,9 @@ diff -Naur old/ntp.conf new/ntp.conf + +# The following code is for evaluating the timeserver. +# Remove the # to activate the statistics ++# statsdir must start in column 1 for the initscript to ++# create the directory, in case it is volatile. ++# +# statistics loopstats +# statistics peerstats +# statsdir /var/log/ntpstats @@ -36,24 +39,10 @@ diff -Naur old/ntp.conf new/ntp.conf + +# GPS Serial data reference (NTP0) +# This sets the GPS 50 milliseconds slower than the PPS. -+# "true" says we don't trust the system clock. -+# If we are depending on the GPS for timing, -+# we don't want ntp to mark the GPS as a falseticker -+# because of a performance issue. -+# If the GPS is marked as a false ticker -+# due to a bad timestamp from the system -+# clock (possibly because the system was -+# too busy to process an interrupt), -+# the GPS will be ignored, and if we are -+# depending on the GPS for leap second, it -+# will not happen. +server 127.127.28.0 true +fudge 127.127.28.0 time1 0.050 refid GPS + +# GPS PPS reference (NTP2) -+# If we are depending on the PPS for timing, -+# we don't want ntp to mark the PPS as a falseticker -+# because of a performance issue. +server 127.127.28.2 prefer true +fudge 127.127.28.2 time1 0.000 refid PPS + diff --git a/recipes-support/ntp/files/ntp.init.patch b/recipes-support/ntp/files/ntp.init.patch new file mode 100644 index 0000000..b60d8ca --- /dev/null +++ b/recipes-support/ntp/files/ntp.init.patch @@ -0,0 +1,190 @@ +diff -Naur old/ntpd new/ntpd +--- old/ntpd 2017-02-02 18:00:38.415645575 -0600 ++++ new/ntpd 2017-02-02 18:14:50.986092592 -0600 +@@ -1,6 +1,8 @@ +-#! /bin/sh ++#! /bin/bash + # ++. /etc/default/ntpd + PATH=/sbin:/bin:/usr/bin:/usr/sbin ++GNSSRST=/sys/devices/platform/mts-io/gnss-reset + + # ntpd init.d script for ntpdc from ntp.isc.org + test -x /usr/sbin/ntpd -a -r /etc/ntp.conf || exit 0 +@@ -18,13 +20,32 @@ + } + } + startdaemon(){ +- # The -g option allows ntpd to step the time to correct it just +- # once. The daemon will exit if the clock drifts too much after +- # this. If ntpd seems to disappear after a while assume TICKADJ +- # above is set to a totally incorrect value. +- echo -n "Starting ntpd: " +- start-stop-daemon --start -x /usr/sbin/ntpd -- -u ntp:ntp -p /var/run/ntp.pid "$@" +- echo "done" ++ /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd --test -- -u ntp:ntp -p /var/run/ntp.pid "$@" \ ++ || return 1 ++ if ((GPSD_REQUIRED == 1)) && [[ -L /dev/gps0 ]] && [[ -f "${GNSSRST}" ]]; then ++ . /etc/default/gpsd ++ # Could not get ntpd -gq to work with the GPS. ++ # So read the GPS time directly and set the system ++ # clock. ++ if ((SET_SYSTEM_CLOCK == 1)) && /usr/sbin/gpsd_ubx_settime ; then ++ # System time set by the GPS. ++ /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd -- -u ntp:ntp -p /var/run/ntp.pid "$@" ++ else ++ # Need a GPS fix before startint ntp. ++ /usr/sbin/start-stop-daemon -b -n z1e9d3qb -N -20 --start -x /bin/bash -- -c "sleep $GPSD_WAIT_TIME;/etc/init.d/ntpd start" ++ fi ++ else ++ if ((SET_SYSTEM_CLOCK == 1)) ; then ++ ntpd -gq ++ shift ++ fi ++ ++ # The -g option allows ntpd to step the time to correct it just ++ # once. The daemon will exit if the clock drifts too much after ++ # this. If ntpd seems to disappear after a while assume TICKADJ ++ # above is set to a totally incorrect value. ++ /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd -- -u ntp:ntp -p /var/run/ntp.pid "$@" ++ fi + } + stopdaemon(){ + echo -n "Stopping ntpd: " +@@ -34,24 +55,37 @@ + + case "$1" in + start) +- settick +- startdaemon -g ++ if ! [[ $ENABLED =~ ^[yY][eE][sS]$ ]] ; then ++ exit 0 ++ fi ++ if [[ -n "$CONFIGFILE" ]] ; then ++ $CONFIGOPT="-c ${CONFIGFILE}" ++ STATSDIR=$(grep "^statsdir" ${CONFIGFILE} | sed -r 's/[^[:SPACE:]]+[[:SPACE:]]//') ++ if ! [[ -d ${STATSDIR} ]] ; then ++ mkdir -m 0755 -p ${STATSDIR} ++ fi ++ if [[ -d ${STATSDIR} ]] ; then ++ chown ntp:ntp ${STATSDIR} ++ fi ++ fi ++ settick ++ startdaemon -g $CONFIGOPT + ;; + stop) +- stopdaemon ++ stopdaemon + ;; + force-reload) +- stopdaemon +- settick ++ stopdaemon ++ settick + startdaemon -g + ;; + restart) +- # Don't reset the tick here ++ # Don't reset the tick here + stopdaemon + startdaemon -g + ;; + reload) +- # Must do this by hand, but don't do -g ++ # Must do this by hand, but don't do -g + stopdaemon + startdaemon + ;; +diff -Naur old/ntpd.orig new/ntpd.orig +--- old/ntpd.orig 2017-02-02 17:58:25.316767036 -0600 ++++ new/ntpd.orig 1969-12-31 18:00:00.000000000 -0600 +@@ -1,88 +0,0 @@ +-#! /bin/bash +-# +-. /etc/default/ntpd +-PATH=/sbin:/bin:/usr/bin:/usr/sbin +-GNSSRST=/sys/devices/platform/mts-io/gnss-reset +- +-# ntpd init.d script for ntpdc from ntp.isc.org +-test -x /usr/sbin/ntpd -a -r /etc/ntp.conf || exit 0 +-# rcS contains TICKADJ +-test -r /etc/default/rcS && . /etc/default/rcS +- +-# Functions to do individual actions +-settick(){ +- # If TICKADJ is set we *must* adjust it before we start, because the +- # driftfile relies on the correct setting +- test -n "$TICKADJ" -a -x /usr/sbin/tickadj && { +- echo -n "Setting tick to $TICKADJ: " +- /usr/sbin/tickadj "$TICKADJ" +- echo "done" +- } +-} +-startdaemon(){ +- /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd --test -- -u ntp:ntp -p /var/run/ntp.pid "$@" \ +- || return 1 +- if ((GPSD_REQUIRED == 1)) && [[ -L /dev/gps0 ]] && [[ -f "${GNSSRST}" ]]; then +- . /etc/default/gpsd +- # Could not get ntpd -gq to work with the GPS. +- # So read the GPS time directly and set the system +- # clock. +- if ((SET_SYSTEM_CLOCK == 1)) && /usr/sbin/gpsd_ubx_settime ; then +- # System time set by the GPS. +- /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd -- -u ntp:ntp -p /var/run/ntp.pid "$@" +- else +- # Need a GPS fix before startint ntp. +- /usr/sbin/start-stop-daemon -b -n z1e9d3qb -N -20 --start -x /bin/bash -- -c "sleep $GPSD_WAIT_TIME;/etc/init.d/ntpd start" +- fi +- else +- if ((SET_SYSTEM_CLOCK == 1)) ; then +- ntpd -gq +- shift +- fi +- +- # The -g option allows ntpd to step the time to correct it just +- # once. The daemon will exit if the clock drifts too much after +- # this. If ntpd seems to disappear after a while assume TICKADJ +- # above is set to a totally incorrect value. +- /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd -- -u ntp:ntp -p /var/run/ntp.pid "$@" +- fi +-} +-stopdaemon(){ +- echo -n "Stopping ntpd: " +- start-stop-daemon --stop -p /var/run/ntp.pid +- echo "done" +-} +- +-case "$1" in +- start) +- if ! [[ $ENABLED =~ ^[yY][eE][sS]$ ]] ; then +- exit 0 +- fi +- settick +- startdaemon -g +- ;; +- stop) +- stopdaemon +- ;; +- force-reload) +- stopdaemon +- settick +- startdaemon -g +- ;; +- restart) +- # Don't reset the tick here +- stopdaemon +- startdaemon -g +- ;; +- reload) +- # Must do this by hand, but don't do -g +- stopdaemon +- startdaemon +- ;; +- *) +- echo "Usage: ntpd { start | stop | restart | reload }" >&2 +- exit 1 +- ;; +-esac +- +-exit 0 diff --git a/recipes-support/ntp/files/ntpd-default b/recipes-support/ntp/files/ntpd-default index 65e2119..ed7a6ec 100644 --- a/recipes-support/ntp/files/ntpd-default +++ b/recipes-support/ntp/files/ntpd-default @@ -1,5 +1,7 @@ ENABLED="yes" +CONFIGFILE=/etc/ntp.conf + # The GPSD_* parameters in this file are ignored # if the uBlox GPS is not present. diff --git a/recipes-support/ntp/files/ntpd-init.patch b/recipes-support/ntp/files/ntpd-init.patch index 41c7549..9516084 100644 --- a/recipes-support/ntp/files/ntpd-init.patch +++ b/recipes-support/ntp/files/ntpd-init.patch @@ -1,6 +1,6 @@ diff -Naur old/ntpd new/ntpd ---- old/ntpd 2017-01-17 16:26:47.427368196 -0600 -+++ new/ntpd 2017-01-20 16:26:52.154738981 -0600 +--- old/ntpd 2017-02-02 18:00:38.415645575 -0600 ++++ new/ntpd 2017-02-02 19:01:39.766215168 -0600 @@ -1,6 +1,8 @@ -#! /bin/sh +#! /bin/bash @@ -51,16 +51,28 @@ diff -Naur old/ntpd new/ntpd } stopdaemon(){ echo -n "Stopping ntpd: " -@@ -34,24 +55,27 @@ +@@ -34,24 +55,38 @@ case "$1" in start) - settick +- startdaemon -g + if ! [[ $ENABLED =~ ^[yY][eE][sS]$ ]] ; then + exit 0 + fi ++ if [[ -n "$CONFIGFILE" ]] ; then ++ CONFIGOPT="-c ${CONFIGFILE}" ++ STATSDIR=$(grep "^statsdir" ${CONFIGFILE} | sed -r 's/[^[:space:]]+[[:space:]]//') ++ if ((${#STATSDIR} > 0)) && ! [[ -d ${STATSDIR} ]] ; then ++ echo Make ${STATSDIR} ++ mkdir -m 0755 -p ${STATSDIR} ++ fi ++ if [[ -d ${STATSDIR} ]] ; then ++ chown ntp:ntp ${STATSDIR} >/dev/null 2>&1 ++ fi ++ fi + settick - startdaemon -g ++ startdaemon -g $CONFIGOPT ;; stop) - stopdaemon diff --git a/recipes-support/ntp/ntp_4.2.6p5.bbappend b/recipes-support/ntp/ntp_4.2.6p5.bbappend index a72f7bd..8460fda 100644 --- a/recipes-support/ntp/ntp_4.2.6p5.bbappend +++ b/recipes-support/ntp/ntp_4.2.6p5.bbappend @@ -10,29 +10,18 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files" python do_patch_prepend () { import os } -pkg_postinst_${PN} () { - sdir=/var/log/ntpstats - if ! [[ -d ${sdir} ]] ; then - mkdir -p ${sdir} - fi - chown ntp:ntp ${sdir} - chmod 775 ${sdir} - drdir=/var/lib/ntp - if ! [[ -d ${drdir} ]] ; then - mkdir -p ${drdir} - fi +do_install_append() { + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/ntpd-default ${D}${sysconfdir}/default/ntpd.default + + drdir=${D}${localstatedir}/lib/ntp + install -d -m 0755 -p ${drdir} drfile="${drdir}/ntp.drift" touch ${drfile} chmod 664 ${drfile} chown -R ntp:ntp ${drdir} } - - -do_install_prepend() { - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/ntpd-default ${D}${sysconfdir}/default/ntpd.default -} pkg_postinst_${PN}_append() { update-alternatives --install ${sysconfdir}/default/ntpd ntpd-defaults ${sysconfdir}/default/ntpd.default 10 } @@ -40,5 +29,5 @@ pkg_postinst_${PN}_append() { pkg_postrm_${PN}_append() { update-alternatives --remove ntpd-defaults ${sysconfdir}/default/ntpd.default } -FILES_${PN} += "${sysconfdir}/default/ntpd.default" +FILES_${PN} += "${sysconfdir}/default/ntpd.default ${localstatedir}/lib/*" CONFFILES_${PN} += "${sysconfdir}/default/ntpd.default" |