diff options
Diffstat (limited to 'meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.sh')
-rw-r--r-- | meta-quanta/meta-gbs/recipes-gbs/gbs-detect-fan-fail/files/gbs-detect-fan-fail.sh | 70 |
1 files changed, 0 insertions, 70 deletions
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 |