Jump to content
xamindar

Temperature based fan speed control?

116 posts in this topic Last Reply

Recommended Posts

No, I just have stock unRAID, no other sensors related stuff has been done. What is the order for configuring and which commands should I run?

 

Here is the output of sensors-detect

 

root@tower:~# sensors-detect

# sensors-detect revision 5337 (2008-09-19 17:05:28 +0200)

 

This program will help you determine which kernel modules you need

to load to use lm_sensors most effectively. It is generally safe

and recommended to accept the default answers to all questions,

unless you know what you're doing.

 

We can start with probing for (PCI) I2C or SMBus adapters.

Do you want to probe now? (YES/no): YES

Probing for PCI bus adapters...

Use driver `i2c-i801' for device 0000:00:1f.3: Intel ICH9

 

We will now try to load each adapter module in turn.

Load `i2c-i801' (say NO if built into your kernel)? (YES/no): YES

FATAL: Module i2c_i801 not found.

Loading failed... skipping.

If you have undetectable or unsupported I2C/SMBus adapters, you can have

them scanned by manually loading the modules before running this script.

 

To continue, we need module `i2c-dev' to be loaded.

Do you want to load `i2c-dev' now? (YES/no):

FATAL: Module i2c_dev not found.

Loading failed, expect problems later on.

 

We are now going to do the I2C/SMBus adapter probings. Some chips may

be double detected; we choose the one with the highest confidence

value in that case.

If you found that the adapter hung after probing a certain address,

you can specify that address to remain unprobed.

 

Some chips are also accessible through the ISA I/O ports. We have to

write to arbitrary I/O ports to probe them. This is usually safe though.

Yes, you do have ISA I/O ports even if you do not have any ISA slots!

Do you want to scan the ISA I/O ports? (YES/no):

Probing for `National Semiconductor LM78' at 0x290...      No

Probing for `National Semiconductor LM78-J' at 0x290...    No

Probing for `National Semiconductor LM79' at 0x290...      No

Probing for `Winbond W83781D' at 0x290...                  No

Probing for `Winbond W83782D' at 0x290...                  No

Probing for `IPMI BMC KCS' at 0xca0...                      Success!

    (confidence 4, driver `ipmisensors')

Probing for `IPMI BMC SMIC' at 0xca8...                    No

 

Some Super I/O chips may also contain sensors. We have to write to

standard I/O ports to probe them. This is usually safe.

Do you want to scan for Super I/O sensors? (YES/no):

Probing for Super-I/O at 0x2e/0x2f

Trying family `National Semiconductor'...                  No

Trying family `SMSC'...                                    No

Trying family `VIA/Winbond/Fintek'...                      Yes

Found `Winbond W83627HF/F/HG/G Super IO Sensors'            Success!

    (address 0x295, driver `w83627hf')

Probing for Super-I/O at 0x4e/0x4f

Trying family `National Semiconductor'...                  No

Trying family `SMSC'...                                    No

Trying family `VIA/Winbond/Fintek'...                      No

Trying family `ITE'...                                      No

 

Some south bridges, CPUs or memory controllers may also contain

embedded sensors. Do you want to scan for them? (YES/no):

Silicon Integrated Systems SIS5595...                      No

VIA VT82C686 Integrated Sensors...                          No

VIA VT8231 Integrated Sensors...                            No

AMD K8 thermal sensors...                                  No

AMD K10 thermal sensors...                                  No

Intel Core family thermal sensor...                        Success!

    (driver `coretemp')

Intel AMB FB-DIMM thermal sensor...                        No

VIA C7 thermal and voltage sensors...                      No

 

Now follows a summary of the probes I have just done.

Just press ENTER to continue:

 

Driver `ipmisensors' (should be inserted):

  Detects correctly:

  * ISA bus, address 0xca0

    Chip `IPMI BMC KCS' (confidence: 4)

 

Driver `w83627hf' (should be inserted):

  Detects correctly:

  * ISA bus, address 0x295

    Chip `Winbond W83627HF/F/HG/G Super IO Sensors' (confidence: 9)

 

Driver `coretemp' (should be inserted):

  Detects correctly:

  * Chip `Intel Core family thermal sensor' (confidence: 9)

 

Do you want to generate /etc/sysconfig/lm_sensors? (yes/NO): YES

Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors

for initialization at boot time.

You should now start the lm_sensors service to load the required

kernel modules.

 

Share this post


Link to post

The generated /etc/init.d/lm_sensors file looks like this.

 

MODULE_0=ipmi-si

MODULE_1=ipmisensors

MODULE_2=w83627hf

MODULE_3=coretemp

 

However, those modules can't be find and loaded. Should I get them from a Slackware distro and simply insmod them in that order?

 

root@tower:~# lsmod

Module                  Size  Used by

md_mod                 37868  14

xor                    12825  1 md_mod

ata_piix               17076  4

e1000e                 96516  0

sata_mv                19903  11

Share this post


Link to post

No, install a full Slackware dev system on that box, build the drivers needed, and TEST whether you will have pwm fan control.  No need to go on a scavenger hunt if what you are looking for won't work when you find it.

Share this post


Link to post

Yeah, install a full slackware as a test then run the same sensors-detect and make sure those sensors are loaded. Then test if you can control the fans. If that all works then you just need to compile a new kernel for unraid with the sensor modules for your hardware. You can follow the unraid wiki for the full slackware install to compile the kernel. Just make sure you go to the hardware sensors section in "make menuconfig" and enable those same sensor modules so they will be built (you can compile them into the kernel as an alternative but then sensors-detect will complain that they can't be found. But it should still work).

Share this post


Link to post

Installed full Slackware 13.0. Ran sensors-detect, it outputs in /etc/sysconfig/lm_sensors that I need following modules in that order:

 

ipmi-si

coretemp

w83627hf

w83793

 

Loaded each of them manually by calling modprobe. Ran sensors again and voila, all fans are now shown (see below for output). So it looks like this monitoring hardware is definitely supported but unRAID is looking for fans1..3 on the w83627hf-isa-0290, Adapter: ISA adapter instead on w83793-i2c-0-2f, Adapter: SMBus I801 adapter at 1100.

 

However, I did a find in /sys and couldn't locate any pwm?_enable files and this looks strange to me. Do I have to create them manually somehow?

 

fan1..3 are the three fans located on the mid fanboard of a Norco 4220 case

fan4..5 are the case fans located on the back of a Norco 4220 case

fan7 is the CPU fan

all are 4-pin PWM enabled fans

 

# sensors

coretemp-isa-0000

Adapter: ISA adapter

Core 0:      +46.0°C  (high = +78.0°C, crit = +100.0°C)  

 

coretemp-isa-0001

Adapter: ISA adapter

Core 1:      +46.0°C  (high = +78.0°C, crit = +100.0°C)  

 

w83627hf-isa-0290

Adapter: ISA adapter

in0:         +0.00 V  (min =  +1.09 V, max =  +1.50 V)   ALARM

in1:         +0.00 V  (min =  +1.09 V, max =  +1.50 V)   ALARM

in2:         +0.00 V  (min =  +2.82 V, max =  +3.79 V)   ALARM

in3:         +3.06 V  (min =  +3.82 V, max =  +4.06 V)   ALARM

in4:         +0.00 V  (min =  +3.57 V, max =  +4.02 V)   ALARM

in5:         +0.00 V  (min =  +2.54 V, max =  +1.89 V)   ALARM

in6:         +0.00 V  (min =  +3.95 V, max =  +2.03 V)   ALARM

in7:         +3.38 V  (min =  +4.00 V, max =  +4.08 V)   ALARM

in8:         +3.26 V  (min =  +4.08 V, max =  +3.82 V)   ALARM

fan1:          0 RPM  (min =    0 RPM, div = 2)

fan2:          0 RPM  (min =    0 RPM, div = 2)

fan3:          0 RPM  (min = 25000 RPM, div = 2)  ALARM

temp1:      +127.0°C  (high = +45.0°C, hyst = -69.0°C)  ALARM  sensor = thermistor

temp2:      +127.0°C  (high = +80.0°C, hyst = +75.0°C)  ALARM  sensor = thermistor

temp3:      +127.0°C  (high = +80.0°C, hyst = +75.0°C)  ALARM  sensor = thermistor

cpu0_vid:   +1.519 V

beep_enable:enabled

 

w83793-i2c-0-2f

Adapter: SMBus I801 adapter at 1100

VcoreA:      +1.28 V  (min =  +0.92 V, max =  +1.38 V)  

VcoreB:      +1.26 V  (min =  +0.00 V, max =  +2.05 V)  

in2:         +1.18 V  (min =  +0.99 V, max =  +1.33 V)  

in3:         +0.50 V  (min =  +0.40 V, max =  +0.67 V)  

in4:         +1.82 V  (min =  +1.62 V, max =  +1.98 V)  

in5:         +3.26 V  (min =  +2.96 V, max =  +3.63 V)  

in6:         +1.00 V  (min =  +0.90 V, max =  +1.10 V)  

+5V:         +5.09 V  (min =  +4.64 V, max =  +5.65 V)  

5VSB:        +5.09 V  (min =  +4.64 V, max =  +5.65 V)  

Vbat:        +3.20 V  (min =  +2.96 V, max =  +3.63 V)  

fan1:       2591 RPM  (min =  712 RPM)

fan2:       2523 RPM  (min =  712 RPM)

fan3:       2528 RPM  (min =  712 RPM)

fan4:       1802 RPM  (min =  712 RPM)

fan5:       1819 RPM  (min =  712 RPM)

fan6:          0 RPM  (min =  712 RPM)  ALARM

fan7:       1142 RPM  (min =  712 RPM)

fan8:          0 RPM  (min =  712 RPM)  ALARM

fan9:          0 RPM  (min =  712 RPM)  ALARM

fan10:         0 RPM  (min =  712 RPM)  ALARM

temp1:       +51.0°C  (high = +83.0°C, hyst = +78.0°C)  sensor = Intel PECI

temp2:      -103.0°C  (high = +83.0°C, hyst = +78.0°C)  sensor = Intel PECI

temp3:      -128.0°C  (high = +83.0°C, hyst = +78.0°C)  sensor = Intel PECI

temp4:      -128.0°C  (high = +83.0°C, hyst = +78.0°C)  sensor = Intel PECI

temp5:       +50.0°C  (high = +50.0°C, hyst = +45.0°C)  ALARM  sensor = thermistor

temp6:       +46.0°C  (high = +50.0°C, hyst = +45.0°C)  sensor = thermistor

beep_enable:disabled

 

# lsmod

Module                  Size  Used by

w83793                 27256  0

w83627hf               23148  0

hwmon_vid               2684  2 w83793,w83627hf

coretemp                5660  0

ipmi_si                38060  0

ipmi_msghandler        31276  1 ipmi_si

appletalk              29452  20

ipv6                  243508  12

pcmcia                 33772  0

pcmcia_core            32016  1 pcmcia

agpgart                29256  0

lp                      9316  0

ppdev                   7200  0

parport_pc             24036  0

parport                30700  3 lp,ppdev,parport_pc

fuse                   54008  1

joydev                  9504  0

evdev                   9152  3

thermal                15096  0

psmouse                41676  0

serio_raw               5024  0

i2c_i801                8784  0

sg                     24912  0

e1000e                113100  0

rtc_cmos               10124  0

rtc_core               15992  1 rtc_cmos

container               3132  0

rtc_lib                 2332  1 rtc_core

button                  5708  0

processor              38600  1 thermal

shpchp                 31888  0

thermal_sys            10756  2 thermal,processor

hwmon                   2104  4 w83793,w83627hf,coretemp,thermal_sys

 

 

Share this post


Link to post

I found this file for the X7SBU (mine is X7SBE) and used it instead of /etc/sensors3.conf:

http://www.lm-sensors.org/wiki/Configurations/SuperMicro/X7SBU

 

Here the sensors output now:

 

# sensors

coretemp-isa-0000

Adapter: ISA adapter

Core 0:      +47.0°C  (high = +78.0°C, crit = +100.0°C) 

 

coretemp-isa-0001

Adapter: ISA adapter

Core 1:      +44.0°C  (high = +78.0°C, crit = +100.0°C) 

 

w83627hf-isa-0290

Adapter: ISA adapter

+5.0V:      +5.13 V  (min =  +6.42 V, max =  +6.83 V)  ALARM

cpu0_vid:  +1.519 V

beep_enable:enabled

 

w83793-i2c-0-2f

Adapter: SMBus I801 adapter at 1100

CPU Core:    +1.28 V  (min =  +0.92 V, max =  +1.38 V) 

+1.25V:      +1.26 V  (min =  +0.00 V, max =  +2.05 V) 

VTT:        +1.18 V  (min =  +0.99 V, max =  +1.33 V) 

-12V:      -12.36 V  (min = -12.85 V, max = -11.46 V) 

DIMM:        +1.82 V  (min =  +1.62 V, max =  +1.98 V) 

+3.3V:      +3.26 V  (min =  +2.96 V, max =  +3.63 V) 

+12V:      +12.00 V  (min = +10.75 V, max = +13.25 V) 

+5V:        +4.94 V  (min =  +4.49 V, max =  +5.50 V) 

5VSB:        +4.97 V  (min =  +4.49 V, max =  +5.50 V) 

VBAT:        +3.20 V  (min =  +2.96 V, max =  +3.63 V) 

disk fan1:  2591 RPM  (min =  712 RPM)

disk fan2:  2532 RPM  (min =  712 RPM)

disk fan3:  2551 RPM  (min =  712 RPM)

case fan1:  1809 RPM  (min =  712 RPM)

case fan2:  1819 RPM  (min =  712 RPM)

cpu fan:    1140 RPM  (min =  712 RPM)

CPU Temp:    +52.0°C  (high = +83.0°C, hyst = +78.0°C)  sensor = Intel PECI

Sys Temp:    +50.0°C  (high = +50.0°C, hyst = +45.0°C)  sensor = thermistor

beep_enable:disabled

Share this post


Link to post

My guess is that the mobo manufacturer either has not exposed the control interface on the chip to be software controlled, or there is something in the BIOS you need to change to enable it.

 

I'd e-mail tech support.

Share this post


Link to post

Which boards are you guys using that allow software fan speed control?

 

I would need 2 PCI-X slots preferable on two busses (but may theoretically change controllers to PCIe), IPMI, Intel GigE NIC, C2D 775 slot and preferably DDR2 800 ECC Memory as this is what I already have. 4 SATA ports are ok, 6 or 8 would be nice.

 

Share this post


Link to post

I have found PWM fan control that I could manipulate with software on every mobo I've tried, on at least one fan port.

 

You can also check the speedfan website, and review sites like SPCR, which will often report where fan speed control was possible. 

 

Unfortunately, your requirement of  PCI-X slots, ECC memory, and IPMI greatly limits your choices.  Why do you have such odd hardware demands?

Share this post


Link to post

Unfortunately, your requirement of  PCI-X slots, ECC memory, and IPMI greatly limits your choices.  Why do you have such odd hardware demands?

 

Well, I have two AOC-SAT2-MV8 PCI-X controllers but may change them against the PCI-E versions as they are also supported in unRAID and running well. May change the memory also depending on the mainboard. It's only that I already have those, but nothing stops me actually from swapping (except from loosing money).

 

IPMI however is almost a must as I don't want to deal with monitor and keyboard at any time. I would need at least two PCI-E slots, best would be to have three 8x PCI-E.

 

Intel NICs are also a must, because of performance and wake-up, etc.

 

 

Share this post


Link to post

Intel NICs are cheap and plentiful.  Intel NICs built into mobos are not as common.

 

IPMI is not very common.  Inexpensive KVM over IP boxes are easy to find.

 

The AOC-SAT2-MV8 works in a PCI slot, and does not have to have PCI-X.

 

OTOH. you can buy a 3rd party fan controller board with PWM control, and roll your own software to control it.

 

 

If you want a specialized feature, particular multiple ones, you are really limiting yourself by demanding it all come in one unified package.  Pick one (IPMI, Intel Nic, PCI-X, Fan control) that you want integrated in the mobo, then use alternatives for the other ones.

Share this post


Link to post

bubbaQ, thanks for your hints. Can you recommend some PWM 4-pin fan board control that is software controllable from Linux? Must be good, cost doesn't matter.

 

Other option would be to get a hardware fan control, one channel with control for my three fans, off in addition to three other speeds with selectable temperature should be fine. I may position the flat temp sensors between the disks in the Norco 4220 case. Would not be that precise like a software based option though.

 

I still haven't got a reply from Supermicro regarding how I may vary fan speed on the X7SBE.

 

Thanks again!

Share this post


Link to post

I can confirm that the fan speed control script is working with the Supermicro X7SPA-HF-O Mini ITX mainboard!

The fan device is /sys/class/hwmon/hwmon4/device/pwm4

 

The modified script is attached. And don't forget to use a 4-pin PWM fan with this script.

unraid-fan-speed.sh.zip

Share this post


Link to post

I can confirm that the fan speed control script is working with the Supermicro X7SPA-HF-O Mini ITX mainboard!

The fan device is /sys/class/hwmon/hwmon4/device/pwm4

 

The modified script is attached. And don't forget to use a 4-pin PWM fan with this script.

 

Will this work for the SuperMicro X7SBE?

Share this post


Link to post

Not yet. I am at the moment giving up on this. Tested from full Linux install, even Supermicro confirmed that this won't work with the X7SBE, fans are controlled only from the BIOS.

 

I may connect the fans to an AMX cardframe with 3x VAIG cards (analog voltage out set to 0..12V) and make it login to unRAID and based on smart data and HDD temp, control the voltage on the fans directly. Sounds complicated but this is the best I have come up with. All other fan control solutions I have seen so far can't be controlled from scripts but are autonomous based on some temperature sensors.

Share this post


Link to post

I have been playing around with this script a little bit on a Supermicro X8SIL-F-O.  The fan speeds can be set through pwm2, but it would seem that the implementation has a fail safe built in.  If I try to drop the fan speed too low (100 is fine, but 50 or 0 are not), pwm2_enable goes from 1 to 4 (which is apparently automatic) and the fan speed kicks back up.  I don't think this will be too big of a deal, but was curious whether I am missing something and there is a way around this.

 

Edit:  It seems this is only a problem if there is a fan plugged into the first fan header.  The other 4 don't exhibit this behavior.  So likely a built in fail safe for the CPU fan.

Share this post


Link to post

Not yet. I am at the moment giving up on this. Tested from full Linux install, even Supermicro confirmed that this won't work with the X7SBE, fans are controlled only from the BIOS.

 

I may connect the fans to an AMX cardframe with 3x VAIG cards (analog voltage out set to 0..12V) and make it login to unRAID and based on smart data and HDD temp, control the voltage on the fans directly. Sounds complicated but this is the best I have come up with. All other fan control solutions I have seen so far can't be controlled from scripts but are autonomous based on some temperature sensors.

 

There are many hardware solutions out there that allow fan speed control via scripts... check out:

 

http://www.sidewindercomputers.com/fancontrollers.html

 

I use the Matrix Orbital, but the T-balancer is a good choice too.

Share this post


Link to post

Been using this script for 5 days now with good results.  Definitely a good option for anybody using an X8SIL-F with PWM fans.  The 3 120mm deltas I replaced the 4 stock 80mm fans that came with the Norco 4220 run quieter then the other equipment in the room 80% of the time.  The other 20% has been running at the medium speed which isn't at all bad either.  It has not yet needed to kick the fans up to full.

Share this post


Link to post

There are many hardware solutions out there that allow fan speed control via scripts... check out:

http://www.sidewindercomputers.com/fancontrollers.html

 

I use the Matrix Orbital, but the T-balancer is a good choice too.

 

bubbaQ, thank you very much!

 

I am just looking at the mCubed T-Balancer bigNG at http://www.sidewindercomputers.com/tbalancerbigng.html and I think it should do the job. Do you know if the Linux software (http://sourceforge.net/projects/xban/forums/forum/462785/topic/1271826) may be executed straight from unRaid (booted from USB, without full Slack install)? I think I am going to order it straight away...

 

This should be a section in the FAQ! Great find!

 

Share this post


Link to post

Been using this script for 5 days now with good results.  Definitely a good option for anybody using an X8SIL-F with PWM fans.  The 3 120mm deltas I replaced the 4 stock 80mm fans that came with the Norco 4220 run quieter then the other equipment in the room 80% of the time.  The other 20% has been running at the medium speed which isn't at all bad either.  It has not yet needed to kick the fans up to full.

 

Matt, great info, thanks! Could you also post the device path for the fans for this board or better your updated version of the script?

Share this post


Link to post

The script as I have been using it is attached.  One note, it seems the X8SIL-F has a built in fail safe as mentioned in one of my previous posts.  I initially thought it was just on fan port 1, but it is in fact on all the fan ports.  If you set the fans too low, the motherboard will kick PWM back to automatic and the fans will go to full speed.  This happens pretty quickly, so it is easy to test and find out where the limit is.

unraid-fan-speed.sh.zip

Share this post


Link to post

You will have to excuse me as Linux is not my first language!

 

So, basically, I purchased a SuperMicro SC933T-R760B and a SuperMicro C2SEE-O for a new unRAID build.  The fans in in this case scream (at almost 5000rpm) all of the time.  I have tried hooking them up to the motherboard and the backplane.  All of the fans in the case are 3-wire fans.  In BIOS, there are three options: Default, 4-wire Super Quiet and 4-wire Workstation.  I have tried al three settings.  My guess is it doesn't matter since none of the fans have 4 wires.

 

So, my question is, where do I go from here?  Will any of the scripts on these pages slow my fans down to a more livable speed?  I suppose I could get a fan controller, but I would really prefer not to mess up this beautiful case.

 

Yes, I know I purchased a "server" class chassis, but this is ridiculous.  All of my HP Proliant DL-series servers (running Windows) slow the fans down after a few seconds of booting.

 

Thanks!

Share this post


Link to post

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.