diff options
Diffstat (limited to 'meta-phosphor/common/recipes-phosphor/sensors')
5 files changed, 32 insertions, 4 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon.bb b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon.bb index 2d2833916..8d5eb4b67 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon.bb +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon.bb @@ -25,6 +25,7 @@ RDEPENDS_${PN} += "\ sdbusplus \ phosphor-dbus-interfaces \ phosphor-logging \ + bash \ " RRECOMMENDS_${PN} += "${VIRTUAL-RUNTIME_phosphor-hwmon-config}" @@ -35,6 +36,7 @@ RDEPENDS_max31785-msl = "${VIRTUAL-RUNTIME_base-utils} i2c-tools" SRC_URI += "git://scm.raptorcs.com/scm/git/phosphor-hwmon;protocol=https;branch=04-19-2018" SRC_URI += "file://70-hwmon.rules" SRC_URI += "file://70-iio.rules" +SRC_URI += "file://start_hwmon.sh" SRCREV = "d7bb5ac10f35bfb13237d6f0a94fd7a798a4a0b1" @@ -45,4 +47,7 @@ do_install_append() { install -d ${D}/${base_libdir}/udev/rules.d/ install ${WORKDIR}/70-hwmon.rules ${D}/${base_libdir}/udev/rules.d/ install ${WORKDIR}/70-iio.rules ${D}/${base_libdir}/udev/rules.d/ + + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/start_hwmon.sh ${D}${bindir} } diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules index 070d88f51..503b2d002 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules @@ -1 +1,2 @@ -SUBSYSTEM=="hwmon", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service" +SUBSYSTEM=="hwmon", ACTION=="add", RUN="/usr/bin/start_hwmon.sh start %p %E{OF_FULLNAME}" +SUBSYSTEM=="hwmon", ACTION=="remove", RUN="/usr/bin/start_hwmon.sh stop %p %E{OF_FULLNAME}" diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules index f332d11ac..45fb4b0fb 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules @@ -1 +1,2 @@ -SUBSYSTEM=="iio", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service" +SUBSYSTEM=="iio", ACTION=="add", RUN="/usr/bin/start_hwmon.sh start %p %E{OF_FULLNAME}" +SUBSYSTEM=="iio", ACTION=="remove", RUN="/usr/bin/start_hwmon.sh stop %p %E{OF_FULLNAME}" diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh new file mode 100644 index 000000000..cde0f96ca --- /dev/null +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +action=$1 +devpath=$2 +of_fullname=$3 + +#Use of_fullname if it's there, otherwise use devpath. + +path=$of_fullname +if [ -z "$path" ] +then + path=$devpath + + if [[ "$path" =~ (.*)/hwmon/hwmon[0-9]+$ ]]; + then + path=${BASH_REMATCH[1]} + fi +fi + +path="${path//:/--}" + +systemctl $action 'xyz.openbmc_project.Hwmon@'$path'.service' diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service index 8dca3ad4b..9d3e2635e 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service @@ -1,11 +1,10 @@ [Unit] Description=Phosphor Hwmon Poller ConditionFileNotEmpty=/etc/default/obmc/hwmon/%I.conf -StopWhenUnneeded=true After=xyz.openbmc_project.ObjectMapper.service [Service] -Restart=always +Restart=on-failure ExecStart=/usr/bin/env phosphor-hwmon-readd -o %f SyslogIdentifier=phosphor-hwmon-readd EnvironmentFile=/etc/default/obmc/hwmon/%I.conf |