On Sat, 28 Jan 2012 13:08:14 +0100, CC wrote: > It's bad to provide a writable attribute and documentation if one > isn't supposed to ever change it... With this reasoning we wouldn't make any attribute writable, as ideally the BIOS would have set up everything properly in the first place. And same would hold for a lot of other sysfs attributes. I agree the limitations of changing the value of the pwm[1-*]_mode attribute could be better documented. > let me rewrite this after a cold > boot, where I didn't change any settings, where I use the exact same > fan, and where I employ pwmcontrol: Using the same fan for 4-pin headers and 3-pin headers makes little sense. If you used a 3-pin fan, it wouldn't be controllable when connected to a 4-pin header. As your results below contradict this, I get that you used a 4-pin fan, which means it was controlled differently between 3-pin headers (control on the +12V pin) and 4-pin headers (control on the tachometer). Beware that some 3-wire fans are happy to be controlled by PWM on +12V, but most 4-wire fans are not, as they are really designed for a separate control signal. > pwm1_mode returns 1. Between "PWM 255" and "PWM 75" the fan speed > correlation is very jagged, very non-linear. > pwm2_mode returns 1. Between "PWM 210" and "PWM 60" the fan speed > correlation is surprisingly close to linear. > pwm3_mode returns 1. Between "PWM 255" and "PWM 75" the fan speed > correlation is very jagged, very non-linear. > > So the behavior is different, although pwm*_mode returns the same > value. Moreover: Different behavior is explained by 4-pin vs. 3-pin headers, see above. > > * Three pin connectors have ground, +12V and a tachometer signal. > * Four pin connectors have ground, +12V, a tachometer signal and a PWM signal. > > Therefore, only unusual systems can control an unsual 3-pin fan by > PWM. This is plain wrong, sorry. A lot of motherboards have been using 3-pin fan headers and offered fan speed control using PWM between, say 2000 and 2008. Most monitoring chips did not even support DC mode before 2007 (with the notable exception of the W83627THF.) There's nothing "unusual" about this. Some 3-wire fans behave better under PWM, while others prefer DC. Unfortunately you usually don't get to chose the method, the motherboard maker decides for you, because the value at the output pin generally needs to be transformed before it goes to the fan. For PWM, the output is a logical 0/1 which is applied to +12V before reaching the fan. For DC the output is an analog voltage but most controllers can't output +12V, they'll output 2.5V max for example, and an external amplifier is needed to actually drive the fan. That's why I said that changing the mode generally doesn't work, unless the BIOS got it wrong in the first place. Feeding an amplifier with a PWM signal won't get you anywhere I'm afraid, just like modulating +12V based on another voltage output may result in bad things. [1] 4-wire headers are a completely different story, as power and control are on different pins and the control is really only a signal. I think 4-pin fans are always controlled by PWM, but if DC is ever possible on such fans, then changing the chip settings would work, because no extra circuitry on the board is needed, I think the output pin of the control chip is routed directly to the fan. > As per the standard, > http://www.formfactors.org/developer/specs/4_Wire_PWM_Spec.pdf, the > correlation between the fan speed and the PWM signal is supposed to be > linear between its min and max. That's my observation as well... for 4-wire fans and assuming proper PWM frequency. For example: http://khali.linux-fr.org/articles/sts100/STS100C_PWM_response__large.png For 3-wire fans this is a completely different story, the response is generally very non-linear at high frequencies, with 75% top duty cycles controlling about nothing and only 20% of the range allowing for control. Lower frequencies give better results but are often unpleasant to the ears. For example: http://khali.linux-fr.org/devel/lm-sensors/pwm_response_curves.png > I conclude that PWM mode is working > correctly for pwm2, As expected, for a 4-pin header with a 4-pin fan. > and DC mode (the name is from the docs -- most > likely it's linear voltage regulation) is working correctly for pwm1 > and pwm3. As far as I know DC stands for "direct current" and indeed means voltage regulation. But I fail to see how you come to this conclusion from the experiment above. Your reports about pwm1 and pwm3 do match what I would expect from PWM sent to a 3-wire fan (or 4-wire fan on a 3-pin header - similar behavior.) > So: I didn't change any settings, but it seems like the meaning of > pwm*_mode does not agree with the documentation. The only way to demonstrate this would be to measure the values at the output pin. At this point I have no reason to believe that the values reported by the w83627ehf driver are incorrect. [1] Disclaimer: I am not an electronics guy, so take what I say with a grain of salt. The electronics schematics I read over the years for various boards and my experience make me believe I'm correct in what I say here, but I could be wrong on specific details. -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors