Message ID | 20200310080722.12742-2-heiko.thiery@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | package/linuxptp: make initscript options configurable | expand |
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"
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.
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.
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 --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