From de864020426eda6bf80e04802e005294d035099a Mon Sep 17 00:00:00 2001 From: Javier Viguera Date: Thu, 24 Jan 2013 19:04:08 +0100 Subject: [PATCH] meta-digi-del: add 'busybox-ntpd' package Use busybox' ntpd applet as basic ntp client. https://jira.digi.com/browse/DEL-144 #resolve Signed-off-by: Javier Viguera --- ...nitely-try-to-resolve-peer-addresses.patch | 65 +++++++++++++++++++ .../busybox/busybox-1.20.2/busybox-ntpd | 54 +++++++++++++++ .../busybox/busybox_1.20.2.bbappend | 11 ++++ .../packagegroups/packagegroup-del-core.bb | 1 + 4 files changed, 131 insertions(+) create mode 100644 meta-digi-del/recipes-core/busybox/busybox-1.20.2/0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch create mode 100755 meta-digi-del/recipes-core/busybox/busybox-1.20.2/busybox-ntpd diff --git a/meta-digi-del/recipes-core/busybox/busybox-1.20.2/0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch b/meta-digi-del/recipes-core/busybox/busybox-1.20.2/0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch new file mode 100644 index 000000000..fccc86d40 --- /dev/null +++ b/meta-digi-del/recipes-core/busybox/busybox-1.20.2/0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch @@ -0,0 +1,65 @@ +From: Jo-Philipp Wich +Date: Tue, 25 Sep 2012 14:06:13 +0200 +Subject: [PATCH] ntpd: indefinitely try to resolve peer addresses + +Signed-off-by: Jo-Philipp Wich +(cherry picked from commit c5daea7ba5200158fae2e68714725c6bf7ee6dbb) + +Signed-off-by: Javier Viguera + +Conflicts: + networking/ntpd.c +--- + networking/ntpd.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +diff --git a/networking/ntpd.c b/networking/ntpd.c +index 34b649f..49fb58b 100644 +--- a/networking/ntpd.c ++++ b/networking/ntpd.c +@@ -221,6 +221,7 @@ typedef struct { + typedef struct { + len_and_sockaddr *p_lsa; + char *p_dotted; ++ char *p_hostname; + /* when to send new query (if p_fd == -1) + * or when receive times out (if p_fd >= 0): */ + int p_fd; +@@ -708,8 +709,9 @@ add_peers(char *s) + peer_t *p; + + p = xzalloc(sizeof(*p)); +- p->p_lsa = xhost2sockaddr(s, 123); +- p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa); ++ p->p_hostname = s; ++ p->p_lsa = NULL; ++ p->p_dotted = NULL; + p->p_fd = -1; + p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3); + p->next_action_time = G.cur_time; /* = set_next(p, 0); */ +@@ -758,6 +760,25 @@ send_query_to_peer(peer_t *p) + * + * Uncomment this and use strace to see it in action: + */ ++ ++ /* See if the peer hostname already resolved yet, if not, retry to resolv and return on failure */ ++ if (!p->p_lsa) ++ { ++ p->p_lsa = host2sockaddr(p->p_hostname, 123); ++ ++ if (p->p_lsa) ++ { ++ p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa); ++ VERB1 bb_error_msg("resolved peer %s to %s", p->p_hostname, p->p_dotted); ++ } ++ else ++ { ++ set_next(p, RETRY_INTERVAL); ++ VERB1 bb_error_msg("could not resolve peer %s, skipping", p->p_hostname); ++ return; ++ } ++ } ++ + #define PROBE_LOCAL_ADDR /* { len_and_sockaddr lsa; lsa.len = LSA_SIZEOF_SA; getsockname(p->query.fd, &lsa.u.sa, &lsa.len); } */ + + if (p->p_fd == -1) { diff --git a/meta-digi-del/recipes-core/busybox/busybox-1.20.2/busybox-ntpd b/meta-digi-del/recipes-core/busybox/busybox-1.20.2/busybox-ntpd new file mode 100755 index 000000000..91a37634f --- /dev/null +++ b/meta-digi-del/recipes-core/busybox/busybox-1.20.2/busybox-ntpd @@ -0,0 +1,54 @@ +#!/bin/sh +#=============================================================================== +# +# busybox-ntpd +# +# Copyright (C) 2013 by Digi International Inc. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. +# +# !Description: Busybox NTP bootscript +# +#=============================================================================== + +set -e + +DAEMON="/usr/sbin/ntpd" +NAME="ntpd" +DESC="Busybox NTP client/server" +ARGS="-n -p pool.ntp.org" + +[ -x "${DAEMON}" ] || exit 0 + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon -S -b -n $NAME -a $DAEMON -- $ARGS + echo "done" + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon -K -n $NAME + echo "done" + ;; + restart) + echo -n "Restarting $DESC: " + $0 stop + $0 start + echo "done" + ;; + reload) + echo -n "Reloading $DESC: " + killall -HUP $(basename ${DAEMON}) + echo "done" + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-digi-del/recipes-core/busybox/busybox_1.20.2.bbappend b/meta-digi-del/recipes-core/busybox/busybox_1.20.2.bbappend index 256a63c0b..f1e0695ae 100644 --- a/meta-digi-del/recipes-core/busybox/busybox_1.20.2.bbappend +++ b/meta-digi-del/recipes-core/busybox/busybox_1.20.2.bbappend @@ -6,11 +6,13 @@ DEPENDS += "libdigi" SRC_URI += "file://0001-del-baudrates.patch \ file://0002-del-mdev_regulatory.patch \ file://0003-del-flash_eraseall.patch \ + file://0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch \ file://adc \ file://mmc \ file://sd \ file://ts \ file://suspend \ + file://busybox-ntpd \ " # Add device handlers to 'mdev' package @@ -19,6 +21,12 @@ FILES_${PN}-mdev += "${base_libdir}/mdev/adc ${base_libdir}/mdev/mmc ${base_libd # hwclock bootscript init parameters INITSCRIPT_PARAMS_${PN}-hwclock = "start 20 S . stop 20 0 6 ." +# NTPD package +PACKAGES =+ "${PN}-ntpd" +FILES_${PN}-ntpd = "${sysconfdir}/init.d/busybox-ntpd" +INITSCRIPT_PACKAGES =+ "${PN}-ntpd" +INITSCRIPT_NAME_${PN}-ntpd = "busybox-ntpd" + do_install_append() { if grep "CONFIG_MDEV=y" ${WORKDIR}/defconfig; then if grep "CONFIG_FEATURE_MDEV_CONF=y" ${WORKDIR}/defconfig; then @@ -33,6 +41,9 @@ do_install_append() { ln -s ../lib/mdev/sd ${D}${base_bindir}/usbumount fi fi + if grep "CONFIG_NTPD=y" ${WORKDIR}/defconfig; then + install -m 0755 ${WORKDIR}/busybox-ntpd ${D}${sysconfdir}/init.d/ + fi # Install 'suspend' script install -m 0755 ${WORKDIR}/suspend ${D}${base_bindir} } diff --git a/meta-digi-del/recipes-core/packagegroups/packagegroup-del-core.bb b/meta-digi-del/recipes-core/packagegroups/packagegroup-del-core.bb index fdd028523..061bb8691 100644 --- a/meta-digi-del/recipes-core/packagegroups/packagegroup-del-core.bb +++ b/meta-digi-del/recipes-core/packagegroups/packagegroup-del-core.bb @@ -29,6 +29,7 @@ RDEPENDS_${PN} = "\ base-files \ base-passwd \ busybox \ + busybox-ntpd \ ${VIRTUAL-RUNTIME_passwd_manager} \ ${VIRTUAL-RUNTIME_initscripts} \ ${@base_contains("MACHINE_FEATURES", "rtc", "busybox-hwclock", "", d)} \