xamindar Posted March 6, 2010 Share Posted March 6, 2010 I'm looking for a way to connect the fan that blows air across the hard drives to a temperature controller that will set the speed of the fan based on the temperature. So for example, if the hard drives hit 35C then spin the fan up to full and then when they drop below 30C to lower the speed down to a level that is inaudible. Is there such a device out there that can do this? Any of you have experience with it? Something that has temperature sensor leads that could be put in the 5 in 3 backplane and then apply those readings to the speed of that fan would be very usefull. Or, as another way of doing this, if possible. Can the fan be plugged into the main board and then speed adjusted based on the hdd SMART temperatures? Thanks for any input. EDIT: Go HERE for my answer to my question. Quote Link to comment
bubbaQ Posted March 6, 2010 Share Posted March 6, 2010 If your mobo supports PWM fan control, you can do it, but you need to write some scripts. Or you can use a Matrix Orbital display module... the MX series displays have 3 speed-controllable fan headers and 4 ports for temperature probes.... but you'll have to write your own software to interface with it. I am working on some unRAID specific software for the Matrix Orbital, but I'm having to do it all in C and my C skills are rusty Quote Link to comment
MartinQ Posted March 7, 2010 Share Posted March 7, 2010 Here are some ideas: Fan Controller Kit (TC647B) http://store.fundamentallogic.com/ecom/index.php?main_page=index&cPath=25 http://spiffie.org/kits/tc642/start.shtml "These are easy to build, use, and understand fan controllers based around Microchip's TC64x series of chips. It's designed to control 12V computer fans based on the temperature, but can be easily adapted for any voltage of fan and a selection of sensors. " ===== I've also been bugging CrystalFontz to make a fully autonomous version of their CFA633. It currently requires serial communication to provide good functionality. http://www.crystalfontz.com/product/CFA633TMCKU - Temperature monitoring: up to 32 channels at up to 0.5 deg C absolute accuracy. - Four fan connectors with RPM monitoring and variable PWM fan power control. - Maximum continuous current draw must be no more than 1.5 A per fan connector, no more than 4 A total. Pulsed current may be up to 5 A per connector, the pulse width must be less than 50 mS. This pulse specification allows for the fan's start-up current spike. http://www.crystalfontz.com/products/633usb/datasheets/169/CFA_633_k1.9b.pdf Quote Link to comment
queeg Posted March 7, 2010 Share Posted March 7, 2010 I'm looking into different ideas for controling fans but until something I really like comes along I'm using this 5 fan temperature controller. I just installed it yesterday and so far it's working. I wanted to be able to set the temp threshhold for each fan but so far I'm not sure how. The manual is printed in 2 pitch font. I had to use a magnifying glass to read it. But the quality of the parts is fine however and I guess that's what counts. Anyway, I have one taped onto my parity drive and the temp readout matches what unRAID says the temp is so it's accurate. It has 5 fan connectors and 5 temp probes. http://www.newegg.com/Product/Product.aspx?Item=N82E16811992005 Quote Link to comment
MartinQ Posted March 7, 2010 Share Posted March 7, 2010 I've looked at many of those cheapie fan controllers. Most do not have temperature control (only speed control) and are also very limited on power output per channel (I'd like to run a higher power fan or blower). The CFA633 can deliver a reasonable amount of power but cannot currently be used as a plug-in appliance (even after programming). The fan controller kit (TC647B) has lots of power control but is very limited at temperature control (analog, one sensor, one output). Quote Link to comment
xamindar Posted March 9, 2010 Author Share Posted March 9, 2010 That TC647B is interesting. How do you program it? Not sure if I have the tools to program it but building it sounds fun. I have found a couple interesting ones: Lian Li TR-5 - Seems to do exactly what I need. But one thing I can't figure out. It has an auto speed setting based on temperature but it doesn't look like you can set it to which temperatures you want the fan speeds to change. That doesn't make sense to me. Anyone have experience with these things? This one is a little on the expensive side as well. http://www.newegg.com/Product/Product.aspx?Item=N82E16811999194 - Looks like similar control as the Lian one but has a bunch of media card slots as well. Would be kinda neat to write some scripts to auto mount any cards plugged into it, copy the data on the cards to unraid, then unmount them. Would make a quick backup sollution for memory cards. Regarding temperature control, how do you set which temperatures to speed up the fans at? These things seem to have no information on that. I saw some others around when I was searching last week but can't seem to find them, oh well. Also, I'll have to check my motherboard and see if Linux will detect fan speed and such with it. I know the bios does for all three fan connectors, now to check on linux. If this works then I wouldn't even need one of these panels and can just have unraid take care of it for me as bubbaQ suggested. My main reason for all this is because my unraid sits right next to the TV and I want it as quiet as possible but also need it to kick into high gear if the HDD temps get too high. Quote Link to comment
MartinQ Posted March 10, 2010 Share Posted March 10, 2010 That TC647B is interesting. How do you program it? Not sure if I have the tools to program it but building it sounds fun. The TC647B is non-progammable. I believe you set the temperature point with a resistor value. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010733 Quote Link to comment
xamindar Posted March 12, 2010 Author Share Posted March 12, 2010 Well, I figured out that my little mini itx board that unraid is using has pwm fan speed control on all three fan ports so I can just use that. I spent some time and wrote a very simple script to check the temperatures of the drives, pick the highest one, then set the speed of the fan accordingly between three speed settings. I am still waiting for a fan to come in the mail that I will use with the 5 in 3 backplane (norco ss-500) but I have tested this script on the cpu fan and it works great. I am definitely open to criticism as this is only the second bash script I have ever written. It's not very smart so you have to edit it and be sure to set all the user variables correctly. Then just add a cron entry to run this script every 5 minutes or so and it should work. Also one more thing. I don't know if smartctl will reset the spindown timer so it may cause the drives to never spin down. Anyone know if this is the case? I do know that running the smartctl on a drive in standby does NOT cause it to spin up so this is probably not an issue. #!/bin/bash # unraid_array_fan.sh v0.4 # v0.1 First try at it. # v0.2: Made a small change so the fan speed on low doesn't fluctuate every time the script is run. # v0.3: It will now enable fan speed change before trying to change it. I missed # it at first because pwmconfig was doing it for me while I was testing the fan. # v0.4: Corrected temp reading to "Temperature_Celsius" as my new Seagate drive # was returning two numbers with just "Temperature". # A simple script to check for the highest hard disk temperatures in an array # or backplane and then set the fan to an apropriate speed. Fan needs to be connected # to motherboard with pwm support, not array. # DEPENDS ON:grep,awk,smartctl,hdparm ### VARIABLES FOR USER TO SET ### # Amount of drives in the array. Make sure it matches the amount you filled out below. NUM_OF_DRIVES=3 # unRAID drives that are in the array/backplane of the fan we need to control HD[1]=/dev/sdb HD[2]=/dev/sdc HD[3]=/dev/sde HD[4]=/dev/ HD[5]=/dev/ # Temperatures to change fan speed at # Any temp between OFF and HIGH will cause fan to run on low speed setting FAN_OFF_TEMP=30 # Anything this number and below - fan is off FAN_HIGH_TEMP=36 # Anything this number or above - fan is high speed # Fan speed settings. Run pwmconfig (part of the lm_sensors package) to determine # what numbers you want to use for your fan pwm settings. Should not need to # change the OFF variable, only the LOW and maybe also HIGH to what you desire. # Any real number between 0 and 255. FAN_OFF_PWM=100 FAN_LOW_PWM=120 FAN_HIGH_PWM=255 # Fan device. Depends on your system. pwmconfig can help with finding this out. # pwm1 is usually the cpu fan. You can "cat /sys/class/hwmon/hwmon0/device/fan1_input" # or fan2_input and so on to see the current rpm of the fan. If 0 then fan is off or # there is no fan connected or motherboard can't read rpm of fan. ARRAY_FAN=/sys/class/hwmon/hwmon1/device/pwm2 ### END USER SET VARIABLES ### # Program variables - do not modify HIGHEST_TEMP=0 CURRENT_DRIVE=1 CURRENT_TEMP=0 # while loop to get the highest temperature of active drives. # If all are spun down then high temp will be set to 0. while [ "$CURRENT_DRIVE" -le "$NUM_OF_DRIVES" ] do SLEEPING=`hdparm -C ${HD[$CURRENT_DRIVE]} | grep -c standby` if [ "$SLEEPING" == "0" ]; then CURRENT_TEMP=`smartctl -d ata -A ${HD[$CURRENT_DRIVE]} | grep -m 1 -i Temperature_Celsius | awk '{print $10}'` if [ "$HIGHEST_TEMP" -le "$CURRENT_TEMP" ]; then HIGHEST_TEMP=$CURRENT_TEMP fi fi #echo $CURRENT_TEMP let "CURRENT_DRIVE+=1" done echo "Highest temp is: "$HIGHEST_TEMP # Enable speed change on this fan if not already if [ "$ARRAY_FAN" != "1" ]; then echo 1 > "${ARRAY_FAN}_enable" fi # Set the fan speed based on highest temperature if [ "$HIGHEST_TEMP" -le "$FAN_OFF_TEMP" ]; then # set fan to off echo $FAN_OFF_PWM > $ARRAY_FAN echo "Setting pwm to: "$FAN_OFF_PWM elif [ "$HIGHEST_TEMP" -ge "$FAN_HIGH_TEMP" ]; then # set fan to full speed echo $FAN_HIGH_PWM > $ARRAY_FAN echo "Setting pwm to: "$FAN_HIGH_PWM else CURRENT_SPEED=`cat $ARRAY_FAN` # set fan to full speed first to make sure it spins up then change it to low setting. if [ "$CURRENT_SPEED" -lt "$FAN_LOW_PWM" ]; then echo $FAN_HIGH_PWM > $ARRAY_FAN sleep 2 fi echo $FAN_LOW_PWM > $ARRAY_FAN echo "Setting pwm to: "$FAN_LOW_PWM fi EDIT: v0.2: Made a small change so the fan speed on low doesn't fluctuate every time the script is run. EDIT: v0.3: It will now enable fan speed change before trying to change it. I missed it at first because pwmconfig was doing it for me while I was testing the fan. EDIT: v0.4: Corrected temp reading to "Temperature_Celsius" as my new Seagate drive was returning two numbers with just "Temperature". unraid-fan-speed.sh.zip Quote Link to comment
MartinQ Posted March 12, 2010 Share Posted March 12, 2010 Very interested to hear your progress and results with this! My only criticism is that I don't think life-support functions (power, cooling) should rely on an OS to function. Quote Link to comment
bubbaQ Posted March 13, 2010 Share Posted March 13, 2010 I don't think life-support functions (power, cooling) should rely on an OS to function. That's why you don't try to control CPU or PSU fans... they have their own self-contained control mechanisms. Quote Link to comment
xamindar Posted March 13, 2010 Author Share Posted March 13, 2010 I don't think life-support functions (power, cooling) should rely on an OS to function. That's why you don't try to control CPU or PSU fans... they have their own self-contained control mechanisms. Exactly. There is no bios control for hdd temperature so we have to write our own. I was just using the cpu fan as a test as it is currently the only controllable fan I have on the system. If I don't modify it but just "cat /sys/class/hwmon/hwmon1/device/pwm1" I can see how the number is automatically changed by the bios as the cpu temp rises or lowers, kinda neat. But I have noticed once I manually change it the bios releases control of it and it will stay where I set it until I reboot. There might be another way without rebooting but I haven't bothered to look as this is only testing anyway. The wonders of linux, you can do pretty much anything you can dream up with linux. Also, I don't see controlling the hdd fans with the os as a problem as they are defaulted to full speed without the script and if the temperature rises too high there is an over temp buzzer on the array that will go off. Quote Link to comment
xamindar Posted March 16, 2010 Author Share Posted March 16, 2010 Woohoo! Got the new fan today and installed it into my unraid. This script works perfect! I had an issue with crontab at first but I must have had a typo in the crontab. Did a couple reboots and everything is working. The script runs every three minutes from cron and changes fan speed when heeded. No need for any special front panel display. Quote Link to comment
xamindar Posted March 28, 2010 Author Share Posted March 28, 2010 Can anyone out there tell me if some manufacturers name the temperature field differently than "Temperature_Celsius"? I installed a new seagate drive and it was returning two temperature fields when I was just searching for "Temperature" by its self so I had to modify my script to look for the whole "Temperature_Celsius". If anyone has other manufacturers like samsung or hitachi (anything other than WD or seagate) it would be a great help if you could run the following command against those drives and verify if the temperature field is labeled as "Temperature_Celsius" or not. "smartctl -d ata -A /dev/sdX" (without quotes and where X is the drive leter, ie a, b, c and so on) You can find out which drive it is from the devices tab of the unraid web interface. You will see something like (sdb) right before the drive serial number. This command is not dangerous at all, just returns smart fields and may spin up some drives to get it, that's it. The temperature field is usually number 194 but not always. Thanks for any help. It will help to make this script work for any drive. Quote Link to comment
starcat Posted March 31, 2010 Share Posted March 31, 2010 Xamindar, thanks for the script! I am running the Supermicro X7SBE mainboard and albeit I see the fans and their speed through the IPMI card from the BIOS, pwmconfig doesn't show them as controllable. Any hints as to what I might check? The fans are set in the BIOS to "3-pin optimized for server" and there is clearly speed control applied to them (there is another setting "full on 12V" which I have deselected). I have 5 fans in total each connected to each own header (2 for the case on the back and 3 on the mid fanboard) in addition to the 6th fan for the CPU. They are grouped in 3 groups (case, disk fans on mid fanboard and cpu) and all are 3-wire connected to the mainboard. Tried to set the BIOS to "3-pin optimized for workstations" but only the average RPM slowed down from 800/1500/1000 to 700/1400/900. I found this http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/fan-divisors and played with the fan divisors, set them from 1...64 in /etc/sensors3.conf, rerun sensors -s, then pwmconfig again without any change. Here the chip, a Windbond W83627HF than is used http://www.mjmwired.net/kernel/Documentation/hwmon/w83627hf Output of pwmconfig: # pwmconfig revision 5345 (2008-09-28) This program will search your sensors for pulse width modulation (pwm) controls, and test each one to see if it controls a fan on your motherboard. Note that many motherboards do not have pwm circuitry installed, even if your sensor chip supports pwm. We will attempt to briefly stop each fan using the pwm controls. The program will attempt to restore each fan to full speed after testing. However, it is ** very important ** that you physically verify that the fans have been to full speed after the program has completed. Found the following devices: hwmon0/device is w83627hf hwmon1/device is coretemp hwmon2/device is coretemp Found the following PWM controls: hwmon0/device/pwm1 hwmon0/device/pwm2 Giving the fans some time to reach full speed... Found the following fan sensors: hwmon0/device/fan1_input current speed: 0 ... skipping! hwmon0/device/fan2_input current speed: 0 ... skipping! hwmon0/device/fan3_input current speed: 0 ... skipping! There are no working fan sensors, all readings are 0. Make sure you have a 3-wire fan connected. You may also need to increase the fan divisors. See doc/fan-divisors for more information. This is what the IPMI card is showing me from the monitoring sensors: Sensor Type Sensor Name Sensor Status Sensor Reading OEM reserved #c0 CPU Temp Low Temperature Sys Temp OK 39 degrees C Voltage CPU Vcore OK 1.280 (+/- 0.004) Volts Voltage DIMM Volt OK 1.824 Volts Voltage 3.3V OK 3.248 Volts Voltage 5V OK 4.920 (+/- 0.012) Volts Voltage 12V OK 12.096 (+/- 0.048) Volts Voltage -12V OK -12.300 (+/- -0.050) Volts Voltage 5VSB OK 4.944 (+/- 0.012) Volts Voltage VBAT OK 3.184 (+/- 0.008) Volts Fan Fan1 OK 800 RPM Fan Fan2 OK 800 RPM Fan Fan3 OK 800 RPM Fan Fan4 OK 1500 RPM Fan Fan5 OK 1500 RPM Fan Fan6/CPU OK 1000 RPM Power Supply Power Supply OK Module / Board Thermal Trip OK System Firmware Progress BIOS OK When I run the script, it reports: root@tank:~# /boot/scripts/unraid-fan-speed.sh Highest temp is: 44 /boot/scripts/unraid-fan-speed.sh: line 78: /sys/class/hwmon/hwmon0/device/pwm2_enable: No such file or directory Setting pwm to: 255 Quote Link to comment
xamindar Posted April 1, 2010 Author Share Posted April 1, 2010 Dang, I had a whole long reply typed out then my computer froze (laptop doesn't like to compile programs for a long time, the ram overheats). What do you see under /sys/class/hwmon/hwmon0/device ?? "ls /sys/class/hwmon/hwmon0/device" Are you running on a full slackware setup? Looks like you are if you are using lm-sensors. Looks like you either don't have 3-wire fans connected or your sensors do not have the correct circuitry connected on the mainboard to control them. Try the following while physically watching the fan: "echo 0 > /sys/class/hwmon/hwmon0/device/pwm2" - that is a zero. It should completely stop that fan. If it does stop spinning then you will be able to control them. "echo 255 > /sys/class/hwmon/hwmon0/device/pwm2" - will bring it back to full speed. If that does nothing at all then either linux is not allowed to change the speed or the board doesn't support it. The error the script gave means it was unable to set the file that tells whether linux controls the fan or the bios controls the fan. I haven't done much testing with different sensor drivers so don't know if there is a different spot for that in your case. Post a directory listing of /sys/class/hwmon/hwmon0/device so we can see if there is anything else that might help. Also "cat /sys/class/hwmon/hwmon0/device/fan2_input" should give you the rpm of the fan on pwm2. Quote Link to comment
monza Posted April 1, 2010 Share Posted April 1, 2010 Hi there, reading this post with great interest due to my slightly different predicament - my drives running too cold! http://lime-technology.com/forum/index.php?topic=5198.msg55428#msg55428 What i was wondering is if it is possible to modify the script so that it can send an (optional) email alert out when high or low variables for temp are sensed? thanks for the script - looking forward toi trying it out Quote Link to comment
starcat Posted April 1, 2010 Share Posted April 1, 2010 What i was wondering is if it is possible to modify the script so that it can send an (optional) email alert out when high or low variables for temp are sensed? You just need to configure mail on unRAID and call it from the script. There are different mail systems available for unraid but in general emailing works perfect from unRAID. You may want to search the forum for "unraid_notify-2.53-noarch-unRAID.tgz" and install it, or just look here: http://lime-technology.com/forum/index.php?topic=2470.0 Quote Link to comment
starcat Posted April 1, 2010 Share Posted April 1, 2010 What do you see under /sys/class/hwmon/hwmon0/device ?? "ls /sys/class/hwmon/hwmon0/device" I am attaching a ls -l output of "/sys/class/hwmon/hwmon0/device". Are you running on a full slackware setup? Looks like you are if you are using lm-sensors. Looks like you either don't have 3-wire fans connected or your sensors do not have the correct circuitry connected on the mainboard to control them. Running stock unRAID 4.5.3 with a couple of installed packages, however nothing related to lm-sensors, at least not that I know of. ll the fans are attached using 3-wire cables and they are all different speeds as shown by the BIOS and IPMI card. pwmconfig itself reports the interface control chip: hwmon0/device is w83627hf Attaching the full output of pwmconfig below. This is my mainboard: http://www.supermicro.com/products/motherboard/Xeon3000/3210/X7SBE.cfm Please take a look at the "Management" and "PC Health Monitoring" section. It mentions "status monitor with firmware / software speed control" for the FANs. Try the following while physically watching the fan: "echo 0 > /sys/class/hwmon/hwmon0/device/pwm2" - that is a zero. It should completely stop that fan. If it does stop spinning then you will be able to control them. "echo 255 > /sys/class/hwmon/hwmon0/device/pwm2" - will bring it back to full speed. If that does nothing at all then either linux is not allowed to change the speed or the board doesn't support it. The error the script gave means it was unable to set the file that tells whether linux controls the fan or the bios controls the fan. I haven't done much testing with different sensor drivers so don't know if there is a different spot for that in your case. Post a directory listing of /sys/class/hwmon/hwmon0/device so we can see if there is anything else that might help. I can write to pwm2 and change the value from 0...255, however the fan speed doesn't change. I can not open up the servers case right now, I am watching that the fan speed do no change on the IPMI card display for "Monitoring Sensors". I quite frankly think that Linux is not allowed to change the fan speed. Also "cat /sys/class/hwmon/hwmon0/device/fan2_input" should give you the rpm of the fan on pwm2. This one is 0. Thanks much for all your efforts and help, highly appreciated! sys-class-hwmon-hwmon0-device.txt pwmconfig-output.txt Quote Link to comment
bubbaQ Posted April 2, 2010 Share Posted April 2, 2010 Did you enable PWM control with pwm_enable??? Quote Link to comment
xamindar Posted April 2, 2010 Author Share Posted April 2, 2010 Did you enable PWM control with pwm_enable??? Thats one of the problems. He doesn't have pwm_enable. The script wasn't able to change it and the directory listing he posted doesn't include it. His fans are spinning but fan2_input is not showing any rpm values. I don't really have much experience with this to know what the problem is. Looks like your board deffinately supports fan speeds. starcat, do the IPMI fan speeds ever change? They should constantly fluctuate a little as the fans don't go the exact same speed at all times. From one of your earlier posts they were all even numbers (800, 1500...). That doesn't make sense to me unless your monitors are rounding them to the closest 100 or something. In any case, sorry, I'm out of ideas. Sense you have the fan divisors (I don't on mine for some reason) you can read up on it here: http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/fan-divisors Quote Link to comment
bubbaQ Posted April 2, 2010 Share Posted April 2, 2010 If the BIOS or some other setting is blocking PWM control, that may prevent pwm_enable from being available. And on some mobos, it just won't work, due to lack of support circuits on the mobo. Cheap bastards! Quote Link to comment
starcat Posted April 2, 2010 Share Posted April 2, 2010 I don't have pwm_control, command not found. Are there any Slackware packages that I need to install? Mobo used is the Supermicro X7SBE: http://www.supermicro.com/products/motherboard/Xeon3000/3210/X7SBE.cfm it is not cheap with $240 and the specs page show all this should be possible. It also has two Winbond chips on it. The IPMI fan speeds don't show fluctuation, they are rounded and reflect only massive change in speed. The BIOS however shows them constantly fluctuating. I read up the lm-sensors URL and tried the divisors, also different sensors3.conf files, no change. Perhaps I need to install lm-sensors packages from Slackware distro as I don't have pwm_control at all? This would be interesting to others too, as a lot of the members here are using the X7SBE mainboard. Thank you much guys! Edit: Page 4-20 of the X7SBE Manual found at http://www.supermicro.com/manuals/motherboard/3210/MNL-0970.pdf says the following about Fan Speed Control Modes: This feature allows you to decide how the system controls the speeds of the onboard fans. If the option is set to “4-pin”, the fan speed will be controlled by Pulse Width Modulation (PWM). Select “Workstation” or "Server" if your system is used as a Workstation or Server respectively. Select “Disable” to disable the fan speed control function to allow the onboard fans to constantly run at full speed (12V). The Options are: 1. Disable and 2. 3-pin (server) 3-pin (workstation), 4-pin (server) and 4-pin (workstation). Do not select 4-pin settings if you have a mix of 3-pin and 4-pin fans. Looks like I have to enable 4-pin fans even if I am using 3-wire if I want to get PWM support!? Edit2: Changed BIOS to 4-wire fans. Running unraid-fan-speed.sh shows again: Highest temp is: 34 ./unraid-fan-speed.sh: line 78: /sys/class/hwmon/hwmon0/device/pwm2_enable: No such file or directory Setting pwm to: 120 and pwmcofnig: # pwmconfig revision 5345 (2008-09-28) This program will search your sensors for pulse width modulation (pwm) controls, and test each one to see if it controls a fan on your motherboard. Note that many motherboards do not have pwm circuitry installed, even if your sensor chip supports pwm. We will attempt to briefly stop each fan using the pwm controls. The program will attempt to restore each fan to full speed after testing. However, it is ** very important ** that you physically verify that the fans have been to full speed after the program has completed. Found the following devices: hwmon0/device is w83627hf hwmon1/device is coretemp hwmon2/device is coretemp Found the following PWM controls: hwmon0/device/pwm1 hwmon0/device/pwm2 Giving the fans some time to reach full speed... Found the following fan sensors: hwmon0/device/fan1_input current speed: 0 ... skipping! hwmon0/device/fan2_input current speed: 0 ... skipping! hwmon0/device/fan3_input current speed: 0 ... skipping! There are no working fan sensors, all readings are 0. Make sure you have a 3-wire fan connected. You may also need to increase the fan divisors. See doc/fan-divisors for more information. Quote Link to comment
mifronte Posted April 2, 2010 Share Posted April 2, 2010 Starcat, I am rooting for you to get this figured out and working so that I can enable this feature too. Just curious, wouldn't you need a 4-pin fan to enable the 4-pin settings? I hope the new Norco 120mm fans come with a 4-pin connector. Quote Link to comment
starcat Posted April 2, 2010 Share Posted April 2, 2010 Hmm, not really sure how to interpret this. I don't really believe it needs 4-wire fans in order to get PWM as already the 3-wire fans are being able to get speed control and report frequency. I believe that this is just a setting telling the BIOS either to get control (3-pin) or to allow PWM (4-pin setting). Both can be used with 3- and 4-wire fans. When mixing fans, then only 3-pin setting is possible. At least this is how I am interpreting this, correct me if I am wrong and if I need to get 4-wire fans for PWM, if that's the case I surely will. Quote Link to comment
xamindar Posted April 2, 2010 Author Share Posted April 2, 2010 Don't confuse PWM in lm-sensors with PWM in the bios. I was reading about the 4-pin and 3-pin stuff when I was writing my script and don't know why lm-sensors calls everything pwm. The way I understand it real pwm (4 pin fans) are controlled by pulsing the power at different intervals while always staying at 12 volts. Apparently they are less likely to stall at lower rpms that way. But then there are 3 pin (non pwm) fans. The speed of them is changed by lowering the voltage. This way of changing speed does stall the fan at low rpms and depending on the fan depends on when it stalls. Also, you have to raise the power pretty high to get the fan to start again. Obviously 4 pin is better but 3 pin works just fine in most cases. I am pretty sure if you are using only 3 pin fans you need to select 3 pin in the bios. Don't worry about it not calling it pwm. Lm-sensors should still be able to control them. I have no idea why there is a server and a workstation setting though. If I were you I would try the three settings of disabled, 3 pin server, and 3 pin workstation and see if any of those change what you see under your hwmon0/devices area. Specifically look for pwm2_enable or see if fan2_input is reporting rpms. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.