linux: controlling fanspeed without 3pin fans.

Control: management of fans, temp/rpm monitoring via soft/hardware

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

Post Reply
ljmeijer
Friend of SPCR
Posts: 36
Joined: Wed Nov 12, 2003 4:52 am

linux: controlling fanspeed without 3pin fans.

Post by ljmeijer » Tue Aug 17, 2004 7:31 am

Hey,

I've got a panaflo l1a 80mm, and it doesn't report its rpm back to the mainboard.
I've finally gotten temperaturesensing running on my (2.6.7) linux box.

I want to use fancontrol to control my fans, but the setup program: pwmconfig won't run, because it gets no rpm input from the fan.

Does anybody know what the "suggested" way to control fanspeed is under linux?

Thanks, Lucas

Stupid boy
Posts: 47
Joined: Thu May 06, 2004 4:32 pm
Contact:

Post by Stupid boy » Tue Aug 17, 2004 10:11 am

A bad way to do it: monitor the speed of another fan.

I know you want to monitor the speed under Linux, but I don't see why you can't just get a fan controller to do it. There are some things that will change the fan speed based on temperature.

hvengel
Posts: 205
Joined: Sat Oct 19, 2002 12:06 am
Location: Concord, Ca

Post by hvengel » Tue Aug 17, 2004 12:24 pm

I didn't even know that lm-sensors had the ability to control a pwm. But I checked on my machine and sure enough pwmconfig is in the /usr/sbin directory (lm-sensors 2.8.3). When I ran it on my machine it says I do not have any "pwm sensors". Which is correct. So I guess it's true that you learn something new every day.

It looks to me like this is the correct way to control fans on a linux system but it also looks like it needs rpm info to function correctly. Perhaps a newer or older version of lm-sensors would not have this requirement.

Also this is open source software so, unlike most Windows software, YOU can modify the code to work on your system. It should be possible to look at the code and see just what it does with the rpm data. Perhaps this is used to monitor the fan to make sure it is running or perhaps this is part of the speed control algorithum.

The other thing to keep in mind is that these low noise fans when speed controlled often run slow enough that the speed sensors do not work. I have a Papst 80mm fan in my PSU with an rpm line out to the mother board and most of the time I get no reading. Which means that it is running at less than 650 rpm.

Perhaps the simple thing to do would be to get a low noise fan that has rpm output. Perhaps the 80mm Papst would be a good fan to use. Very low noise and has rpm output but is more costly.

If you have another fan with rpm output, even a noisy on, you can test this to see if you can configure and control you pwms with lm-sensors.

ljmeijer
Friend of SPCR
Posts: 36
Joined: Wed Nov 12, 2003 4:52 am

Post by ljmeijer » Wed Aug 18, 2004 4:46 am

Heya Hal,

Looks like I've got to brush up on my perl skills. I'm still a bit surprised as the fancontrol seems to be based around pwm, while I'm pretty sure controlling my fan under windows using speedfan is just done by lowering the voltage, instead of pwm.

Anyway, I'll take a crack at seeing if I can make this fancontrol script be more gentle to people that have non RPM sensing fans.

Thanks, Lucas

hvengel
Posts: 205
Joined: Sat Oct 19, 2002 12:06 am
Location: Concord, Ca

Post by hvengel » Wed Aug 18, 2004 4:09 pm

I had a quick look at pwmconfig and it is a bash script that is about 616 lines long. It appears that it first checks to see what sensors you have, if these have pwms and if any have rpm readings. If this is OK it then checks to see if those with rpm readings will keep working with the pwm set to it's highest speed (is there an rpm reading with the pwn turned on?). If all of this is OK then it assumes that it is safe to run the fan control software.

It does some other stuff that is dependent on the user (does not use rpm reading from the sensor) to find the minimum start pwm value and the minimum pwm value that the fan will run at after it is started and then goes into the actual configuration.

So it looks like the rpm check is partly a CYA type of thing and to figure out which sensor actualy has a fan attached. In the section where this is checked the script loops through all of the fan sensors and builds a list of those with rpm readings. The list is stored in $GOODFAN. So if you put a fan with an rpm line on the sensor you want to get working and then echo $GOODFAN you will be able to figure out what value to hard code into your script to get it to work for you. You will also have to open the case so that you can watch what the fan is doing while you are running the config script.

You can also configure this by hand. I found this http://fresh.t-systems-sfr.com/cgi-bin/ ... ontrol.txt

Which is a document that says how to configure fancontrol by hand. It is a little bit short of details but should have enough info to get started. Also fancontrol is also a shell script so it should not be hard to figure out what it is doing. I looked at it and it does not appear to be looking at the rpm data.

Speedfan on Windows only works on motherboards that have a pwm. It does not change the voltage of the fan.

Let us know your results.

hvengel
Posts: 205
Joined: Sat Oct 19, 2002 12:06 am
Location: Concord, Ca

Post by hvengel » Thu Aug 26, 2004 1:37 pm

ljmeijer have you tried anything with this yet? Does it work?

Post Reply