diff options
author | George Hung <george.hung@quantatw.com> | 2021-03-10 11:04:46 +0300 |
---|---|---|
committer | Brandon Kim <brandonkim@google.com> | 2021-04-01 01:52:01 +0300 |
commit | b5eef5151b9292593bfce7fb5ae3d63e1a5671a6 (patch) | |
tree | 591f222cd44203b9914519b21143bdec0aabe759 /meta-quanta/meta-gbs/recipes-gbs | |
parent | 38b6831afd7321dd9b95d67e1d4d9ef551933190 (diff) | |
download | openbmc-b5eef5151b9292593bfce7fb5ae3d63e1a5671a6.tar.xz |
meta-quanta: gbs: failsafe fan speed control dynamically
1. add acpi-power-state daemon to check the ACPI power
states from BIOS
2. set failsafe fan speed at different states
- S0_G0_D0: 90%
- S5_G2: 40%
Note:
this item depends on the commit and will
add as the patches first in another PR
https://gerrit.openbmc-project.xyz/38112
3. add gbs-check-host-state.sh to monitor the power state
D-Bus and then trigger to set fan failsafe speed
4. remove gbs-detect-fan-fail service and unused scripts
from phosphor-pid-control
5. update read-margin-temp srcrev to avoid nvme temperature
sensor failed due to nvme SSD not-present
Signed-off-by: George Hung <george.hung@quantatw.com>
Change-Id: I496dd7bc59076a2b3690e367877d49533855c9fe
Diffstat (limited to 'meta-quanta/meta-gbs/recipes-gbs')
4 files changed, 2 insertions, 106 deletions
diff --git a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.service b/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.service deleted file mode 100644 index ecdc95399..000000000 --- a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Detect Fan Fail Manager -After=phosphor-pid-control.service - -[Service] -ExecStart=/usr/bin/gbs-detect-fan-fail.sh -Restart=always -StandardOutput=syslog - -[Install] -WantedBy=multi-user.target diff --git a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.sh b/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.sh deleted file mode 100644 index 56ae7bbc5..000000000 --- a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash - -## - # This script is to handle fan fail condition which is described below. - # Fan fail means one fan RPM is under its CriticalLow. If BMC encounters - # such situation, then sets other fans to full speed. - # - -# get fan state -function get_fan_state() { - get_property_path='xyz.openbmc_project.Sensor.Threshold.Critical CriticalAlarmLow' - fan_state="$(busctl get-property $1 $2 $get_property_path | awk '{print $2}')" - echo "$fan_state" -} - -# check fan fail -function is_fan_fail() { - fan_state=("$@") - - for i in "${fan_state[@]}" - do - if [ ! -z "$i" ] - then - if [ $i == "true" ] - then - echo 1 - return - fi - fi - done - echo 0 -} - -fan_tach_path=( '/xyz/openbmc_project/sensors/fan_tach/fan0' - '/xyz/openbmc_project/sensors/fan_tach/fan1' - '/xyz/openbmc_project/sensors/fan_tach/fb_fan0' - '/xyz/openbmc_project/sensors/fan_tach/fb_fan1' - '/xyz/openbmc_project/sensors/fan_tach/fb_fan2' - ) - -check_fail_flag=0 -is_fan_fail_flag=0 -current_fan_state=() - -while true -do - for i in ${!fan_tach_path[@]} - do - mapper wait ${fan_tach_path[$i]} - hwmon_path="$(mapper get-service ${fan_tach_path[0]})" - current_fan_state[$i]=$(get_fan_state $hwmon_path ${fan_tach_path[$i]}) - done - - is_fan_fail_flag=$(is_fan_fail "${current_fan_state[@]}") - - # if fan fails then set all fans to full speed - if [ $is_fan_fail_flag -eq 1 ] && [ $check_fail_flag -eq 0 ] - then - check_fail_flag=1 - systemctl stop phosphor-pid-control.service - - # fans recover to normal state - elif [ $is_fan_fail_flag -eq 0 ] && [ $check_fail_flag -eq 1 ] - then - check_fail_flag=0 - systemctl restart phosphor-pid-control.service - fi - - sleep 2 -done diff --git a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/gbs-detect-fan-fail.bb b/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/gbs-detect-fan-fail.bb deleted file mode 100644 index 5befec8d6..000000000 --- a/meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/gbs-detect-fan-fail.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "OpenBMC Quanta Detect Fan Fail Service" -DESCRIPTION = "OpenBMC Quanta Detect Fan Fail Daemon." -PR = "r1" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -inherit systemd - -DEPENDS += "systemd" -RDEPENDS_${PN} += "bash" - -SRC_URI = " file://gbs-detect-fan-fail.sh \ - file://gbs-detect-fan-fail.service \ - " - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/gbs-detect-fan-fail.sh ${D}${bindir}/ - - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/gbs-detect-fan-fail.service ${D}${systemd_system_unitdir} -} - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "gbs-detect-fan-fail.service" diff --git a/meta-quanta/meta-gbs/recipes-gbs/gbs-sysinit/files/gbs-sysinit.service b/meta-quanta/meta-gbs/recipes-gbs/gbs-sysinit/files/gbs-sysinit.service index 645136b85..7fd74377c 100644 --- a/meta-quanta/meta-gbs/recipes-gbs/gbs-sysinit/files/gbs-sysinit.service +++ b/meta-quanta/meta-gbs/recipes-gbs/gbs-sysinit/files/gbs-sysinit.service @@ -1,5 +1,7 @@ [Unit] Description = Initialization for GBS boot up +Requires=gbs-host-ready.target +After=gbs-host-ready.target Wants=mapper-wait@-xyz-openbmc_project-inventory.service After=mapper-wait@-xyz-openbmc_project-inventory.service Wants=mapper-wait@-xyz-openbmc_project-control-nvme.service |