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.6k 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.
    • chpalmerC
      chpalmer
      last edited by

      Everything except instructions on how to make the files executable are on this page in case it got confusing…

      It wont hurt to try it again.  Id install the filemanager package and use that to verify files...

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

      https://doc.pfsense.org/index.php/PfSense_on_Watchguard_Firebox#Controlling_hardware_with_WGXepc

      You should barely be able to hear the fans.

      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
      • S
        Steve Evans
        last edited by

        @chpalmer:

        Everything except instructions on how to make the files executable are on this page in case it got confusing…

        It wont hurt to try it again.  Id install the filemanager package and use that to verify files...

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

        https://doc.pfsense.org/index.php/PfSense_on_Watchguard_Firebox#Controlling_hardware_with_WGXepc

        You should barely be able to hear the fans.

        With the temperature at 50 the fans will be reduced to the minimum speed if everything was installed correctly. Did you make the scripts executable?

        Steve

        1 Reply Last reply Reply Quote 0
        • F
          frosty
          last edited by

          @Steve:

          @chpalmer:

          Everything except instructions on how to make the files executable are on this page in case it got confusing…

          It wont hurt to try it again.  Id install the filemanager package and use that to verify files...

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

          https://doc.pfsense.org/index.php/PfSense_on_Watchguard_Firebox#Controlling_hardware_with_WGXepc

          You should barely be able to hear the fans.

          With the temperature at 50 the fans will be reduced to the minimum speed if everything was installed correctly. Did you make the scripts executable?

          Steve

          Chmod +x on both .sh files and WGXepc. I tried chmod 0755 as well.

          I guess I should first start by saying I'm trying this on a Firebox X550e. I assume the hardware is similar enough for this to work. The box has only been up and running for a couple of days now and I had WGXepc working and controlling the fans manually until I saw this thread today and figured I'd try it.

          I installed the files again and this time when I ran /usr/local/etc/rc.d/fanctrl.sh it didnt change the manual fan speed of 55 I had previously set. The first time I tried this the fans shot up to ff and stayed there. They are now running at 55 without any change, at least according to WGXepc -f. I assumed, which might be the problem, that running that command after fanctrl.sh would show you the current fan speed. I have not noticed a drop in fan speed sound since running fanctrl.sh.

          I have not tried a reboot as of yet.

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

            If you pull up the widget does it show the temperature or something else?

            edit=  Ill say that I tried to make it work with the copy of WGXepc that I had which I thought was the same and found it was wrong.

            Use the copy that comes in Steves zip file.

            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
            • F
              frosty
              last edited by

              @chpalmer:

              If you pull up the widget does it show the temperature or something else?

              edit=  Ill say that I tried to make it work with the copy of WGXepc that I had which I thought was the same and found it was wrong.

              Use the copy that comes in Steves zip file.

              It shows the temperature.

              I tried the version I had installed as well and it said that WGXepc could accept multiple values or something along those lines. I figured that might be the problem so I used the one in the zip file before my first post just to make sure.

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

                Are you still using commands in shellcmd or other to set fan speeds manually?

                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
                • F
                  frosty
                  last edited by

                  @chpalmer:

                  Are you still using commands in shellcmd or other to set fan speeds manually?

                  Nothing in shellcmd currently. I set it manually at the command line after first trying the fanctrl.sh command and the fan shot up to ff. But its only been set at the command line.

                  I did try setting it back to ff manually and running fanctrl.sh with no noticeable drop in speed. I didnt look to see if there was a "reset to factory" for the fan speed.

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

                    Try running WGXepc -t to read the temperature.
                    If you look at the thread I linked earlier you'll see that the SuperIO chip (which has the sensor) has a habit of erroneously reporting 125C after some time. If you haven't rebooted that box for while it could just be reporting wrong.

                    Steve

                    1 Reply Last reply Reply Quote 0
                    • F
                      frosty
                      last edited by

                      @stephenw10:

                      Try running WGXepc -t to read the temperature.
                      If you look at the thread I linked earlier you'll see that the SuperIO chip (which has the sensor) has a habit of erroneously reporting 125C after some time. If you haven't rebooted that box for while it could just be reporting wrong.

                      Steve

                      I checked that earlier and it was the same as the gui/widget and mbmon. Firewall has only been up 3 days but I'll give it a reboot and see what happens.

                      1 Reply Last reply Reply Quote 0
                      • F
                        frosty
                        last edited by

                        Reboot did the trick, thanks for the help. Probably should have tried that first.

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

                          Just spotted the error. In my post I had the following instruction to start the fan control:

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

                          This is wrong. It should be:

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

                          You can stop the daemon, and return the fans to full speed with the following:

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

                          Sorry about that.

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • F
                            frosty
                            last edited by

                            I actually tried this

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

                            but didnt notice a change which makes sense because it sets the fans back to full speed where they already where.

                            Thanks for putting this together, I like it better than manually setting the fan speed.

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

                              Any idea what speed the fans average out at when the script is running?
                              I guess it would be very dependent on ambient temperature and cpu load but it would be interesting to hear any anecdotal evidence.

                              Steve

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

                                Mine's sat at the minimum as per the constants at the top of the /usr/local/sbin/fanctrld.sh script

                                target=64
                                min_temp=40
                                gain=5
                                delay=2
                                min_fan=15
                                

                                thus:

                                [2.1-RELEASE][root@pfsense]/root(8): /usr/local/bin/WGXepc -f
                                Found Firebox X-E
                                Fanspeed is f
                                

                                It does rise during activity.

                                I'm nervous about setting min_fan any lower as I don't really want to stop the fans altogether.

                                Steve

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

                                  I should explain that min_fan setting. There are three fans in the box, two of which primarily cool the CPU, but both those and the third fan also exhaust warm air drawing cooler air over all the other components. I therefore thought it best to keep some airflow even when the CPU was below the target temperature on 64 degC. It doesn't take much airflow to provide noticeable cooling.

                                  Steve

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

                                    Ah interesting, F is really quite slow.
                                    Does your script use decimal conversion, F=15?

                                    Steve

                                    1 Reply Last reply Reply Quote 0
                                    • 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
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.