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

    Temperature Widget

    Scheduled Pinned Locked Moved 2.1 Snapshot Feedback and Problems - RETIRED
    95 Posts 15 Posters 44.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.
    • stephenw10S
      stephenw10 Netgate Administrator
      last edited by

      Nope I was talking about the XTM5.
      You can use the output of mbmon to drive the dashboard widget. We had a long thread up on this for 2.0.X, I'm sure a lot of it would be relevent here.
      http://forum.pfsense.org/index.php/topic,39595.0.html

      And here was my specific post:
      http://forum.pfsense.org/index.php/topic,39595.msg204643.html#msg204643

      Steve

      1 Reply Last reply Reply Quote 0
      • ?
        Guest
        last edited by

        ah, informative - ill read that in a minute.

        decided to just post what i got till now:
        The code defaults to dev.cpu0 [as is] but is able to handle multiple acpi temperatures too if that module is used instead.

        
        function get_temp() {
        //  queries thermal sensors via sysctl. 
        // returns array of sensors and their corresponding values
        
                $arr_parsed ="";
                $arr_temp = array();
        
                $filter_acpi = "tz[0-1].temperature";
        
             // escaping for possible inclusion in config.xml
        
                $oid_cpu = escapeshellcmd("dev.cpu0.temperature");
                $oid_acpi = escapeshellcmd("hw.acpi.thermal");
        
             // First, query for a processor specific sensor on the die
                 exec("/sbin/sysctl '". $oid_cpu ."' | grep -E 'cpu.*temperature'" , $arr_cpu);
                // exec ("cat /root/temp_cpu | grep -E 'cpu.0.temperature'" , $arr_cpu);
        
                 if (arr_cpu != "") {
                      $arr_temp = array_merge($arr_temp,$arr_cpu);
                  }
        
             // Alternative: query all acpi thermal zones.
        
                   exec ("sysctl ". $oid_temp ." | grep -E '". $filter_acpi ."'" , $arr_acpi);
                  // exec ("cat /root/temp_acpi | grep -E '".$filter_acpi."'" , $arr_acpi);
        
                  if (arr_acpi != "") {
                      $arr_temp = array_merge($arr_temp,$arr_acpi);
                     }
        
                   foreach (($arr_temp) as $value) {
                     preg_match("/tz[0-9]|cpu/i", $value, $sens_id); // get sensor id 
                     preg_match("/[0-9]{1,2}.[0-9]/", $value, $sens_val);   // get temperature value
                     $arr_parsed[] =  array ($sens_id, $sens_val);
                   }
        
                   return($arr_parsed);
                }
        
        

        is nearly finished now but well see. Anyway, its main purpose is to train me some pfSense gui customisation skills, so no problem for me.
        Heres what its look like by now:

        pfsense_ajax.png
        pfsense_ajax.png_thumb

        1 Reply Last reply Reply Quote 0
        • rcfaR
          rcfa
          last edited by

          So where do we get the coretemp.ko that's compatible with pfSense 2.1 short of building a BSD 8.3 kernel?
          Is this going to end up in the regular distribution at some point or will this remain in the everyone interested hacks it in on their own territory?

          1 Reply Last reply Reply Quote 0
          • ?
            Guest
            last edited by

            Oh, its written Source independent (see discussion above) to let the users choose what they want to use.
            Edit:
            Im currently banned from the highspeed World and have to use gprs till eoM.  (:grm:)
            ill sync wt current git and do the commit as soon as my highpriced provider is able to…

            till then here are the other changed functions:

            
            function updateTemp(obj_json) {
            /*  modify the red / grey bar gifs according to the temperature
                ratio is one pixel per degree.
            */
            
                    jQuery.map(obj_json,function(value,index){
                    tempmeter = "#tempmeter" + value
                    tempwidtha = "#tempwidtha" + value
                    tempwidthb = "#tempwidthb" + value
                    console.log(tempmeter);
            
                    jQuery(tempwidthb).css('width',(100 - value[1]) + 'px');
            
                    if(jQuery(tempmeter))
                            jQuery(tempmeter).html(value[1] + '\u00B0' + 'C');
                    if(jQuery(tempwidtha))
                            jQuery(tempwidtha).css('width',value[1] + 'px');
                    if(jQuery(tempwidthb))
                    jQuery(tempwidthb).css('width',(100 - value[1]) + 'px');
            
            });
            
            

            and in system_information.widget.php

            
                                    Temperature 
            
                                            ![left bar](./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif)![red bar](./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif)![gray bar](./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif)![right bar](./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif)
            
            
            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              I don't have 2.1 running on anything right now so I can't check but is it not included in the image? If not it just needs copying from a FreeBSD 8.3 install.

              Steve

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

                Any chance of an option for Deg F ? Large numbers of people just never grokked the metric system sadly.  :-\

                –--------
                This user has been carbon dated to the 8-bit era...

                1 Reply Last reply Reply Quote 0
                • ?
                  Guest
                  last edited by

                  Hi, when the code gets accepted in main, then it will be in the image.
                  sorry, for the first run it will stay with degree ;(

                  But this patch is just the first of two. A further one, which i plan to be more dynamic and more configurable in the gui will follow.
                  By now we have migration phase, where the view is generated by a mix of php and js output)
                  In that second patch i plan to seperate them and use php only for the backend and js for the complete system_information.widget
                  Edit - no lets keep it easy, just for the temps :)

                  But for now - Ill note down a todo for an Option to switch output between Fahrenheit / Degrees ;)

                  If you need it faster, you can add code to check for the timezone after the patch has been accepted.

                  hanD !

                  1 Reply Last reply Reply Quote 0
                  • rcfaR
                    rcfa
                    last edited by

                    Is there any chance to convert this into a package that also installs the coretemp.ko and loads it, because without this won't work on my system, and it being a fanless design, I'd love to know if things go badly in terms of temperature for some reason…

                    1 Reply Last reply Reply Quote 0
                    • M
                      m4f1050
                      last edited by

                      @stephenw10:

                      Nope I was talking about the XTM5.
                      You can use the output of mbmon to drive the dashboard widget. We had a long thread up on this for 2.0.X, I'm sure a lot of it would be relevent here.
                      http://forum.pfsense.org/index.php/topic,39595.0.html

                      And here was my specific post:
                      http://forum.pfsense.org/index.php/topic,39595.msg204643.html#msg204643

                      Steve

                      Thanks!   :)   I "pkg_add -r mbmon" and at least I can run it in command line.  So I have 3 different "temps" when I run mbmon…

                      Temp.= 47.0, 127.0, 79,0; Rot.=   0,   0,   0
                      Vcore = 1.49, 3.38; Volt. = 3.31, 4.95, 11.67,  -3.06, -6.12

                      If -T3 is the CPU and that's in celcius I think I'm frying my CPU ATM!!  But it's been running forever like this...?

                      EDIT 1:
                      Ok, T1 is my CPU temp, it went down to 46.0 when I put another fan to help the one I have temporarily.  BTW I modified my functions.inc.php and I now have Temp in my GUI  :D    Thanks again Steve!

                      EDIT 2:
                      I changed the -I to -i to show integer (no .0 at the end)

                      1 Reply Last reply Reply Quote 0
                      • rcfaR
                        rcfa
                        last edited by

                        mbmon doesn't seem to work here
                        So I guess I'd need coretemp. Where can we get the required files for that (amd64/BSD 8.3)?

                        1 Reply Last reply Reply Quote 0
                        • M
                          markuhde
                          last edited by

                          @m4f1050:

                          If -T3 is the CPU and that's in celcius I think I'm frying my CPU ATM!!  But it's been running forever like this…?

                          Even if it was 79, that's fine for most modern CPU's. My MacBook Pro runs about 50-60 in normal use and keeps the fan running about 2000 RPM, but doesn't start ramping up the fan speed until just under 80. Under load, it throttles the fan speed up and down to keep the CPU in the 80-90 range.

                          1 Reply Last reply Reply Quote 0
                          • ?
                            Guest
                            last edited by

                            Depends on if its fahrenheit or celsius too, hehe.

                            I see that mbmon is getting much attention and currently we support coretemp and acpi.
                            The code generates a source indepent temperature array, so its possible to add mbmon to.
                            I will add it as a source. Its not much effort and then everyone is able to to query with his favorite toy in the BE ;)

                            –-

                            Maybe ill decide do a package too in the future, when i build up enough knowledge to do so, but lets keep the balls down for the moment :)
                            After all atm its just a neat patch which adds some sensors.

                            Steven posted a link to the coretemp modules here: http://files.pfsense.org/jimp/ko-8.1/amd64/coretemp.ko

                            1 Reply Last reply Reply Quote 0
                            • M
                              markuhde
                              last edited by

                              @ThorstenK:

                              Depends on if its fahrenheit or celsius too, hehe.

                              AFAIK, every single CPU on the market reads temperature in Celsius.

                              1 Reply Last reply Reply Quote 0
                              • ?
                                Guest
                                last edited by

                                Yes, so im pretty sure that it wont be a good idea to modify the temp widgets code to print them in Fahrenheit or use that as a default. (see discussion above)
                                daplumpler: other People may get confused in the beginnings. I dont think we want this happening in such a critical area.

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

                                  Here is the coretemp module from my FreeBSD install.
                                  It's an i386 (32bit) module from FreeBSD 8.3 rel. As before:

                                  @stephenw10:

                                  Copy coretemp.ko into /boot/modules
                                  Add```
                                  coretemp_load="YES"

                                  I don't have a 64bit install at the moment unfortunately.

                                  Remove the .png extension.

                                  Steve

                                  coretemp.ko.png

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    m4f1050
                                    last edited by

                                    @ThorstenK:

                                    Depends on if its fahrenheit or celsius too, hehe.

                                    I see that mbmon is getting much attention and currently we support coretemp and acpi.
                                    The code generates a source indepent temperature array, so its possible to add mbmon to.
                                    I will add it as a source. Its not much effort and then everyone is able to to query with his favorite toy in the BE ;)

                                    –-

                                    Maybe ill decide do a package too in the future, when i build up enough knowledge to do so, but lets keep the balls down for the moment :)
                                    After all atm its just a neat patch which adds some sensors.

                                    Steven posted a link to the coretemp modules here: http://files.pfsense.org/jimp/ko-8.1/amd64/coretemp.ko

                                    From what I understand, my T1 is my CPU temp and my T3 is my chipset temp.  I am guessing if it's 127.0 (always at that) that temp is not available.  You can program it to check if it's 127.0 to NOT display it in the GUI…  If they are interested in knowing all the temps and not just the CPU temp..

                                    BTW I confirmed with my buddy's FB X500 with good fan that he is running T1=45C , T2=127C and T3=77C  (~2C less, so I am good)

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      Guest
                                      last edited by

                                      mmh. I dont think that we really want that. Maybe 127 is 1111111 and so some kind of magic value.
                                      and "normally" such a high temperature isnt realistic to be ever shown.

                                      Automatically deactivating a sensor just for convinience isnt a good idea in general.
                                      It is better to implement a configuration screen (see notes about planned pach 2) which lets the user the decision to select the sensors on a per system base.

                                      Ill push the implementation to patch 2.

                                      1 Reply Last reply Reply Quote 0
                                      • rcfaR
                                        rcfa
                                        last edited by

                                        @ThorstenK:

                                        Steven posted a link to the coretemp modules here: http://files.pfsense.org/jimp/ko-8.1/amd64/coretemp.ko

                                        Yep, but that's for BSD 8.1, but we're running 8.3, AFAIK that's not compatible.

                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          Guest
                                          last edited by

                                          Thats right - Please check the last post of Steven. He posted the mod as attachment.

                                          1 Reply Last reply Reply Quote 0
                                          • rcfaR
                                            rcfa
                                            last edited by

                                            @ThorstenK:

                                            Thats right - Please check the last post of Steven. He posted the mod as attachment.

                                            Maybe I'm dense, or you're talking about a different Steven than I think you're talking about, but all I can find is a 32-bit version for 8.3, which won't work because I'm running a 64-bit install, and a 64-bit version for 8.1, which won't work because I'm on 8.3

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