* gnu/packages/patches/lm-sensors-hwmon-attrs.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/linux.scm (lm-sensors): New variable.
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			85 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
 |