86 lines
2.1 KiB
Diff
86 lines
2.1 KiB
Diff
|
fancontrol: Deal with moving hwmon attributes
|
||
|
|
||
|
Several kernel drivers have already moved their attributes from the
|
||
|
hardware device to the hwmon class device, and others will follow.
|
||
|
Teach fancontrol about this possibility and let it adjust the attribute
|
||
|
paths transparently.
|
||
|
|
||
|
Patch by Jean Delvare <khali@linux-fr.org>.
|
||
|
See <http://www.lm-sensors.org/changeset/6216>.
|
||
|
|
||
|
--- lm-sensors/prog/pwm/fancontrol (revision 6172)
|
||
|
+++ lm-sensors/prog/pwm/fancontrol (revision 6216)
|
||
|
@@ -207,4 +207,63 @@
|
||
|
}
|
||
|
|
||
|
+function FixupDeviceFiles
|
||
|
+{
|
||
|
+ local DEVICE="$1"
|
||
|
+ local fcvcount pwmo tsen fan
|
||
|
+
|
||
|
+ let fcvcount=0
|
||
|
+ while (( $fcvcount < ${#AFCPWM[@]} )) # go through all pwm outputs
|
||
|
+ do
|
||
|
+ pwmo=${AFCPWM[$fcvcount]}
|
||
|
+ AFCPWM[$fcvcount]=${pwmo//$DEVICE\/device/$DEVICE}
|
||
|
+ if [ "${AFCPWM[$fcvcount]}" != "$pwmo" ]
|
||
|
+ then
|
||
|
+ echo "Adjusing $pwmo -> ${AFCPWM[$fcvcount]}"
|
||
|
+ fi
|
||
|
+ let fcvcount=$fcvcount+1
|
||
|
+ done
|
||
|
+
|
||
|
+ let fcvcount=0
|
||
|
+ while (( $fcvcount < ${#AFCTEMP[@]} )) # go through all temp inputs
|
||
|
+ do
|
||
|
+ tsen=${AFCTEMP[$fcvcount]}
|
||
|
+ AFCTEMP[$fcvcount]=${tsen//$DEVICE\/device/$DEVICE}
|
||
|
+ if [ "${AFCTEMP[$fcvcount]}" != "$tsen" ]
|
||
|
+ then
|
||
|
+ echo "Adjusing $tsen -> ${AFCTEMP[$fcvcount]}"
|
||
|
+ fi
|
||
|
+ let fcvcount=$fcvcount+1
|
||
|
+ done
|
||
|
+
|
||
|
+ let fcvcount=0
|
||
|
+ while (( $fcvcount < ${#AFCFAN[@]} )) # go through all fan inputs
|
||
|
+ do
|
||
|
+ fan=${AFCFAN[$fcvcount]}
|
||
|
+ AFCFAN[$fcvcount]=${fan//$DEVICE\/device/$DEVICE}
|
||
|
+ if [ "${AFCFAN[$fcvcount]}" != "$fan" ]
|
||
|
+ then
|
||
|
+ echo "Adjusing $fan -> ${AFCFAN[$fcvcount]}"
|
||
|
+ fi
|
||
|
+ let fcvcount=$fcvcount+1
|
||
|
+ done
|
||
|
+}
|
||
|
+
|
||
|
+# Some drivers moved their attributes from hard device to class device
|
||
|
+function FixupFiles
|
||
|
+{
|
||
|
+ local DEVPATH="$1"
|
||
|
+ local entry device
|
||
|
+
|
||
|
+ for entry in $DEVPATH
|
||
|
+ do
|
||
|
+ device=`echo "$entry" | sed -e 's/=[^=]*$//'`
|
||
|
+
|
||
|
+ if [ -e "$device/name" ]
|
||
|
+ then
|
||
|
+ FixupDeviceFiles "$device"
|
||
|
+ fi
|
||
|
+ done
|
||
|
+}
|
||
|
+
|
||
|
# Check that all referenced sysfs files exist
|
||
|
function CheckFiles
|
||
|
@@ -306,4 +365,8 @@
|
||
|
echo "Configuration appears to be outdated, please run pwmconfig again" >&2
|
||
|
exit 1
|
||
|
+fi
|
||
|
+if [ "$DIR" = "/sys/class/hwmon" ]
|
||
|
+then
|
||
|
+ FixupFiles "$DEVPATH"
|
||
|
fi
|
||
|
CheckFiles || exit 1
|