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 36.4k 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.
    • P
      power_matz
      last edited by

      Hi,

      after changing the other jumpers accordingly everything runs like expected.  ;D

      Damn, I've done this to my X750e some time ago. I couldn't remember….  :-[

      Thanks a lot!

      Matthias

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

        @bmatic586:

        @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.

        The fanctrl.sh script should be passed an argument of either start or stop. Unfortunately I omitted the start in my original instructions. I can no longer edit that post. To save further confusion could a moderator please amend my post, reply #34, to state:

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

        Thanks,

        Steve

        1 Reply Last reply Reply Quote 0
        • D
          dwfa
          last edited by

          Hi,

          I liked the idea of the script file to monitor the temps.  I think using cron to kick of a script to check the temps and react accordingly is also a good idea.  This will ensure the temps are always checked; default 1 min if you use default cron entries.  If the daemon script fails it may not restart; just my $0.02.  I added this to crontab

          
          #crontab for root
          # Format is
          # min hour dayOfMonth month dayOfWeek command2Execute
          
          # backup home every 3 days starting from the 1st @ 2:05 am
          # the first of every 3rd month purge
          # min hour dom month dow
          # --- ---- --- ----- ---
             *   *    *    *    *  /usr/local/bin/adjustFanSpeed.sh
          
          

          use this command to edit the cron entries

          crontab -e 
          

          The script I wrote looks like this

          
          #! /bin/tcsh
          
          set currentTemp = `/usr/local/bin/cpuTemp -t | sed '1,2d'`
          
          if ( $currentTemp > 70 ) then
            /usr/local/bin/fanspeed -f ff > /dev/null
            /usr/local/bin/setLED -l red_flash > /dev/null
            foreach indx (1 1 1 1 1)
              /usr/local/bin/beep -p 500 50
            end
          else if ( $currentTemp > 65 ) then
            /usr/local/bin/fanspeed -f ee > /dev/null
            /usr/local/bin/setLED -l red_flash > /dev/null
            foreach indx (1 1 1 1)
              /usr/local/bin/beep -p 500 50
            end
          else if ( $currentTemp > 60 ) then
            /usr/local/bin/fanspeed -f dd > /dev/null
            /usr/local/bin/setLED -l red_flash > /dev/null
            foreach indx (1 1 1)
              /usr/local/bin/beep -p 500 50
            end
          else if ( $currentTemp > 55 ) then
            /usr/local/bin/fanspeed -f bb > /dev/null
          else if ( $currentTemp > 50 ) then
            /usr/local/bin/fanspeed -f aa > /dev/null
          else if ( $currentTemp > 45 ) then
            /usr/local/bin/fanspeed -f 90 > /dev/null
          else if ( $currentTemp > 40 ) then
            /usr/local/bin/fanspeed -f 80 > /dev/null
          else
            /usr/local/bin/fanspeed -f 50 > /dev/null
            /usr/local/bin/setLED -l off  > /dev/null
          endif
          
          

          fanspeed and cpuTemp are just links to WGXepc (thanks Stephen).

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

            My script hasn't failed yet and it provides proportional response. From a control theory perspective, much better. :)

            Steve

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

              Hi,

              after some time the display of the temperate in the dashboard gets corrupted. Please see screen shot.
              The fans are running at low speed. But the green LED is blinking. Any idea?

              Matthias

              ![Bildschirmfoto 2014-04-28 um 16.57.35.jpg_thumb](/public/imported_attachments/1/Bildschirmfoto 2014-04-28 um 16.57.35.jpg_thumb)
              ![Bildschirmfoto 2014-04-28 um 16.57.35.jpg](/public/imported_attachments/1/Bildschirmfoto 2014-04-28 um 16.57.35.jpg)

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

                It's corrupted because the temperature is being read as 255 degC and the bar is only meant to be in the range 0 to 100. This, and the fact that the fan speed is not rising suggests a problem with WGXepc.

                Steve

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

                  Indeed this was a problem with mbmon too. Interesting that it has taken this long for the error to occur. Any idea how long the script had been running before it defaulted to 255C? It may be possible to reset the SuperIO chip using some set of registers.

                  An alternative is the new BIOS from the SSL box has correct DSDT tables that pass the CPU temp via ACPI. If you're running B8.X then the temperature is reported by:

                  sysctl dev.cpu.0.temperature
                  

                  I think. Something close to that anyway.  ;) Of course that is also just reading the superio chip so I don't know if that might be any better.

                  Steve

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

                    Before the recent 2.1.1/2.1.2 upgrades my box had been up for 82 days and the fan control was still working OK.

                    Steve

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

                      @stephenw10:

                      An alternative is the new BIOS from the SSL box has correct DSDT tables that pass the CPU temp via ACPI. If you're running B8.X then the temperature is reported by:

                      sysctl dev.cpu.0.temperature
                      

                      This sysctl is not listed on my system…

                      I am running the B8 version. My uptime is at this moment only 6 days.

                      Matthias

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

                        Hmm. Perhaps ACPI is not enabled in the BIOS by default or the setting carried over from a previous bios version. Check your bios setting.
                        I'll have to check the default values but that's become a lot more difficult now that I no longer have a Win XP box to run modbin6 on.  ::)

                        Steve

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

                          Virtual machine!

                          Steve

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

                            I flashed Version 8.1 of the XEOS BIOS.
                            Still no entry in sysctl for this.

                            While booting pressing the TAB key doesn't bring me in the BIOS setup anymore.

                            Should I reset BIOS setting (jumper)?

                            Matthias

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

                              If you flashed it using flashrom from within pfSense then the CMOS will not have cleared which could be causing an issue.
                              I'm going to have review the changes I made. Fortunately it occurred to me the modbin6 is actually a DOS program so I should be able to fire up FreeDOS and run it.  ::)

                              Steve

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

                                Hi,

                                after flashing BIOS 8.1 XEOS and restting the CMOS I could go into the appropriate section to enable ACPI.
                                Now the system is running fine. No issue with the temperature display so far.

                                Even the powerd stuff is working without adding the specific sysctl.

                                But the best is: my big problem is solved also. I had some weired crashes while connecting the WAN port (I write this in some other topics).
                                The reason was an entry in the loader.conf.local to support my processor 2.13 Ghz Pentium M with powerd.

                                But after the CMOS reset this is not necessary anymore.

                                So now my systems is running with HD and faster CPU and fan control and powerd. Fine!

                                Thanx so far to all who helped me.

                                Matthias

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

                                  That's great news.
                                  I tested my X5500e box that has the 2GHz Pentium-M in it (533MHz FSB) and still exhibited weird symptoms. I was hoping the fixed ACPI might send the correct valued to powerd. My box could have some other problem though I did get it very cheaply!
                                  Out of interest what loader.conf value were you passing to make powerd work with your CPU?

                                  Steve

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

                                    I don't have any settings now for using powerd. It is just working…
                                    No config under Advance (sysctl) and no loader.conf stuff.

                                    But there are only two speeds: 2.13 Ghz and 1003 Mhz in display.
                                    Maybe the Pentium M have more steps!?

                                    Matthias

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

                                      Hmm, yes there should be more steps if the ACPI tables are sending the correct data. Since Watchguard never fitted that CPU it's impossible to say what support there might be.

                                      With ACPI enabled the kernel timecounter uses the ACPI-fast counter as it's the most accurate. That means you don't have to use a sysctl to switch away from TSC (which changes with CPU frequency).

                                      I was just interested to know what loader.conf value you were using previously since my CPU does not appear to be supported.

                                      Steve

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

                                        Hi,

                                        I added the following:

                                        cpufreq_load="YES"

                                        Matthias

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

                                          After 3 months of happy uptime, I upgraded from 2.1.1 to 2.1.3.  The fan no longer throttles down to quiet.  Are there cliff notes on how to get it back running again?  Do I need to reload WGXepc?

                                          Steve mentioned once that Shellcmd would be better as to survive an update, but I lost my bookmarks on how to do that. Searching these giant threads with all the quotes is a headache. Forgive my impatience.

                                          edit:

                                          I guess I am doing shellcmd, here's a screenie.

                                          But it doesn't seem to work.

                                          Edit a little later:
                                          Guess the upgrade wiped wgxepc from the local folder. Re-downloaded into conf using the command function in the webscreen and the fetch commands from the wiki. and changed shellcmd to point to /conf/wgxepc .  All working now, thanks for your indulgence. I'm keeping this here so I can find it next update.

                                          Note to self:
                                          Go to Diagnostics -> nanobsd  –  enable read/write filesystem
                                          Go to Diagnostics -> command  -- fetch -o /conf https://sites.google.com/site/pfsensefirebox/home/WGXepc
                                          *****Can then test settings by running command --  /conf/WGXepc -l green or /conf/WGXepc -f 30
                                          Go to Diagnostics -> nanobsd  --  Switch back to read only filesystem
                                          Go to Services -> Shellcmd -- Add entry type shellcmd (or early) and your command  /conf/WGXepc -f 32

                                          reboot and enjoy the quiet

                                          Or just build a rasberry pi box and go fanless.

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

                                            Yep, like you found only the /conf (actually a link to the config slice) is shared between slices and not overwritten.
                                            I take it you're not actually using the fan speed control program then?

                                            Steve

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