v1211 fan control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sergio,


On Mon, Jun 2, 2008 at 10:31 PM, Sergio Bruder <sergio at bruder.com.br> wrote:
>>
>>> What is the temperature that are controlling the fan auto control?
>>>
>>
>> Have you read Documentation/hwmon/vt1211 in the kernel source tree? Can
>> you send the output of 'sensors' and 'grep "" /sys/class/hwmon*/device/*''?
>>
>> grep ""/sys/class/hwmon/hwmon*/device/*.
>>
>>
>>
>> ...juerg
>>
>>
>> root at nimbus:/etc# sensors
>> vt1211-isa-6000
>> Adapter: ISA adapter
>> VCore:       +0.98 V  (min =  +0.00 V, max =  +2.63 V)
>> +5V:         +4.63 V  (min =  +0.00 V, max =  +6.31 V)
>> +12V:       +11.72 V  (min =  +0.00 V, max = +14.99 V)
>> +3.3V:       +3.23 V  (min =  +3.13 V, max =  +3.46 V)
>> CPU Fan:       0 RPM  (min =    0 RPM, div = 2)
>> CPU Temp:    -35.5?C  (high = +190.1?C, hyst = -77.5?C)
>> Int Temp:    +51.0?C  (high = +204.0?C, hyst =  +0.0?C)
>> temp3:       -21.8?C  (high = +64.8?C, hyst = +60.2?C)
>> temp4:       -25.8?C  (high = +44.7?C, hyst = +39.8?C)
>> cpu0_vid:   +1.212 V
>>
>>
>> root at nimbus:/sys/class/hwmon/hwmon0/device# grep ""
>> /sys/class/hwmon/hwmon*/device/*
>> /sys/class/hwmon/hwmon0/device/alarms:4608
>> /sys/class/hwmon/hwmon0/device/cpu0_vid:1212
>> /sys/class/hwmon/hwmon0/device/fan1_alarm:0
>> /sys/class/hwmon/hwmon0/device/fan1_div:2
>> /sys/class/hwmon/hwmon0/device/fan1_input:0
>> /sys/class/hwmon/hwmon0/device/fan1_min:0
>> /sys/class/hwmon/hwmon0/device/fan2_alarm:0
>> /sys/class/hwmon/hwmon0/device/fan2_div:2
>> /sys/class/hwmon/hwmon0/device/fan2_input:0
>> /sys/class/hwmon/hwmon0/device/fan2_min:0
>> /sys/class/hwmon/hwmon0/device/in2_alarm:0
>> /sys/class/hwmon/hwmon0/device/in2_input:981
>> /sys/class/hwmon/hwmon0/device/in2_max:2630
>> /sys/class/hwmon/hwmon0/device/in2_min:0
>> /sys/class/hwmon/hwmon0/device/in3_alarm:0
>> /sys/class/hwmon/hwmon0/device/in3_input:1931
>> /sys/class/hwmon/hwmon0/device/in3_max:2630
>> /sys/class/hwmon/hwmon0/device/in3_min:0
>> /sys/class/hwmon/hwmon0/device/in4_alarm:0
>> /sys/class/hwmon/hwmon0/device/in4_input:2056
>> /sys/class/hwmon/hwmon0/device/in4_max:2630
>> /sys/class/hwmon/hwmon0/device/in4_min:0
>> /sys/class/hwmon/hwmon0/device/in5_alarm:0
>> /sys/class/hwmon/hwmon0/device/in5_input:3233
>> /sys/class/hwmon/hwmon0/device/in5_max:3465
>> /sys/class/hwmon/hwmon0/device/in5_min:3133
>> /sys/class/hwmon/hwmon0/device/modalias:platform:vt1211
>> /sys/class/hwmon/hwmon0/device/name:vt1211
>> /sys/class/hwmon/hwmon0/device/pwm1:255
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_channels_temp:1
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point1_pwm:0
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point1_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point2_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point2_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point3_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point3_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point4_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm1_auto_point4_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm1_enable:2
>> /sys/class/hwmon/hwmon0/device/pwm1_freq:45000
>> /sys/class/hwmon/hwmon0/device/pwm2:255
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_channels_temp:1
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point1_pwm:0
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point1_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point2_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point2_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point3_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point3_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point4_pwm:255
>> /sys/class/hwmon/hwmon0/device/pwm2_auto_point4_temp:0
>> /sys/class/hwmon/hwmon0/device/pwm2_enable:0
>> /sys/class/hwmon/hwmon0/device/pwm2_freq:45000
>> /sys/class/hwmon/hwmon0/device/temp1_alarm:0
>> /sys/class/hwmon/hwmon0/device/temp1_input:40000
>> /sys/class/hwmon/hwmon0/device/temp1_max:255000
>> /sys/class/hwmon/hwmon0/device/temp1_max_hyst:0
>> /sys/class/hwmon/hwmon0/device/temp2_alarm:0
>> /sys/class/hwmon/hwmon0/device/temp2_input:51000
>> /sys/class/hwmon/hwmon0/device/temp2_max:204000
>> /sys/class/hwmon/hwmon0/device/temp2_max_hyst:0
>> /sys/class/hwmon/hwmon0/device/temp3_alarm:0
>> /sys/class/hwmon/hwmon0/device/temp3_input:1970
>> /sys/class/hwmon/hwmon0/device/temp3_max:450
>> /sys/class/hwmon/hwmon0/device/temp3_max_hyst:503
>> /sys/class/hwmon/hwmon0/device/temp4_alarm:0
>> /sys/class/hwmon/hwmon0/device/temp4_input:2011
>> /sys/class/hwmon/hwmon0/device/temp4_max:723
>> /sys/class/hwmon/hwmon0/device/temp4_max_hyst:807
>> /sys/class/hwmon/hwmon0/device/uevent:DRIVER=vt1211
>> /sys/class/hwmon/hwmon0/device/uevent:MODALIAS=platform:vt1211
>> /sys/class/hwmon/hwmon0/device/vrm:13
>>
>
>
> Thanks but you haven't answered my first question. Did you read the
> documentation?
>
>
> yes, but I dont understand which temperature governs the autocontrol.
>

pwmX controls fanX. pwmX_auto_channels_temp is used to map a temp input to a
pwm output for the auto controller. It's a bit map i.e.:
pwmX_auto_channels_temp == 1 -> temp1 controls pwmX
pwmX_auto_channels_temp == 2 -> temp2 controls pwmX
pwmX_auto_channels_temp == 4 -> temp3 controls pwmX
pwmX_auto_channels_temp == 8 -> temp4 controls pwmX
aso


"Be aware that automatic mode hasn't been
> tested very well (due to the fact that my EPIA M10000 doesn't have the fans
> connected to the PWM outputs of the VT1211 :-()."
>
> You mean, hardware wise you cant control it? But in my case, that doing a
> echo 2 > pwm1_enable just stops the fan?
>

Yes HW wise. The PWM outputs on the M10000 are not connected and the fans
are always blasting away at full speed. I hacked the board up so that the
case fan is now controlled by the vt1211 so I can do some limited testing.
Fan inputs however are connected so I can read RPMs.




> vt1211 here can read fan's RPM:
>
> root at nimbus:~# sensors | grep Fan
> CPU Fan:    3244 RPM  (min =    0 RPM, div = 2)
>
> "There is only a single controller that controls both PWM outputs but each
> PWM output can be individually enabled and disabled."
>
> So, which temperature governs the fan speed control? Its just not clear.
>

Now a couple of things:
1) The temp conversion for the C7 is currently not correct as you might have
guessed from the -35C output :-) The only valid temp is temp2 (vt1211
internal) as the conversion is always the same and done by the driver
itself. The C7 is supposed to have another internal temp diode that can be
read via SW which I'm hopping we can use to determine the somewhat correct
formula for the vt1211 CPU temp reading. Can you run the attached cpuid
program and send me the output?
2) Can you turn the fan on and send another output of 'grep ""
/sys/class/hwmon/hwmon*/device/*' so that I can see where the Fan is
connected to?
3) What is the rev of your vt1211? It's printed in the kernel log during
module load. Your board is the first that I see that actually has the vt1211
controlling the Fans. Interesting.
4) Can you try to manually control the fans? Write 1 to pwmX_enable (where X
is the number of the pwm controller that controls the CPU fan). And then try
writing different values in the range 0-255 to pwmX. The fan RPMs hopefully
change accordingly.

Let's try to get the temp readings somewhat correct before we dive into PWM
auto control.

Thanks
...juerg



>
> ...juerg
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20080604/4abacfc7/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cpuid
Type: application/octet-stream
Size: 21595 bytes
Desc: not available
Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20080604/4abacfc7/attachment.obj 


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux