From ab79e2ad6e7dcd18a9663dfa0dca4cfef76bc13f Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Mon, 25 Jan 2021 15:25:11 -0600 Subject: 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 Change-Id: I4c00f0854974c70efb5097d0344c45385dbcb085 --- .../fans/phosphor-fan/phosphor-fan-presence-tach@.service | 13 ------------- meta-phosphor/recipes-phosphor/fans/phosphor-fan_git.bb | 10 +++++++++- 2 files changed, 9 insertions(+), 14 deletions(-) delete mode 100644 meta-phosphor/recipes-phosphor/fans/phosphor-fan/phosphor-fan-presence-tach@.service (limited to 'meta-phosphor/recipes-phosphor') 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 \ -- cgit v1.2.3