[Buildroot] [PATCH] busybox: add option to install ntp startup script

Gergely Imreh imrehg at gmail.com
Tue May 19 03:08:53 UTC 2015


On 19 May 2015 at 03:58, Floris Bos <bos at je-eigen-domein.nl> wrote:
> Signed-off-by: Floris Bos <bos at je-eigen-domein.nl>
> ---
>  package/busybox/Config.in  |  6 ++++++
>  package/busybox/S49ntp     | 34 ++++++++++++++++++++++++++++++++++
>  package/busybox/busybox.mk | 15 +++++++++++++++
>  package/busybox/ntp.conf   |  2 ++
>  4 files changed, 57 insertions(+)
>  create mode 100644 package/busybox/S49ntp
>  create mode 100644 package/busybox/ntp.conf
>
> diff --git a/package/busybox/Config.in b/package/busybox/Config.in
> index b4f949f..0b74536 100644
> --- a/package/busybox/Config.in
> +++ b/package/busybox/Config.in
> @@ -26,6 +26,12 @@ config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>           Show packages in menuconfig that are potentially also provided
>           by busybox.
>
> +config BR2_PACKAGE_BUSYBOX_NTP
> +       bool "Install the ntp startup script"
> +       help
> +         Install the ntp daemon startup script, that by default operates in
> +         client-only mode and synchronizes the system time with pool.ntp.org.
> +

Should this section be wrapped in an "if BR2_PACKAGE_NTP" / "endif"
block? I guess there's no point showing the option if the NTP package
is not selected.

On a higher level, wouldn't it make sense to add this option to the
NTP package itself, instead of busybox? Especially because NTP is not
the only ntp client supported by busybox, there's also chrony. Ideally
that should also have an option for default setup and startup script,
just like the this patch aims to do for ntp.


>  config BR2_PACKAGE_BUSYBOX_WATCHDOG
>         bool "Install the watchdog daemon startup script"
>         help
> diff --git a/package/busybox/S49ntp b/package/busybox/S49ntp
> new file mode 100644
> index 0000000..357c95d
> --- /dev/null
> +++ b/package/busybox/S49ntp
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +#
> +# Start ntp daemon (in client mode)
> +#
> +
> +start() {
> +       echo -n "Starting ntpd: "
> +       start-stop-daemon -S -b -q -m -p /var/run/ntpd.pid --exec /usr/sbin/ntpd -- -n
> +       echo "OK"
> +}
> +
> +stop() {
> +       echo -n "Stopping ntpd: "
> +       start-stop-daemon -K -q -p /var/run/ntpd.pid
> +       echo "OK"
> +}
> +
> +case "$1" in
> +  start)
> +       start
> +       ;;
> +  stop)
> +       stop
> +       ;;
> +  restart|reload)
> +       stop
> +       start
> +       ;;
> +  *)
> +       echo "Usage: $0 {start|stop|restart}"
> +       exit 1
> +esac
> +
> +exit $?
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index 1ce508a..32b6db8 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -151,6 +151,19 @@ define BUSYBOX_INSTALL_WATCHDOG_SCRIPT
>  endef
>  endif
>
> +ifeq ($(BR2_PACKAGE_BUSYBOX_NTP),y)
> +define BUSYBOX_SET_NTP
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_NTPD,$(BUSYBOX_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_NTPD_CONF,$(BUSYBOX_BUILD_CONFIG))
> +endef
> +define BUSYBOX_INSTALL_NTP_SCRIPT
> +       $(INSTALL) -D -m 0644 package/busybox/ntp.conf \
> +               $(TARGET_DIR)/etc/ntp.conf
> +       $(INSTALL) -D -m 0755 package/busybox/S49ntp \
> +               $(TARGET_DIR)/etc/init.d/S49ntp
> +endef
> +endif
> +
>  # Enable "noclobber" in install.sh, to prevent BusyBox from overwriting any
>  # full-blown versions of apps installed by other packages with sym/hard links.
>  define BUSYBOX_NOCLOBBER_INSTALL
> @@ -166,6 +179,7 @@ define BUSYBOX_KCONFIG_FIXUP_CMDS
>         $(BUSYBOX_SET_CRYPT_SHA)
>         $(BUSYBOX_INTERNAL_SHADOW_PASSWORDS)
>         $(BUSYBOX_SET_INIT)
> +       $(BUSYBOX_SET_NTP)
>         $(BUSYBOX_SET_WATCHDOG)
>  endef
>
> @@ -188,6 +202,7 @@ endef
>
>  define BUSYBOX_INSTALL_INIT_SYSV
>         $(BUSYBOX_INSTALL_MDEV_SCRIPT)
> +       $(BUSYBOX_INSTALL_NTP_SCRIPT)
>         $(BUSYBOX_INSTALL_LOGGING_SCRIPT)
>         $(BUSYBOX_INSTALL_WATCHDOG_SCRIPT)
>  endef
> diff --git a/package/busybox/ntp.conf b/package/busybox/ntp.conf
> new file mode 100644
> index 0000000..9851d9f
> --- /dev/null
> +++ b/package/busybox/ntp.conf
> @@ -0,0 +1,2 @@
> +server 0.pool.ntp.org
> +server 1.pool.ntp.org

Isn't 2 servers too few in general? If there's a default conf, maybe
use the same setup as the NTP Pool project page's simple setup at
http://www.pool.ntp.org/en/use.html

--- /dev/null
+++ b/package/busybox/ntp.conf
@@ -0,0 +1,6 @@
+driftfile /var/lib/ntp/ntp.drift
+
+server 0.pool.ntp.org
+server 1.pool.ntp.org
+server 2.pool.ntp.org
+server 3.pool.ntp.org

Cheers,
  Greg


More information about the buildroot mailing list