diff --git a/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd-init b/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd-init new file mode 100644 index 000000000..37c1cdb5c --- /dev/null +++ b/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd-init @@ -0,0 +1,38 @@ +#!/bin/sh + +DAEMON="/usr/sbin/ubihealthd" +CMD="$1" +INTERVAL="${2:-3600}" # Optional (default to 1 hour if not specified) + +[ -z "$CMD" ] && usage + +usage() { + echo "Usage: $0 {start|stop|restart} [interval_sec]" + exit 1 +} + +case "$CMD" in + start) + for dev in $(ls /sys/class/ubi/ | grep -E '^ubi[0-9]+$'); do + PIDFILE="/run/ubihealthd-${dev}.pid" + echo -n "Starting UBI health monitor on ${dev} (interval ${INTERVAL} s): " + start-stop-daemon -S -b -x "${DAEMON}" -m -p "${PIDFILE}" -- -d /dev/"${dev}" -i "${INTERVAL}" -f + echo "done." + done + ;; + stop) + for dev in $(ls /sys/class/ubi/ | grep -E '^ubi[0-9]+$'); do + PIDFILE="/run/ubihealthd-${dev}.pid" + start-stop-daemon -K -x "${DAEMON}" -p "${PIDFILE}" + rm -f "$PIDFILE" + done + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + usage + ;; +esac diff --git a/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd.service b/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd.service new file mode 100644 index 000000000..0bd6a67fa --- /dev/null +++ b/meta-digi-dey/recipes-devtools/mtd/mtd-utils/ubihealthd.service @@ -0,0 +1,13 @@ +[Unit] +Description=UBI health monitor +After=ubi.mount +ConditionDirectoryNotEmpty=/sys/class/ubi + +[Service] +Type=oneshot +ExecStart=/etc/ubihealthd-init start +ExecStop=/etc/ubihealthd-init stop +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/meta-digi-dey/recipes-devtools/mtd/mtd-utils_git.bbappend b/meta-digi-dey/recipes-devtools/mtd/mtd-utils_git.bbappend index 199efec5f..9bfa70e07 100644 --- a/meta-digi-dey/recipes-devtools/mtd/mtd-utils_git.bbappend +++ b/meta-digi-dey/recipes-devtools/mtd/mtd-utils_git.bbappend @@ -1,3 +1,33 @@ -# Copyright (C) 2023, Digi International Inc. +# Copyright (C) 2023-2025, Digi International Inc. PACKAGECONFIG:append = " crypto" +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI += " \ + file://ubihealthd-init \ + file://ubihealthd.service \ +" + +inherit systemd update-rc.d + +do_install:append:class-target() { + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/ubihealthd-init ${D}${sysconfdir}/ + ln -sf ${sysconfdir}/ubihealthd-init ${D}${sysconfdir}/init.d/ubihealthd-init + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/ubihealthd.service ${D}${systemd_unitdir}/system/ +} + +FILES:mtd-utils-ubifs += " \ + ${sysconfdir}/ubihealthd-init \ + ${sysconfdir}/init.d/ubihealthd-init \ + ${systemd_unitdir}/system/ubihealthd.service \ +" + +INITSCRIPT_PACKAGES += "mtd-utils-ubifs" +INITSCRIPT_NAME:mtd-utils-ubifs = "ubihealthd-init" +INITSCRIPT_PARAMS:mtd-utils-ubifs = "start 19 2 3 4 5 . stop 21 0 1 6 ." + +SYSTEMD_PACKAGES = "mtd-utils-ubifs" +SYSTEMD_SERVICE:mtd-utils-ubifs = "ubihealthd.service"