diff options
Diffstat (limited to 'meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp')
-rw-r--r-- | meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in (renamed from meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json) | 97 | ||||
-rw-r--r-- | meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh | 71 |
2 files changed, 86 insertions, 82 deletions
diff --git a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in index e28c0be0f..a5ff4979b 100644 --- a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json +++ b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in @@ -2,7 +2,7 @@ "sensors" : [ { "name": "cputemp", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/cputemp", "parameters": { @@ -17,12 +17,12 @@ }, { "name": "nvme0", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme0", "parameters": { "type": "", - "maxTemp": WCTemp00, + "maxTemp": @WCTemp00@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -32,12 +32,12 @@ }, { "name": "nvme1", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme1", "parameters": { "type": "", - "maxTemp": WCTemp01, + "maxTemp": @WCTemp01@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -47,12 +47,12 @@ }, { "name": "nvme2", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme2", "parameters": { "type": "", - "maxTemp": WCTemp02, + "maxTemp": @WCTemp02@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -62,12 +62,12 @@ }, { "name": "nvme3", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme3", "parameters": { "type": "", - "maxTemp": WCTemp03, + "maxTemp": @WCTemp03@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -77,12 +77,12 @@ }, { "name": "nvme4", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme4", "parameters": { "type": "", - "maxTemp": WCTemp04, + "maxTemp": @WCTemp04@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -92,12 +92,12 @@ }, { "name": "nvme5", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme5", "parameters": { "type": "", - "maxTemp": WCTemp05, + "maxTemp": @WCTemp05@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -107,12 +107,12 @@ }, { "name": "nvme6", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme6", "parameters": { "type": "", - "maxTemp": WCTemp06, + "maxTemp": @WCTemp06@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -122,12 +122,12 @@ }, { "name": "nvme7", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme7", "parameters": { "type": "", - "maxTemp": WCTemp07, + "maxTemp": @WCTemp07@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -137,12 +137,12 @@ }, { "name": "nvme8", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme8", "parameters": { "type": "", - "maxTemp": WCTemp08, + "maxTemp": @WCTemp08@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -152,12 +152,12 @@ }, { "name": "nvme9", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme9", "parameters": { "type": "", - "maxTemp": WCTemp09, + "maxTemp": @WCTemp09@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -167,12 +167,12 @@ }, { "name": "nvme10", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme10", "parameters": { "type": "", - "maxTemp": WCTemp10, + "maxTemp": @WCTemp10@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -182,12 +182,12 @@ }, { "name": "nvme11", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme11", "parameters": { "type": "", - "maxTemp": WCTemp11, + "maxTemp": @WCTemp11@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -197,12 +197,12 @@ }, { "name": "nvme12", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme12", "parameters": { "type": "", - "maxTemp": WCTemp12, + "maxTemp": @WCTemp12@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -212,12 +212,12 @@ }, { "name": "nvme13", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme13", "parameters": { "type": "", - "maxTemp": WCTemp13, + "maxTemp": @WCTemp13@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -227,12 +227,12 @@ }, { "name": "nvme14", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme14", "parameters": { "type": "", - "maxTemp": WCTemp14, + "maxTemp": @WCTemp14@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -242,12 +242,12 @@ }, { "name": "nvme15", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/nvme15", "parameters": { "type": "", - "maxTemp": WCTemp15, + "maxTemp": @WCTemp15@, "path": "", "sysLabel": "", "targetTemp": -1, @@ -257,7 +257,7 @@ }, { "name": "vddcr_cpu", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/vddcr_cpu", "parameters": { @@ -272,7 +272,7 @@ }, { "name": "vddcr_soc", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/vddcr_soc", "parameters": { @@ -287,7 +287,7 @@ }, { "name": "vddio_abcd", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/vddio_abcd", "parameters": { @@ -302,7 +302,7 @@ }, { "name": "vddio_efgh", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/vddio_efgh", "parameters": { @@ -317,7 +317,7 @@ }, { "name": "p12v_mobo", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/p12v_mobo", "parameters": { @@ -332,7 +332,7 @@ }, { "name": "powerseq_temp", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/powerseq_temp", "parameters": { @@ -347,7 +347,7 @@ }, { "name": "p12v_fan", - "unit": "millidegree", + "unit": "degree", "type": "dbus", "path": "/xyz/openbmc_project/sensors/temperature/p12v_fan", "parameters": { @@ -391,22 +391,7 @@ "zoneSetpoint": 10000, "target": "/xyz/openbmc_project/extsensors/margin/nvme", "components": [ - "nvme0", - "nvme1", - "nvme2", - "nvme3", - "nvme4", - "nvme5", - "nvme6", - "nvme7", - "nvme8", - "nvme9", - "nvme10", - "nvme11", - "nvme12", - "nvme13", - "nvme14", - "nvme15" + @nvmeList@ ] }, { diff --git a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh index d0cb2f632..0937a9fb8 100644 --- a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh +++ b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh @@ -1,50 +1,69 @@ #!/bin/bash -MARGIN_TABLE_FILE="/usr/share/read-margin-temp/config-margin.json" +MARGIN_TABLE_FILE_IN="/usr/share/read-margin-temp/config-margin.json.in" +TEMP_FILE="$(mktemp)" +cp "$MARGIN_TABLE_FILE_IN" "$TEMP_FILE" -target_num="$(cat $MARGIN_TABLE_FILE | grep '"target"' | wc -l)" - -cpu_hwmon="$(ls -la /sys/class/hwmon | grep f0082000 | head -n 1 | tail -n +1 | cut -d '/' -f 11)" - -# replace by the real cpu temperature hwmon path in runtime -if [[ "$cpu_hwmon" != "" ]] -then - sed -i "s/cpu_hwmon/$cpu_hwmon/g" $MARGIN_TABLE_FILE -fi +target_num="$(cat $TEMP_FILE | grep '"target"' | wc -l)" # wait target dbus -for ((i=0; i<$target_num; i++)) -do +for ((i = 0; i < ${target_num}; i++)); do line_num=$((i+1)) - path="$(cat $MARGIN_TABLE_FILE | grep '"target"' | head -n ${line_num} | tail -n +${line_num} | cut -d '"' -f 4)" + path="$(cat $TEMP_FILE | grep '"target"' | head -n ${line_num} | tail -n +${line_num} | cut -d '"' -f 4)" mapper wait $path done nvmePath="/xyz/openbmc_project/sensors/temperature/nvme" nvmeInventoryPath="/xyz/openbmc_project/inventory/system/chassis/motherboard/nvme" +nvmeList="" # Get and Set WCTEMP for ((i = 0; i < 16; i++)); do - name=WCTemp$(printf "%02d" $i) + name="@WCTemp$(printf "%02d" $i)@" wcTemp=72000 - presentState=$(busctl get-property \ + presentState="$(busctl get-property \ xyz.openbmc_project.Inventory.Manager \ ${nvmeInventoryPath}${i} \ xyz.openbmc_project.Inventory.Item \ - Present | awk '{print $2}') - - if [[ $presentState == "true" ]]; then - wcTemp=$( - busctl get-property xyz.openbmc_project.nvme.manager \ - ${nvmePath}${i} \ - xyz.openbmc_project.Sensor.Threshold.Critical \ - CriticalHigh | awk '{print $2}' - ) - wcTemp=$((wcTemp * 1000)) + Present | awk '{print $2}')" + + if [[ "$presentState" == "true" ]]; then + actualWCTemp=0 + for ((j = 0; j < 3; j++)); do + actualWCTemp="$( + busctl get-property xyz.openbmc_project.nvme.manager \ + ${nvmePath}${i} \ + xyz.openbmc_project.Sensor.Threshold.Critical \ + CriticalHigh | awk '{print $2}' + )" + if [[ "${actualWCTemp}" -ne 0 ]]; then + break + fi + + echo "${nvmePath}${i} WCTemp was read to be 0, retrying after 1 sec sleep" + sleep 1 + done + + if [[ "${actualWCTemp}" -ne 0 ]]; then + wcTemp="$((actualWCTemp * 1000))" + else + echo "${nvmePath}${i} WCTemp was read to be 0, using default WCTemp: ${wcTemp}" + fi + + if [[ -z "$nvmeList" ]]; then + nvmeList="\"nvme"${i}"\"" + else + nvmeList="${nvmeList}"", \"nvme"${i}"\"" + fi fi - sed -i "s/$name/${wcTemp}/g" $MARGIN_TABLE_FILE + sed -i "s/$name/${wcTemp}/g" "$TEMP_FILE" done +sed -i "s/@nvmeList@/${nvmeList}/g" "$TEMP_FILE" + +# Use shell parameter expansion to trim the ".in" suffix +mv "$TEMP_FILE" "${MARGIN_TABLE_FILE_IN%".in"}" + # start read margin temp /usr/bin/read-margin-temp & |