summaryrefslogtreecommitdiff
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
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
-rw-r--r--meta-ibm/recipes-phosphor/fans/phosphor-fan_%.bbappend5
-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
3 files changed, 12 insertions, 16 deletions
diff --git a/meta-ibm/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-ibm/recipes-phosphor/fans/phosphor-fan_%.bbappend
index 2b6da59460..09d4fd601d 100644
--- a/meta-ibm/recipes-phosphor/fans/phosphor-fan_%.bbappend
+++ b/meta-ibm/recipes-phosphor/fans/phosphor-fan_%.bbappend
@@ -56,11 +56,12 @@ FMT_CONTROL_PWRON_witherspoon = "../${TMPL_CONTROL}:${POWERON_TGT}.requires/${IN
SYSTEMD_LINK_${PN}-control_witherspoon += "${@compose_list(d, 'FMT_CONTROL_PWRON', 'OBMC_CHASSIS_INSTANCES')}"
# Enable the use of JSON on the fan applications that support it
-EXTRA_OECONF_append_witherspoon = " --enable-json --disable-json-control"
+PACKAGECONFIG_append_witherspoon = " json"
+EXTRA_OECONF_append_witherspoon = " --disable-json-control"
RDEPENDS_${PN}-presence-tach_append_witherspoon = " phosphor-fan-presence-config"
RDEPENDS_${PN}-monitor_append_witherspoon = " phosphor-fan-monitor-config"
-EXTRA_OECONF_append_rainier = " --enable-json"
+PACKAGECONFIG_append_rainier = " json"
RDEPENDS_${PN}-presence-tach_append_rainier = " phosphor-fan-presence-config"
RDEPENDS_${PN}-monitor_append_rainier = " phosphor-fan-monitor-config"
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 a324740c5f..0000000000
--- 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 02eee307da..adad349002 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 \