diff mbox series

[v3,1/3] package/linuxptp: make initscript options configurable

Message ID 20200310080722.12742-2-heiko.thiery@gmail.com
State Superseded
Headers show
Series package/linuxptp: make initscript options configurable | expand

Commit Message

Heiko Thiery March 10, 2020, 8:07 a.m. UTC
The "package/busybox/S01sysklogd" is taken as template to change the
init script of the linuxptp daemon. The init script is split two parts
because there are 2 daemons (ptp4l and phc2sys).

Let the user supply its own options in /etc/default/ptp4l and
/etc/default/phc2sys.

This patch also fixes an issue with the creation of the pid file that is
needed to properly stop the daemon again.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
 package/linuxptp/S65linuxptp | 46 ----------------------------
 package/linuxptp/S65ptp4l    | 59 ++++++++++++++++++++++++++++++++++++
 package/linuxptp/S66phc2sys  | 59 ++++++++++++++++++++++++++++++++++++
 package/linuxptp/linuxptp.mk |  6 ++--
 4 files changed, 122 insertions(+), 48 deletions(-)
 delete mode 100644 package/linuxptp/S65linuxptp
 create mode 100644 package/linuxptp/S65ptp4l
 create mode 100644 package/linuxptp/S66phc2sys

Comments

Carlos Santos March 12, 2020, 1:43 p.m. UTC | #1
On Tue, Mar 10, 2020 at 5:08 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> The "package/busybox/S01sysklogd" is taken as template to change the
> init script of the linuxptp daemon. The init script is split two parts
> because there are 2 daemons (ptp4l and phc2sys).
>
> Let the user supply its own options in /etc/default/ptp4l and
> /etc/default/phc2sys.
>
> This patch also fixes an issue with the creation of the pid file that is
> needed to properly stop the daemon again.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>

Tested-by: Carlos Santos <unixmania@gmail.com>
---
Testes on an Intel C3000 device

    02:00.0 Ethernet controller: Intel Corporation I210 Gigabit
Network Connection (rev 03)

after adding

==> /etc/default/phc2sys <==
PHC2SYS_ARGS="-s enp2s0 -c CLOCK_REALTIME -w -S 1.0"

==> /etc/default/ptp4l <==
PTP4L_ARGS="-i enp2s0 -f /etc/linuxptp.cfg -m"
Carlos Santos March 12, 2020, 2:08 p.m. UTC | #2
On Thu, Mar 12, 2020 at 10:43 AM Carlos Santos <unixmania@gmail.com> wrote:
>
> On Tue, Mar 10, 2020 at 5:08 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
> >
> > The "package/busybox/S01sysklogd" is taken as template to change the
> > init script of the linuxptp daemon. The init script is split two parts
> > because there are 2 daemons (ptp4l and phc2sys).
> >
> > Let the user supply its own options in /etc/default/ptp4l and
> > /etc/default/phc2sys.
> >
> > This patch also fixes an issue with the creation of the pid file that is
> > needed to properly stop the daemon again.
> >
> > Signed-off-by: Michael Walle <michael@walle.cc>
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
>
> Tested-by: Carlos Santos <unixmania@gmail.com>
> ---
> Testes on an Intel C3000 device
>
>     02:00.0 Ethernet controller: Intel Corporation I210 Gigabit
> Network Connection (rev 03)
>
> after adding
>
> ==> /etc/default/phc2sys <==
> PHC2SYS_ARGS="-s enp2s0 -c CLOCK_REALTIME -w -S 1.0"
>
> ==> /etc/default/ptp4l <==
> PTP4L_ARGS="-i enp2s0 -f /etc/linuxptp.cfg -m"

Hum, maybe it would be better just to use

    PHC2SYS_ARGS="-s /dev/ptp0 -c CLOCK_REALTIME -w -S 1.0"

in S66phc2sys, matching phc2sys.service.
Heiko Thiery March 12, 2020, 2:55 p.m. UTC | #3
Hi Carlos,


On 3/12/20 3:08 PM, Carlos Santos wrote:
> On Thu, Mar 12, 2020 at 10:43 AM Carlos Santos <unixmania@gmail.com> wrote:
>>
>> On Tue, Mar 10, 2020 at 5:08 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
>>>
>>> The "package/busybox/S01sysklogd" is taken as template to change the
>>> init script of the linuxptp daemon. The init script is split two parts
>>> because there are 2 daemons (ptp4l and phc2sys).
>>>
>>> Let the user supply its own options in /etc/default/ptp4l and
>>> /etc/default/phc2sys.
>>>
>>> This patch also fixes an issue with the creation of the pid file that is
>>> needed to properly stop the daemon again.
>>>
>>> Signed-off-by: Michael Walle <michael@walle.cc>
>>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
>>
>> Tested-by: Carlos Santos <unixmania@gmail.com>
>> ---
>> Testes on an Intel C3000 device
>>
>>      02:00.0 Ethernet controller: Intel Corporation I210 Gigabit
>> Network Connection (rev 03)
>>
>> after adding
>>
>> ==> /etc/default/phc2sys <==
>> PHC2SYS_ARGS="-s enp2s0 -c CLOCK_REALTIME -w -S 1.0"
>>
>> ==> /etc/default/ptp4l <==
>> PTP4L_ARGS="-i enp2s0 -f /etc/linuxptp.cfg -m"
> 
> Hum, maybe it would be better just to use
> 
>      PHC2SYS_ARGS="-s /dev/ptp0 -c CLOCK_REALTIME -w -S 1.0"
> 

What about doing the that:

--- a/package/linuxptp/S66phc2sys
+++ b/package/linuxptp/S66phc2sys
@@ -7,7 +7,7 @@ DAEMON="phc2sys"

  PIDFILE="/var/run/$DAEMON.pid"

-PHC2SYS_ARGS="-s eth0 -c CLOCK_REALTIME -w -S 1.0"
+PHC2SYS_ARGS="-a -r -S 1.0"


This will do an automatically configuration as default.
Carlos Santos March 12, 2020, 4:33 p.m. UTC | #4
On Thu, Mar 12, 2020 at 11:55 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> Hi Carlos,
>
>
> On 3/12/20 3:08 PM, Carlos Santos wrote:
> > On Thu, Mar 12, 2020 at 10:43 AM Carlos Santos <unixmania@gmail.com> wrote:
> >>
> >> On Tue, Mar 10, 2020 at 5:08 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
> >>>
> >>> The "package/busybox/S01sysklogd" is taken as template to change the
> >>> init script of the linuxptp daemon. The init script is split two parts
> >>> because there are 2 daemons (ptp4l and phc2sys).
> >>>
> >>> Let the user supply its own options in /etc/default/ptp4l and
> >>> /etc/default/phc2sys.
> >>>
> >>> This patch also fixes an issue with the creation of the pid file that is
> >>> needed to properly stop the daemon again.
> >>>
> >>> Signed-off-by: Michael Walle <michael@walle.cc>
> >>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> >>
> >> Tested-by: Carlos Santos <unixmania@gmail.com>
> >> ---
> >> Testes on an Intel C3000 device
> >>
> >>      02:00.0 Ethernet controller: Intel Corporation I210 Gigabit
> >> Network Connection (rev 03)
> >>
> >> after adding
> >>
> >> ==> /etc/default/phc2sys <==
> >> PHC2SYS_ARGS="-s enp2s0 -c CLOCK_REALTIME -w -S 1.0"
> >>
> >> ==> /etc/default/ptp4l <==
> >> PTP4L_ARGS="-i enp2s0 -f /etc/linuxptp.cfg -m"
> >
> > Hum, maybe it would be better just to use
> >
> >      PHC2SYS_ARGS="-s /dev/ptp0 -c CLOCK_REALTIME -w -S 1.0"
> >
>
> What about doing the that:
>
> --- a/package/linuxptp/S66phc2sys
> +++ b/package/linuxptp/S66phc2sys
> @@ -7,7 +7,7 @@ DAEMON="phc2sys"
>
>   PIDFILE="/var/run/$DAEMON.pid"
>
> -PHC2SYS_ARGS="-s eth0 -c CLOCK_REALTIME -w -S 1.0"
> +PHC2SYS_ARGS="-a -r -S 1.0"
>
>
> This will do an automatically configuration as default.

Yeah, that works too.
diff mbox series

Patch

diff --git a/package/linuxptp/S65linuxptp b/package/linuxptp/S65linuxptp
deleted file mode 100644
index 46b8921fdd..0000000000
--- a/package/linuxptp/S65linuxptp
+++ /dev/null
@@ -1,46 +0,0 @@ 
-#!/bin/sh
-#
-# Start linuxptp
-#
-
-start() {
-	printf "Starting linuxptp daemon: "
-	start-stop-daemon -S -b -q -p /var/run/linuxptp-ptp4l.pid \
-		-x /usr/sbin/ptp4l -- -f /etc/linuxptp.cfg
-	[ $? = 0 ] && echo "OK" || echo "FAIL"
-
-	printf "Starting linuxptp system clock synchronization: "
-	start-stop-daemon -S -b -q -p /var/run/linuxptp-phc2sys.pid \
-		-x /usr/sbin/phc2sys -- -s eth0 -c CLOCK_REALTIME -w -S 1.0
-	[ $? = 0 ] && echo "OK" || echo "FAIL"
-}
-
-stop() {
-	printf "Stopping linuxptp system clock synchronization: "
-	start-stop-daemon -K -q -p /var/run/linuxptp-phc2sys.pid \
-		-x /usr/sbin/phc2sys
-	echo "OK"
-
-	printf "Stopping linuxptp daemon: "
-	start-stop-daemon -K -q -p /var/run/linuxptp-ptp4l.pid \
-		-x /usr/sbin/ptp4l
-	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/linuxptp/S65ptp4l b/package/linuxptp/S65ptp4l
new file mode 100644
index 0000000000..630c5e803b
--- /dev/null
+++ b/package/linuxptp/S65ptp4l
@@ -0,0 +1,59 @@ 
+#!/bin/sh
+#
+# Start linuxptp
+#
+
+DAEMON="ptp4l"
+
+PIDFILE="/var/run/$DAEMON.pid"
+
+PTP4L_ARGS="-f /etc/linuxptp.cfg"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/ptp4l" ] && . "/etc/default/ptp4l"
+
+# ptp4l does not create a pidfile, so pass "-n" in the command line
+# and use "-m" to instruct start-stop-daemon to create one.
+start() {
+	printf "Starting linuxptp daemon: "
+	start-stop-daemon -S -b -q -m -p $PIDFILE \
+		-x /usr/sbin/$DAEMON -- $PTP4L_ARGS
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return $status
+}
+
+stop() {
+	printf "Stopping linuxptp daemon: "
+	start-stop-daemon -K -q -p $PIDFILE
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		rm -f "$PIDFILE"
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return $status
+}
+
+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/linuxptp/S66phc2sys b/package/linuxptp/S66phc2sys
new file mode 100644
index 0000000000..5d9e962b07
--- /dev/null
+++ b/package/linuxptp/S66phc2sys
@@ -0,0 +1,59 @@ 
+#!/bin/sh
+#
+# Start linuxptp
+#
+
+DAEMON="phc2sys"
+
+PIDFILE="/var/run/$DAEMON.pid"
+
+PHC2SYS_ARGS="-s eth0 -c CLOCK_REALTIME -w -S 1.0"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/phc2sys" ] && . "/etc/default/phc2sys"
+
+# phc2sys does not create a pidfile, so pass "-n" in the command line
+# and use "-m" to instruct start-stop-daemon to create one.
+start() {
+	printf "Starting linuxptp system clock synchronization: "
+	start-stop-daemon -S -b -q -m -p $PIDFILE \
+		-x /usr/sbin/$DAEMON -- $PHC2SYS_ARGS
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return $status
+}
+
+stop() {
+	printf "Stopping linuxptp system clock synchronization: "
+	start-stop-daemon -K -q -p $PIDFILE
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		rm -f "$PIDFILE"
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return $status
+}
+
+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/linuxptp/linuxptp.mk b/package/linuxptp/linuxptp.mk
index 97e4af7be7..ba57396f86 100644
--- a/package/linuxptp/linuxptp.mk
+++ b/package/linuxptp/linuxptp.mk
@@ -33,8 +33,10 @@  define LINUXPTP_INSTALL_TARGET_CMDS
 endef
 
 define LINUXPTP_INSTALL_INIT_SYSV
-	$(INSTALL) -m 755 -D $(LINUXPTP_PKGDIR)/S65linuxptp \
-		$(TARGET_DIR)/etc/init.d/S65linuxptp
+	$(INSTALL) -m 755 -D $(LINUXPTP_PKGDIR)/S65ptp4l \
+		$(TARGET_DIR)/etc/init.d/S65ptp4l
+	$(INSTALL) -m 755 -D $(LINUXPTP_PKGDIR)/S66phc2sys \
+		$(TARGET_DIR)/etc/init.d/S66phc2sys
 endef
 
 define LINUXPTP_INSTALL_INIT_SYSTEMD