summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence.bb40
-rw-r--r--meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence/phosphor-fan-presence-tach@.service12
-rw-r--r--meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb1
-rw-r--r--meta-phosphor/conf/distro/include/phosphor-defaults.inc5
4 files changed, 58 insertions, 0 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence.bb b/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence.bb
new file mode 100644
index 000000000..7899dc458
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Phosphor Fan Presence"
+DESCRIPTION = "Phosphor fan presence provides a set of fan presence \
+daemons to monitor fan presence changes by different methods of \
+presence detection."
+HOMEPAGE = "https://github.com/openbmc/phosphor-fan-presence"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+inherit autotools pkgconfig pythonnative
+inherit obmc-phosphor-systemd
+
+DEPENDS += "autoconf-archive-native"
+DEPENDS += "python-pyyaml-native"
+DEPENDS += "sdbusplus"
+DEPENDS += "phosphor-logging"
+RDEPENDS_${PN} += "sdbusplus"
+
+FAN_PRESENCE_PACKAGES = " \
+ ${PN}-tach \
+"
+PACKAGES_remove = "${PN}"
+PACKAGES += "${FAN_PRESENCE_PACKAGES}"
+SYSTEMD_PACKAGES = "${FAN_PRESENCE_PACKAGES}"
+RDEPENDS_${PN}-dev = "${FAN_PRESENCE_PACKAGES}"
+
+# Needed to install into the obmc-chassis-start target
+TMPL = "phosphor-fan-presence-tach@.service"
+INSTFMT = "phosphor-fan-presence-tach@{0}.service"
+TGTFMT = "obmc-chassis-start@{0}.target"
+FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
+
+FILES_${PN}-tach = "${sbindir}/phosphor-fan-presence-tach"
+SYSTEMD_SERVICE_${PN}-tach += "${TMPL}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
+
+SRC_URI += "git://github.com/openbmc/phosphor-fan-presence"
+SRCREV = "5c15b797ffafd36eceecfbf250bd0eead39103dd"
+
+S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence/phosphor-fan-presence-tach@.service b/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence/phosphor-fan-presence-tach@.service
new file mode 100644
index 000000000..ac153895e
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/fans/phosphor-fan-presence/phosphor-fan-presence-tach@.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Phosphor Fan Presence Tach Daemon
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart={sbindir}/phosphor-fan-presence-tach
+
+[Install]
+RequiredBy=obmc-chassis-start@%i.target
diff --git a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 517a679d4..f55f98488 100644
--- a/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -46,6 +46,7 @@ RDEPENDS_${PN}-host-state-mgmt = " \
SUMMARY_${PN}-inventory = "Inventory applications"
RDEPENDS_${PN}-inventory = " \
${VIRTUAL-RUNTIME_obmc-inventory-manager} \
+ ${VIRTUAL-RUNTIME_obmc-fan-presence} \
"
SUMMARY_${PN}-leds = "LED applications"
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index f7ac0b5ec..954264d45 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -32,6 +32,11 @@ VIRTUAL-RUNTIME_obmc-chassis-state-manager ?= "phosphor-state-manager-chassis"
# interface.
VIRTUAL-RUNTIME_obmc-host-state-manager ?= "phosphor-state-manager-host"
+# obmc-fan-presence
+#
+# Provides implementations of fan presence detection
+VIRTUAL-RUNTIME_obmc-fan-presence ?= "phosphor-fan-presence-tach"
+
# obmc-inventory-manager
#
# Provides an implementation of the xyz.openbmc_project.Inventory.Manager
OpenPOWER on IntegriCloud