(change version)

fixed fan speed output for fringe cases, also fixed possible overwrite of fan speeds.
the fan output isn't perfect though, but it will do for now.
This commit is contained in:
inxi-svn 2010-01-07 23:59:16 +00:00
parent 829aa64b70
commit 8eb4d3d470

45
inxi
View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/bash
######################################################################## ########################################################################
#### Script Name: inxi #### Script Name: inxi
#### version: 1.2.8 #### version: 1.2.9
#### Date: December 25 2009 #### Date: January 7 2010
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
######################################################################## ########################################################################
@ -3213,7 +3213,7 @@ get_sensors_data()
# note: non-configured sensors gives error message, which we need to redirect to stdout # note: non-configured sensors gives error message, which we need to redirect to stdout
# also, -F ':' no space, since some cases have the data starting right after,like - :1287 # also, -F ':' no space, since some cases have the data starting right after,like - :1287
A_SENSORS_DATA=( $( A_SENSORS_DATA=( $(
sensors | gawk -F ':' -v userCpuNo="$SENSORS_CPU_NO" ' sensors | gawk -F ':' -v userCpuNo="$SENSORS_CPU_NO" '
BEGIN { BEGIN {
IGNORECASE=1 IGNORECASE=1
core0Temp="" # only if all else fails... core0Temp="" # only if all else fails...
@ -3312,19 +3312,32 @@ get_sensors_data()
/(Power|P\/S|POWER)(.*)[ \t]*([0-9]+)[ \t]RPM/ { /(Power|P\/S|POWER)(.*)[ \t]*([0-9]+)[ \t]RPM/ {
aFanMain[3]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 ) aFanMain[3]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 )
} }
# note that the counters are dynamically set for fan numbers here
/^(AUX(1)? |FAN(1)? |CASE(1)? |CHASSIS(1)? )(.*)[ \t]*([0-9]+)[ \t]RPM/ { # otherwise you could overwrite eg aux fan2 with case fan2 in theory
aFanMain[4]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 ) # note: cpu/mobo/ps are 1/2/3
} /^(AUX(1)? |CASE(1)? |CHASSIS(1)? )(.*)[ \t]*([0-9]+)[ \t]RPM/ {
/^(AUX([2-9]) |FAN([2-9]) |CASE([2-9]) |CHASSIS([2-9]) )(.*)[ \t]*([0-9]+)[ \t]RPM/ { for ( i = 4; i < 7; i++ ){
sysFanNu=gensub( /^(AUX|FAN|CASE|CHASSIS)([2-9])[ \t]+(.*)/, "\\2", 1, $1 ) if ( ! i in aFanMain ){
if ( sysFanNu ~ /^([2-9])$/ ) { sysFanNu = i
# note: cpu/mobo/ps/fan1 above are 1/2/3/4 aFanMain[sysFanNu]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 )
sysFanNu = sysFanNu + 3 break
aFanMain[sysFanNu]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 ) }
} }
} }
/^fan([0-9]+)(.*)[ \t]*([0-9]+)[ \t]RPM/ { /^(AUX([2-9]) |CASE([2-9]) |CHASSIS([2-9]) )(.*)[ \t]*([0-9]+)[ \t]RPM/ {
for ( i = 5; i < 30; i++ ){
if ( ! i in aFanMain ){
sysFanNu = i
aFanMain[sysFanNu]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 )
break
}
}
}
# in rare cases syntax is like: fan1: xxx RPM
/^(FAN(1)?[ \t:])(.*)[ \t]*([0-9]+)[ \t]RPM/ {
aFanDefault[1]=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 )
}
/^FAN([2-9]|1[0-9])(.*)[ \t]*([0-9]+)[ \t]RPM/ {
fanWorking=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 ) fanWorking=gensub( /[ \t]*([0-9]+)[ \t]+(.*)/, "\\1", 1, $2 )
sysFanNu=gensub( /fan([0-9]+)/, "\\1", 1, $1 ) sysFanNu=gensub( /fan([0-9]+)/, "\\1", 1, $1 )
if ( sysFanNu ~ /^([0-9]+)$/ ) { if ( sysFanNu ~ /^([0-9]+)$/ ) {
@ -3364,6 +3377,9 @@ get_sensors_data()
else if ( temp1 == "" && temp2 == "" && cpuTemp == "" && moboTemp == "" ){ else if ( temp1 == "" && temp2 == "" && cpuTemp == "" && moboTemp == "" ){
tempFanType=1 tempFanType=1
} }
else if ( temp1 != "" && temp2 == "" && cpuTemp == "" && moboTemp == "" ){
tempFanType=1
}
# then get the real cpu temp, best guess is hottest is real # then get the real cpu temp, best guess is hottest is real
if ( cpuTemp != "" ){ if ( cpuTemp != "" ){
@ -3434,7 +3450,6 @@ get_sensors_data()
aFanDefault[j] = "" aFanDefault[j] = ""
} }
} }
} }
} }