summaryrefslogtreecommitdiff
path: root/meta-phosphor/recipes-phosphor
diff options
context:
space:
mode:
authorMatt Spinler <spinler@us.ibm.com>2021-01-26 00:25:11 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-02-25 15:38:41 +0300
commitab79e2ad6e7dcd18a9663dfa0dca4cfef76bc13f (patch)
treeeb4d92b7e679ab8fb91099e459e4d2a93e765428 /meta-phosphor/recipes-phosphor
parentb2644f820eac4fbe4b0ce311a6055f959bdcec05 (diff)
downloadopenbmc-ab79e2ad6e7dcd18a9663dfa0dca4cfef76bc13f.tar.xz
ibm: Start phosphor-fan-presence at multi-user
This will start phosphor-fan-presence at the multi-user target. It doesn't need to know about the power state when just checking GPIOs and tach sensors, so let it run all the time. It also avoids a race condition with phosphor-fan-monitor if it starts earlier. This commit also adds a JSON vs YAML packageconfig so service files can be installed to different places based on how it is configured. And since the service file has different contents based on when it starts, the phosphor-fan-presence-tach@.service file was moved into the repo so that the repo itself can determine which one to install based on how the JSON vs YAML configuration option is set. Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I4c00f0854974c70efb5097d0344c45385dbcb085
Diffstat (limited to 'meta-phosphor/recipes-phosphor')
-rw-r--r--meta-phosphor/recipes-phosphor/fans/phosphor-fan/phosphor-fan-presence-tach@.service13
-rw-r--r--meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb10
2 files changed, 9 insertions, 14 deletions
diff --git a/meta-phosphor/recipes-phosphor/fans/phosphor-fan/phosphor-fan-presence-tach@.service b/meta-phosphor/recipes-phosphor/fans/phosphor-fan/phosphor-fan-presence-tach@.service
deleted file mode 100644
index a324740c5..000000000
--- a/meta-phosphor/recipes-phosphor/fans/phosphor-fan/phosphor-fan-presence-tach@.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Phosphor Fan Presence Tach Daemon
-Wants=obmc-power-on@%i.target
-After=obmc-power-on@%i.target
-Conflicts=obmc-chassis-powered-off@%i.target
-
-[Service]
-Restart=on-failure
-ExecStart=/usr/bin/env phosphor-fan-presence-tach
-SyslogIdentifier=phosphor-fan-presence-tach
-
-[Install]
-RequiredBy=obmc-chassis-poweron@%i.target
diff --git a/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb b/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb
index 02eee307d..adad34900 100644
--- a/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb
+++ b/meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb
@@ -36,6 +36,9 @@ PACKAGE_BEFORE_PN += "${FAN_PACKAGES}"
PACKAGECONFIG ?= "presence control monitor"
SYSTEMD_PACKAGES = "${FAN_PACKAGES}"
+# The control, monitor, and presence apps can either be JSON or YAML driven.
+PACKAGECONFIG[json] = "--enable-json, --disable-json"
+
# --------------------------------------
# ${PN}-presence-tach specific configuration
PACKAGECONFIG[presence] = " \
@@ -46,16 +49,21 @@ PACKAGECONFIG[presence] = " \
, \
"
-# Needed to install into the obmc-chassis-poweron target
+MULTI_USR_TGT = "multi-user.target"
TMPL_TACH = "phosphor-fan-presence-tach@.service"
INSTFMT_TACH = "phosphor-fan-presence-tach@{0}.service"
POWERON_TGT = "obmc-chassis-poweron@{0}.target"
FMT_TACH = "../${TMPL_TACH}:${POWERON_TGT}.requires/${INSTFMT_TACH}"
+FMT_TACH_MUSR = "../${TMPL_TACH}:${MULTI_USR_TGT}.wants/${INSTFMT_TACH}"
FILES_${PN}-presence-tach = "${bindir}/phosphor-fan-presence-tach"
SYSTEMD_SERVICE_${PN}-presence-tach += "${TMPL_TACH}"
SYSTEMD_LINK_${PN}-presence-tach += "${@compose_list(d, 'FMT_TACH', 'OBMC_CHASSIS_INSTANCES')}"
+# JSON mode also gets linked into multi-user
+SYSTEMD_LINK_${PN}-presence-tach += "${@bb.utils.contains('PACKAGECONFIG', 'json', \
+ compose_list(d, 'FMT_TACH_MUSR', 'OBMC_CHASSIS_INSTANCES'), '', d)}"
+
# --------------------------------------
# ${PN}-control specific configuration
PACKAGECONFIG[control] = "--enable-control \