diff --git a/recipes-core/busybox/busybox_sysmocom.inc b/recipes-core/busybox/busybox_sysmocom.inc index 11f0941..242eacd 100644 --- a/recipes-core/busybox/busybox_sysmocom.inc +++ b/recipes-core/busybox/busybox_sysmocom.inc @@ -1,19 +1,32 @@ SYSMOCOM := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" FILESEXTRAPATHS_prepend := "${SYSMOCOM}/busybox-${SYSMOCOM_ORIG_PV}:${SYSMOCOM}/files:" -PRINC = "24" +PRINC = "25" SRC_URI += "file://busybox-ifplugd.sh \ - file://ifplugd.sh" + file://ifplugd.sh \ + file://udhcpc-ntp.sh \ + file://udhcpc-ntp.default \ + " -PACKAGES =+ "${PN}-ifplugd" +PACKAGES =+ "${PN}-ifplugd ${PN}-udhcpc-ntp" FILES_${PN}-ifplugd = "${sysconfdir}/ifplugd.sh ${sysconfdir}/init.d/busybox-ifplugd.sh" +FILES_${PN}-udhcpc-ntp = "${sysconfdir}/udhcpc.d/60ntp \ + ${sysconfdir}/default/udhcpc-ntp \ + " + +CONFFILES_${PN}-udhcpc-ntp = "${sysconfdir}/default/udhcpc-ntp" + INITSCRIPT_PACKAGES += "${PN}-ifplugd" INITSCRIPT_NAME = "busybox-ifplugd.sh" +RDEPENDS_${PN}-udhcpc-ntp = "${PN}-udhcpc" + do_install_append() { install -m 0755 ${WORKDIR}/ifplugd.sh ${D}${sysconfdir}/ install -m 0755 ${WORKDIR}/busybox-ifplugd.sh ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/udhcpc-ntp.sh ${D}/${sysconfdir}/udhcpc.d/60ntp + install -m 0644 ${WORKDIR}/udhcpc-ntp.default ${D}/${sysconfdir}/default/udhcpc-ntp } diff --git a/recipes-core/busybox/files/udhcpc-ntp.default b/recipes-core/busybox/files/udhcpc-ntp.default new file mode 100755 index 0000000..09e9172 --- /dev/null +++ b/recipes-core/busybox/files/udhcpc-ntp.default @@ -0,0 +1,2 @@ + +USE_NTPSERVER="yes" diff --git a/recipes-core/busybox/files/udhcpc-ntp.sh b/recipes-core/busybox/files/udhcpc-ntp.sh new file mode 100644 index 0000000..4b400b8 --- /dev/null +++ b/recipes-core/busybox/files/udhcpc-ntp.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +NTPDATE_CONF=/etc/default/ntpdate +NTP_CONF=/etc/ntp.conf + +[ -r /etc/default/udhcpc-ntp ] && . /etc/default/udhcpc-ntp + +if [ "$USE_NTPSERVER" != "yes" ]; then + exit 0 +fi + +case "$1" in + renew|bound) + if [ -z "$ntpsrv" ]; then + exit 0 + fi + + printf "ntpserver is %s\n" $ntpsrv + + grep -q -s $ntpsrv ${NTPDATE_CONF} + NTPDATE_UPDATE=$? + if [ -w "${NTPDATE_CONF}" -a ${NTPDATE_UPDATE} != 0 ]; then + printf "changing ntpserver for ntpdate\n" + sed -i -e "s/\(NTPSERVERS=\)\(.*\)/\1\"$ntpsrv\"/g" ${NTPDATE_CONF} + /etc/network/if-up.d/ntpdate-sync + fi + + grep -q -s $ntpsrv ${NTP_CONF} + NTP_UPDATE=$? + if [ -w "${NTP_CONF}" -a ${NTP_UPDATE} != 0 ]; then + printf "changing ntpserver for ntpd\n" + sed -i -e "1,/^server/s/^\(server\)\(.*\)/\1 $ntpsrv iburst/g" ${NTP_CONF} + systemctl restart ntpd + fi + ;; +esac