diff options
author | Kumar Thangavel <thangavel.k@hcl.com> | 2021-11-26 09:33:10 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2022-07-26 18:41:19 +0300 |
commit | bf2522d9bcd7790e170c365b992bedb69c0c8dfb (patch) | |
tree | 109a62193cda375a2f3424e86c0ce0f1c7d29f33 /meta-facebook | |
parent | 41025a0ada2aec794079cfbfc796e673a04f10dd (diff) | |
download | openbmc-bf2522d9bcd7790e170c365b992bedb69c0c8dfb.tar.xz |
meta-facebook: yosemitev2 : Add support to take actions if
Fan/NIC sensor values crossed thresholds
Added support to trigger hard shutdown alarms and power off the
slots of the platform if the Fan/NIC sensors values getting low
compared to threshold values.
Added platform specific service file and script to take
platorm specific actions.
TESTED : Verified all the slots getting powered Off when fan/nic
sensor
values crossed threshold values.
Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
Change-Id: I6deb6707e574a375fac8f2379f47661a5a0ed332
Diffstat (limited to 'meta-facebook')
7 files changed, 103 insertions, 0 deletions
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff new file mode 100644 index 0000000000..893facbf5b --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff @@ -0,0 +1,5 @@ +#!/bin/bash +# Power off the hosts when fan sensors crossed thresholds. + +echo "This feature is not implemented in bletchley and it will be implemented in future." + diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target new file mode 100644 index 0000000000..0512fa4d63 --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target @@ -0,0 +1,4 @@ +[Unit] +Description=Chassis%i (Hard Power Off) +After=multi-user.target +Requires=obmc-poweroff.service diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target new file mode 100644 index 0000000000..0389cf72bb --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target @@ -0,0 +1,3 @@ +[Unit] +Description=Chassis%i (Power Off) +After=multi-user.target diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service new file mode 100644 index 0000000000..5f7ff4c0c0 --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service @@ -0,0 +1,7 @@ +[Unit] +Description=power off host + +[Service] +RemainAfterExit=no +Type=oneshot +ExecStart=/usr/libexec/phosphor-fan-sensor-monitor/host-poweroff diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff new file mode 100644 index 0000000000..3d1212b78d --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff @@ -0,0 +1,5 @@ +#!/bin/bash +# Power off the hosts when fan sensors crossed thresholds. + +echo "This feature is not implemented in Tiogapass and it will be implemented in future." + diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff new file mode 100644 index 0000000000..782f085314 --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff @@ -0,0 +1,28 @@ +#!/bin/bash +# Power off the hosts when fan sensors crossed thresholds. + +echo "Power off the hosts if fansensors threshold crossed ::" + +HOST_INSTANCES="HOST_INSTANCES_SED_REPLACEMENT_VALUE" + +DBUS_SERVICE="xyz.openbmc_project.State.Chassis" +DBUS_OBJECT="/xyz/openbmc_project/state/chassis" +DBUS_INTERFACE="xyz.openbmc_project.State.Chassis" +DBUS_PROPERTY="RequestedPowerTransition" +PROPERTY_VALUE="xyz.openbmc_project.State.Chassis.Transition.Off" + +# Power off the hosts. +power-off-all-hosts() +{ + for host_id in $HOST_INSTANCES + do + echo "chosen host id :::$host_id" + + # host power off + output=$(busctl set-property $DBUS_SERVICE$host_id $DBUS_OBJECT$host_id $DBUS_INTERFACE $DBUS_PROPERTY s $PROPERTY_VALUE) + echo "$output" + + done +} + +power-off-all-hosts diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend new file mode 100644 index 0000000000..23aac0a913 --- /dev/null +++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend @@ -0,0 +1,51 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI:append:fb-withhost = " file://obmc-chassis-hard-poweroff@.target \ + file://obmc-chassis-poweroff@0.target \ + file://obmc-poweroff.service \ + file://host-poweroff" + +PACKAGECONFIG:append = " json sensor-monitor" + +EXTRA_OECONF = "enable_host_state=yes" + +RDEPENDS:sensor-monitor = " bash" + +do_install:append:fb-withhost() { + +install -d ${D}${systemd_system_unitdir} +install -m 0644 ${WORKDIR}/obmc-chassis-hard-poweroff@.target ${D}${systemd_system_unitdir} +install -m 0644 ${WORKDIR}/obmc-chassis-poweroff@0.target ${D}${systemd_system_unitdir} +install -m 0644 ${WORKDIR}/obmc-poweroff.service ${D}${systemd_system_unitdir} + +# Store the bitbake variable OBMC_HOST_INSTANCES inside the script as HOST_INSTANCES variable using sed. +sed -i -e "s,HOST_INSTANCES_SED_REPLACEMENT_VALUE,${OBMC_HOST_INSTANCES},g" ${WORKDIR}/host-poweroff + +install -m 0755 -d ${D}/var/lib/phosphor-fan-presence/sensor-monitor + +install -d ${D}/usr/libexec/phosphor-fan-sensor-monitor +install -m 0777 ${WORKDIR}/host-poweroff ${D}/usr/libexec/phosphor-fan-sensor-monitor/ + +} + +pkg_postinst:${PN}() { + +mkdir -p $D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires +mkdir -p $D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target.requires + +LINK="$D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target" +TARGET="../obmc-chassis-poweroff@0.target" +ln -s $TARGET $LINK + +LINK="$D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target.requires/obmc-poweroff.service" +TARGET="../../obmc-poweroff.service" +ln -s $TARGET $LINK + +} + +FILES:sensor-monitor += "/usr/libexec/phosphor-fan-sensor-monitor/host-poweroff" + +FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-chassis-hard-poweroff@.target" +FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-chassis-poweroff@0.target " +FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-poweroff.service" + |