aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Fancellu <luca.fancellu@arm.com>2023-10-11 17:33:46 +0100
committerKhem Raj <raj.khem@gmail.com>2023-10-13 13:23:50 -0700
commit35bcd8c6ddfb6bc8729d0006dab887afcc772ec9 (patch)
treecea2071ef38ea83222a16ad446e0a2b20a498fd0
parent34c5bea19d67b36e572cb71c11fd553ac9f35a28 (diff)
downloadmeta-openembedded-contrib-35bcd8c6ddfb6bc8729d0006dab887afcc772ec9.tar.gz
linuxptp: add systemd services
Add systemd services phc2sys@.service and ptp4l@.service, these services are taken from the Ubuntu/Debian linuxptp package. Update the recipe to install them when needed using the systemd bbclass, the services are disabled by default. Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service13
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service11
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb16
3 files changed, 40 insertions, 0 deletions
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service
new file mode 100644
index 0000000000..dd2512bdca
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Synchronize system clock or PTP hardware clock (PHC)
+Documentation=man:phc2sys
+Requires=ptp4l.service
+After=ptp4l.service
+Before=time-sync.target
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/phc2sys -w -s %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service
new file mode 100644
index 0000000000..1bad2d72df
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Precision Time Protocol (PTP) service for %I
+Documentation=man:ptp4l
+After=sys-subsystem-net-devices-%i.device
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/ptp4l -f /etc/linuxptp/ptp4l.conf -i %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb
index 3c7efbdeca..95ed76e621 100644
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb
@@ -11,11 +11,15 @@ SRC_URI = "${LINUXPTP_SRC_URI}/files/v4.1/linuxptp-${PV}.tgz \
file://build-Allow-CC-and-prefix-to-be-overriden.patch \
file://Use-cross-cpp-in-incdefs.patch \
file://0001-include-string.h-for-strncpy.patch \
+ file://systemd/phc2sys@.service \
+ file://systemd/ptp4l@.service \
"
SRC_URI[md5sum] = "1db8699fc155965341759be5e5aad938"
SRC_URI[sha256sum] = "e1743d44f8208897e30895da3579e670ff919b914feb4b5a949f3e421ddde535"
+inherit systemd
+
UPSTREAM_CHECK_URI = "${LINUXPTP_SRC_URI}/files/"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
@@ -23,6 +27,8 @@ EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} EXTRA_CFLAGS='${CFLAGS}' mandir=${mandir}"
export KBUILD_OUTPUT="${RECIPE_SYSROOT}"
+LINUXPTP_SYSTEMD_SERVICES = "phc2sys@.service ptp4l@.service"
+
do_install() {
oe_runmake install DESTDIR=${D} prefix=${prefix}
@@ -35,8 +41,18 @@ do_install() {
install -d ${D}/${sysconfdir}/linuxptp/
install -m 644 ${S}/configs/default.cfg \
${D}${sysconfdir}/linuxptp/ptp4l.conf
+
+ # Install systemd services
+ install -d ${D}/${systemd_unitdir}/system/
+ for service in ${LINUXPTP_SYSTEMD_SERVICES}; do
+ install -m 644 ${WORKDIR}/systemd/$service \
+ ${D}/${systemd_unitdir}/system/$service
+ done
}
+SYSTEMD_SERVICE:${PN} = "${LINUXPTP_SYSTEMD_SERVICES}"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
PACKAGES =+ "${PN}-configs"
FILES:${PN}-configs += "${docdir}"