Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Simple fan speed control for the Firebox X750e

    Scheduled Pinned Locked Moved Hardware
    87 Posts 12 Posters 34.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Steve Evans
      last edited by

      The lines that write the value do the conversion thus:

      # Adjust the fan speed
      /usr/local/bin/WGXepc -f `printf "%x\n" $fan` > /dev/null
      

      The machine isn't under much load most of the time, but even when doing big downloads it still runs quite cool. Accessing the web interface, most notably the RRD Graphs causes a speed up of the fans.

      Steve

      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        Ah. I managed to mangle my hex and decimal values a few times when writing the WGXepc program (I'm no programmer!) with 'interesting' results.  ::)

        I was also concerned about cooling the rest of the box, the PSU seemed to run particularly hot. I measured it using a pyrometer since I'm pretty sure parts of it could kill you. The cooling provisions on the box in general don't seem that great especially if it's in a rack, I'd like to see some vents in the front panel to allow cool air in. I have my boxes set to fan speed 32, none have stopped working yet. It really is a shame they didn't spend the extra pennies required to put in a SuperIO chip that had auto fan control.

        Steve

        1 Reply Last reply Reply Quote 0
        • P
          power_matz
          last edited by

          Hi Steve,

          I installed your scripts and the modified toll from Steve with the temperatue option.
          After reboot I noticed that the fans slow down but after some time the temperature reads 35 C and the fans are up at speed FF.

          The fans are always running at this speed. I noticed no change here. What is wrong? I also tried the corrected call with the start option

          Matthias

          1 Reply Last reply Reply Quote 0
          • P
            power_matz
            last edited by

            OK, found the error by myself. The min temperature is set to 40. Mine its 35. So the if-statement is not correct. I set the min temp to 30, now it is running!

            Maybe it is a good idea to refactor the if statement…

            Matthias

            1 Reply Last reply Reply Quote 0
            • S
              Steve Evans
              last edited by

              Hi Matthias,

              I saw your first post emailed to my phone and thought that looked like the script had taken the safety bailout. This is there to protect from erroneous temperature readings I'd been warned of, and too high a fan speed in the safe response to that.

              Interesting that your box is running so cool. I've never seen mine below 50 degC. By the time its booted to the point the script starts the CPU is normally up to that kind of temperature.

              Steve

              1 Reply Last reply Reply Quote 0
              • P
                power_matz
                last edited by

                Hi Steve,

                my box is in a network cabinet. There is not much space at the back for the air to come out (approx. 5 cm to the rear of the cabinet.
                I am wondering myself why it is so cool! Now with your script it runs with speed f at temp 40 C.
                It is ok, I think.

                Bye
                Matthias

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  What CPUs are you running? Is the cpu sensor touching the bottom 9f the CPU? I can't actually remember if it has a spring loaded sensor or not.  :-\

                  Steve

                  1 Reply Last reply Reply Quote 0
                  • S
                    Steve Evans
                    last edited by

                    Intel(R) Pentium(R) M processor 2.13GHz

                    I don't have PowerD enabled though. That could well explain it. I should probably enable that as I'm sure the CPU will "wake up" to a higher power state quite quickly on demand.

                    The temperature diode is part of the CPU die, not an external sensor.

                    Steve

                    1 Reply Last reply Reply Quote 0
                    • stephenw10S
                      stephenw10 Netgate Administrator
                      last edited by

                      Ah, in which case the diode values can vary between CPU models so the real temperature may be different.
                      I seem to remember reading that they are actually an offset from the CPU maximum temperature so you have allow for that. No idea if mbmon is doing that. I don't think it is because I just read out the register in WGXepc. If you read the docs for the superio chip there is quite a bit about configuring it for the correct sensor type.

                      Steve

                      1 Reply Last reply Reply Quote 0
                      • P
                        power_matz
                        last edited by

                        Hi,

                        I am using an Intel(R) Pentium(R) M processor 1.70GHz with PowerD enabled.

                        Matthias

                        1 Reply Last reply Reply Quote 0
                        • S
                          Steve Evans
                          last edited by

                          That explains it then. I'm being power mad again! :D

                          An interesting comparison for anybody trying to build a lower power router then. I went for the more powerful option as I wanted to be future proofed should my broadband speed increase again, and also as I didn't know if I'd want to be using squid etc when I started.

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • B
                            bmatic586
                            last edited by

                            @Steve:

                            This has been working reliably for some time, so having just updated to 2.1 and re-applied this fix I though I might as well post a complete set of files.

                            Rename the attachment to lose the .png suffix and decompress. You'll find the following files. Copy them to the directory shown. Ensure that the sh files and WGXepc are executable.

                            | Filename | Target Directory |
                            | fanctrl.sh | /usr/local/etc/rc.d |
                            | fanctrld.sh | /usr/local/sbin |
                            | functions.inc.php | /usr/local/www/includes |
                            | system_information.widget.php | /usr/local/www/widgets/widgets |
                            | WGXepc | /usr/local/bin |

                            Start the fan control thus, or simply reboot:

                            # /usr/local/etc/rc.d/fanctrl.sh
                            

                            You should hear the fans slow considerably. The daemon will try to maintain the set temperature of 64 degC. After some experimentation I found this to work well.

                            Credit is due here to stephenw10 for the WGXepc utility. Note that he's produced a couple of versions, and you need this one as it reports temperature.

                            The php scripts will read the CPU temperature and display it on the dashboard as the attached image.

                            Steve

                            For us n00bs… :) can you tell us how to copy these files to the pfSense file system? how do you change the permissions?

                            I guess I'm kind of looking for a step by step on how to do this. I just recently got a 1250e and it works great, but I'd like to quiet it down a bit and change the red LED.

                            Thanks.

                            1 Reply Last reply Reply Quote 0
                            • stephenw10S
                              stephenw10 Netgate Administrator
                              last edited by

                              One way of doing it is explained here:
                              https://doc.pfsense.org/index.php/PfSense_on_Watchguard_Firebox#Controlling_hardware_with_WGXepc
                              I've just noticed though that my Google site still has version 0.8 which doesn't read the temperature. I'll get that updated. (Edit: done)

                              You can also use SCP to move files onto the pfSense box. I use WinSCP for that.

                              Steve

                              1 Reply Last reply Reply Quote 0
                              • B
                                bmatic586
                                last edited by

                                @stephenw10:

                                One way of doing it is explained here:
                                https://doc.pfsense.org/index.php/PfSense_on_Watchguard_Firebox#Controlling_hardware_with_WGXepc
                                I've just noticed though that my Google site still has version 0.8 which doesn't read the temperature. I'll get that updated. (Edit: done)

                                You can also use SCP to move files onto the pfSense box. I use WinSCP for that.

                                Steve

                                Got it. I think it's working…  I can see the temperature now being displayed in the status screen.

                                When I run WGXepc -f it shows me a value of bb... is that the lowest it'll go?
                                Thanks again for your help.

                                My temperature shows 45 deg. C.

                                1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  BB is the lowest speed you can run the fans where the speed sensors work. The fans can run much slower though.  The value is a two digit hexidecimal number so anything between 00 and FF. I wouldn't go below, say, 16 though.
                                  If you're using the script it should be going lower than bb anyway.

                                  Steve

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    bmatic586
                                    last edited by

                                    @stephenw10:

                                    BB is the lowest speed you can run the fans where the speed sensors work. The fans can run much slower though.  The value is a two digit hexidecimal number so anything between 00 and FF. I wouldn't go below, say, 16 though.
                                    If you're using the script it should be going lower than bb anyway.

                                    Steve

                                    when I ran

                                    /usr/local/etc/rc.d/fanctrl.sh
                                    

                                    it didn't really slow down, and when I checked the fan speed by running WGXepc -f, it just said bb, so I manually set it to 20. Temp is not going above 50 C, but it would be nice to have it automatically control the fan instead of me manually configuring it.

                                    Any other thoughts as to why it's not working?

                                    Thanks again for your help.

                                    1 Reply Last reply Reply Quote 0
                                    • chpalmerC
                                      chpalmer
                                      last edited by

                                      Where did you get your files?

                                      https://forum.pfsense.org/index.php/topic,66129.msg366219.html#msg366219

                                      Triggering snowflakes one by one..
                                      Intel(R) Core(TM) i5-4590T CPU @ 2.00GHz on an M400 WG box.

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bmatic586
                                        last edited by

                                        @chpalmer:

                                        Where did you get your files?

                                        https://forum.pfsense.org/index.php/topic,66129.msg366219.html#msg366219

                                        yes… that's where I downloaded them from and put them in the directories as outlined below.

                                        Filename                                         Target Directory
                                        fanctrl.sh                                         /usr/local/etc/rc.d
                                        fanctrld.sh                                   /usr/local/sbin
                                        functions.inc.php                         /usr/local/www/includes
                                        system_information.widget.php   /usr/local/www/widgets/widgets
                                        WGXepc                                         /usr/local/bin

                                        I also did a chmod 0755 on fanctrl.sh, fanctrld.sh and WGXepc and then executed```
                                        /usr/local/etc/rc.d/fanctrl.sh

                                        
                                        Also, when I executed the above code, the LED that normally red, didn't turn green like it was supposed to as described in this thread.
                                        
                                        Thanks guys.
                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bmatic586
                                          last edited by

                                          @bmatic586:

                                          @chpalmer:

                                          Where did you get your files?

                                          https://forum.pfsense.org/index.php/topic,66129.msg366219.html#msg366219

                                          yes… that's where I downloaded them from and put them in the directories as outlined below.

                                          Filename                                         Target Directory
                                          fanctrl.sh                                         /usr/local/etc/rc.d
                                          fanctrld.sh                                   /usr/local/sbin
                                          functions.inc.php                         /usr/local/www/includes
                                          system_information.widget.php   /usr/local/www/widgets/widgets
                                          WGXepc                                         /usr/local/bin

                                          I also did a chmod 0755 on fanctrl.sh, fanctrld.sh and WGXepc and then executed```
                                          /usr/local/etc/rc.d/fanctrl.sh

                                          
                                          Also, when I executed the above code, the LED that normally red, didn't turn green like it was supposed to as described in this thread.
                                          
                                          Thanks guys.
                                          

                                          Just an update… I rebooted the FW today and it's working the way it should now.

                                          Thanks for all the help.

                                          1 Reply Last reply Reply Quote 0
                                          • chpalmerC
                                            chpalmer
                                            last edited by

                                            @bmatic586:

                                            Just an update… I rebooted the FW today and it's working the way it should now.

                                            Thanks for all the help.

                                            I was coming here to mention that I had to reboot when I installed, according to my notes.  Glad you got it working!  :)

                                            Triggering snowflakes one by one..
                                            Intel(R) Core(TM) i5-4590T CPU @ 2.00GHz on an M400 WG box.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.