Fan Control in pfSense?

  • Greetings fellow pfSensers :)

    I am trying to implement pfSense 2.0 RC3 on an older SuperMicro server. Box has 2x1.6 GHz dual core Xeon LV procs with 2 GB of RAM and a 74 GB raptor drive. Yes, I know, overkill. No, I don't have anything better to do with that box :p

    The problem I am facing, well more like the annoyance I am facing, is that when that box is on, it sounds like a million angry bees even when fan control is enabled and fans drop to a lower speed.

    I've scoured the web but can't find anything that would allow me to control the speed of the fans on that box (has two turbine style fans). The board I have is a X6DAL-G; the only thing that I managed to get to somehow report temperatures was mbmon but, alas, fan speed it did not report.

    Anyone has any idea how I can go about getting fan control?


  • only thing what i can figure out is to drop out voltage from fans with some kind of voltagecontroller (resistor or 5-9v regulator) or change fans to quiter ones

  • Any reason for not going for the final release (not that I expect it to solve your fan problem)?

  • I just noticed that the final release is available today; I did the install yesterday so it's not like it is configured to my liking just yet. Slapping the final rev would not be a big deal. Nevertheless… without me getting those fans to shut up, I don't think I'll be able to test it out any time soon.

    Regulating voltage via a resistor is a novel idea however I do want to be able to crank those fans up in the event it's super hot and I am away from home (i.e. work, etc).

  • You could add a SPDT switch to select between 5V and 12V patched from a drive connector.  Although many 12V fans won't start with 5V, they'll run OK once started.  If you need more than 5V, use 12V with a Zener diode across the fan and an appropriate power resistor in series.

  • @mikeg:

    You could add a SPDT switch to select between 5V and 12V patched from a drive connector.  Although many 12V fans won't start with 5V, they'll run OK once started.  If you need more than 5V, use 12V with a Zener diode across the fan and an appropriate power resistor in series.

    That would probably be my last resort assuming I can't find a suitable software solution.

  • Netgate Administrator

    If you have fan speed control in the bios then you have the possibility of a software sollution.
    It is probably controlled by the superIO chip. If you're lucky it might be one with auto control built in. If so you just need to set the right registers to activate it.


  • Rebel Alliance Developer Netgate

    Does your motherboard's ACPI implementation get fully picked up by the OS?

    Check the output of:

    $ sysctl hw.acpi.thermal
    hw.acpi.thermal.min_runtime: 0
    hw.acpi.thermal.polling_rate: 10
    hw.acpi.thermal.user_override: 0
    hw.acpi.thermal.tz0.temperature: 35.5C -1
    hw.acpi.thermal.tz0.passive_cooling: 1
    hw.acpi.thermal.tz0.thermal_flags: 0
    hw.acpi.thermal.tz0._PSV: 70.0C
    hw.acpi.thermal.tz0._HOT: -1
    hw.acpi.thermal.tz0._CRT: 100.0C
    hw.acpi.thermal.tz0._ACx: 70.0C -1 -1 -1 -1 -1 -1 -1 -1 -1
    hw.acpi.thermal.tz0._TC1: 4
    hw.acpi.thermal.tz0._TC2: 3
    hw.acpi.thermal.tz0._TSP: 60

    Check acpi_thermal(4), in particular the active part (if supported by your BIOS).

  • I'll try to pull some data today… thanks gents!

  • Darn - I guess this is not good news  :(

    [2.0-RELEASE][root@pfSense.localdomain]/root(2): sysctl hw.acpi.thermal
    sysctl: unknown oid 'hw.acpi.thermal'
    [2.0-RELEASE][root@pfSense.localdomain]/root(3): sysctl hw.acpi
    hw.acpi.supported_sleep_state: S1 S4 S5
    hw.acpi.power_button_state: S5
    hw.acpi.sleep_button_state: S1
    hw.acpi.lid_switch_state: NONE
    hw.acpi.standby_state: S1
    hw.acpi.suspend_state: NONE
    hw.acpi.sleep_delay: 1
    hw.acpi.s4bios: 1
    hw.acpi.verbose: 0
    hw.acpi.disable_on_reboot: 0
    hw.acpi.handle_reboot: 0
    hw.acpi.reset_video: 0
    hw.acpi.cpu.cx_lowest: C1

  • Rebel Alliance Developer Netgate

    Nope, if that's the case then the fans can't be controlled by the OS.

    There may be some other package/utility out there though.

  • I bet there is but alas, my FreeBSD knowledge is not as good as it is with Linux or Windows :\

  • Netgate Administrator

    Whats the superI/O chip on that board? I bet the fan is controlled by that.


  • The board has a Intel® E7525 chipset; I am no sure if that would help figure out what Super I/O chip it has… any hints on how to check via CLI?

  • Netgate Administrator

    You look for it with SuperIOtool.
    You can pkg_add it:

    pkg_add -r superiotool

    You may have to use the full path since the 8.1 package repo no longer exists.

    Or just look at the board, it's probably Winbond or ITE.


  • Update!

    My local fry's had these awesome rheostat based fan controllers so I bought two and wired them to the outside of the case! Woohoo!

    The bad news are, though, that I did not count the PSU fan - that guy gets loud on his own and is… hummy to say the least. At least now it does not sound like a thousand angry wasps... just 10.

  • You are never going to be able to quiet down a (non-passive) rack server. I went through something similar with a few workstation PCs that I use and found a few things that helped - instead of running 8x 1GB sticks of RAM I realized I can easily get away with 4GB so I installed 1x 4GB sticks of RAM. This generated less heat and also very much slowed down the memory cooling fans (making them quieter).

    I also changed out my CPUs - I went on eBay and found a lot of Xeon x5063 CPUs (vs the x5060's I was running) which draw less power (the x5063 is a low-voltage CPU). I also realized that some of my boxes didn't need to be running two CPUs so I was able to cut down to only single CPU.

    Additionally I turned on PowerD and turned off anything extra not in use (including pulling the video card). This greatly reduced my power consumption, lowered the heat and reduced fan usage. Its still not perfect but this is with a Dell stock BIOS and no other modifications.

    You may want to look at alternative fans that have a different blade pitch - they may require more power to operate but be quieter. You are going to have a tradeoff but should be a simple plug & play swap with the super-O chassis/motherboard combo.

  • Hi,

    Did anyone ever get a resolution for controlling fan speed?


  • Netgate Administrator

    Are you using the same board? Super Micro X6DAL-G.


    Total of six 4-pin fan headers
       6x fans with status monitoring
       Status monitor with firmware/software on/off control
       Low noise fan speed control
       Pulse Width Modulated (PWM) fan connector

    It is definitely possible with this board it just needs some coding to do it.


  • I have the same issue, but with a proliant dl380 running the latest build.

    Is there anyway to install the freebsd proliant tools?  :'(  or can the developers create a package?

    The issue is that when the system board senses a high temp alert, it kicks the fan into high speed and without software it remains in high speed until you reboot the box.

Log in to reply