From 09a2cf3aab5791ce357ebebd2b2325253802d30e Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 29 Sep 2019 11:25:17 +0300 Subject: [PATCH] Add SNTP support --- board/common/overlay/etc/init.d/S50date | 36 ++++++++++++++++++++----- configs/bananapim1_defconfig | 2 +- configs/nanopineo2_defconfig | 2 +- configs/nanopineo_defconfig | 2 +- configs/odroidc1_defconfig | 2 +- configs/odroidc2_defconfig | 2 +- configs/odroidxu4_defconfig | 2 +- configs/orangepione_defconfig | 2 +- configs/orangepizero_defconfig | 2 +- configs/pine64_defconfig | 2 +- configs/raspberrypi2_defconfig | 2 +- configs/raspberrypi3_defconfig | 2 +- configs/raspberrypi4_defconfig | 2 +- configs/raspberrypi_defconfig | 2 +- configs/tinkerboard_defconfig | 2 +- 15 files changed, 43 insertions(+), 21 deletions(-) diff --git a/board/common/overlay/etc/init.d/S50date b/board/common/overlay/etc/init.d/S50date index 09622bcb73..0f3c39ec98 100755 --- a/board/common/overlay/etc/init.d/S50date +++ b/board/common/overlay/etc/init.d/S50date @@ -2,6 +2,8 @@ PROG_DATE="/bin/date" PROG_NTPD="/usr/sbin/ntpd" +PROG_SNTP="/usr/bin/sntp" +LOG_SNTP="/var/log/sntp.log" SYS_CONF="/etc/date.conf" BOOT_CONF="/boot/date.conf" @@ -55,8 +57,22 @@ set_current_date_ntp() { fi } +set_current_date_sntp() { + sntp_args="-t ${DATE_TIMEOUT} -K /var/lib/ntp/kod -Ss" + server=$(cat ${NTP_CONF} | grep server | head -n 1 | cut -d ' ' -f 2) + ${PROG_SNTP} ${sntp_args} ${server} &>${LOG_SNTP} + if [[ $? == 0 ]]; then + logger -t date "current system date/time set to $(date) via SNTP" + return 0 + else + logger -t date "failed to set current system date/time via SNTP" + return 1 + fi +} + + start_http() { - msg_begin "Setting current date using http" + msg_begin "Setting current date using HTTP" if set_current_date_http; then sleep_interval=${DATE_INTERVAL} msg_done "$(${PROG_DATE})" @@ -79,6 +95,7 @@ start_http() { start_ntp() { mkdir -p /var/lib/ntp + touch /var/lib/ntp/kod cat ${NTP_CONF} | grep -v iburst > ${NTP_CONF}.tmp @@ -91,9 +108,15 @@ start_ntp() { cat ${NTP_CONF}.tmp >> ${NTP_CONF} rm ${NTP_CONF}.tmp - msg_begin "Setting current date using ntp" - set_current_date_ntp || set_current_date_ntp - test $? == 0 && msg_done "$(${PROG_DATE})" || msg_fail + if [[ "${DATE_METHOD}" == "sntp" ]]; then + msg_begin "Setting current date using SNTP" + set_current_date_sntp + test $? == 0 && msg_done "$(${PROG_DATE})" || msg_fail + else # assuming ntp + msg_begin "Setting current date using NTP" + set_current_date_ntp || set_current_date_ntp + test $? == 0 && msg_done "$(${PROG_DATE})" || msg_fail + fi msg_begin "Starting ntpd" ${PROG_NTPD} -g -c ${NTP_CONF} @@ -115,7 +138,7 @@ stop_ntp() { start() { if [[ "${DATE_METHOD}" == "http" ]]; then start_http - else + else # ntp or sntp start_ntp fi @@ -125,7 +148,7 @@ start() { stop() { if [[ "${DATE_METHOD}" == "http" ]]; then stop_http - else + else # ntp or sntp stop_ntp fi } @@ -150,4 +173,3 @@ case "$1" in esac exit $? - diff --git a/configs/bananapim1_defconfig b/configs/bananapim1_defconfig index 4154cf46c3..3e29136041 100644 --- a/configs/bananapim1_defconfig +++ b/configs/bananapim1_defconfig @@ -66,7 +66,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/nanopineo2_defconfig b/configs/nanopineo2_defconfig index 462c2e8f27..b117b6ff0b 100644 --- a/configs/nanopineo2_defconfig +++ b/configs/nanopineo2_defconfig @@ -58,7 +58,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/nanopineo_defconfig b/configs/nanopineo_defconfig index 7d58899a54..d3bf640f70 100644 --- a/configs/nanopineo_defconfig +++ b/configs/nanopineo_defconfig @@ -58,7 +58,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/odroidc1_defconfig b/configs/odroidc1_defconfig index 3b316a3fbd..f5b70a4981 100644 --- a/configs/odroidc1_defconfig +++ b/configs/odroidc1_defconfig @@ -70,7 +70,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/odroidc2_defconfig b/configs/odroidc2_defconfig index b8063ae49e..203ac0cc42 100644 --- a/configs/odroidc2_defconfig +++ b/configs/odroidc2_defconfig @@ -58,7 +58,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/odroidxu4_defconfig b/configs/odroidxu4_defconfig index 520e2d3990..6f3808b498 100644 --- a/configs/odroidxu4_defconfig +++ b/configs/odroidxu4_defconfig @@ -60,7 +60,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/orangepione_defconfig b/configs/orangepione_defconfig index 3a04203378..24ea3e86eb 100644 --- a/configs/orangepione_defconfig +++ b/configs/orangepione_defconfig @@ -61,7 +61,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/orangepizero_defconfig b/configs/orangepizero_defconfig index de5438142c..94ccba49dd 100644 --- a/configs/orangepizero_defconfig +++ b/configs/orangepizero_defconfig @@ -61,7 +61,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig index 3d2ec79786..bb394ba838 100644 --- a/configs/pine64_defconfig +++ b/configs/pine64_defconfig @@ -57,7 +57,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/raspberrypi2_defconfig b/configs/raspberrypi2_defconfig index 2d4386067b..1c43b55e65 100644 --- a/configs/raspberrypi2_defconfig +++ b/configs/raspberrypi2_defconfig @@ -64,7 +64,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/raspberrypi3_defconfig b/configs/raspberrypi3_defconfig index a684cd99d0..04be7e51ef 100644 --- a/configs/raspberrypi3_defconfig +++ b/configs/raspberrypi3_defconfig @@ -64,7 +64,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/raspberrypi4_defconfig b/configs/raspberrypi4_defconfig index 726bde64a2..dbfafe7770 100644 --- a/configs/raspberrypi4_defconfig +++ b/configs/raspberrypi4_defconfig @@ -64,7 +64,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/raspberrypi_defconfig b/configs/raspberrypi_defconfig index 9c0035a619..45f0885a34 100644 --- a/configs/raspberrypi_defconfig +++ b/configs/raspberrypi_defconfig @@ -71,7 +71,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y diff --git a/configs/tinkerboard_defconfig b/configs/tinkerboard_defconfig index f6fb99c707..c2bf2c966d 100644 --- a/configs/tinkerboard_defconfig +++ b/configs/tinkerboard_defconfig @@ -61,7 +61,7 @@ BR2_PACKAGE_IW=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_NET_TOOLS=y BR2_PACKAGE_NTP=y -BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_SNTP=y BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_PPPD=y BR2_PACKAGE_WIRELESS_TOOLS=y