Hardware Monitoring (temperature etc.) ?



  • Hi all,

    Just wondering if monitoring things like CPU or Mainboard temperature is possible?  I suspect that it is from the shell, but I've NEVER used FreeBSD before, and so I don't really know.  I've retrofitted my old Abit BP6 with dual Celeron 433mhz processors for this… hoping its enough for the job... I'm on the quest to make it as silent as possible, so I've begun undervolting the processors and I've swapped out the old fans for a single low RPM 80mm fan... temps in the bios look good, and as I'm only testing pfSense at the moment, CPU load is very low...

    Any chance this kind of information could be available from the SSH menu, shell, or web GUI?

    Thanks very much ... this is EXACTLY what I've been looking for... I plan to do loadbalancing with a DSL and  Cable modem connection to the internet for my LAN, and no other solution seems to come close to this!

    Thanks again,

    -- Phob



  • Hi again,

    So… I decided to do a little more poking around on my own as I hadn't heard anything, and found some helpful information.

    There are two utilities that give some information about Temps & Voltages etc. from the shell... I don't know if there are more, but I'd really love to know if anybody else does!

    Lmmon & Healthd

    I read about both at :

    http://www.freebsd.org/ports/sysutils.html

    Basically I used that pkg_add command from the shell... eg. "pkg_add -r lmmon" installed the lmmon package.  I needed to reboot the pfSense box in order to be able to execute the package, but after that I was able to see some system info!

    Unfortunately, lmmon doesn't seem to grab the CPU temps, just the motherboard.  Healthd does seem to grab the CPU temps (temp x 2 in my case as I have 2 CPUs) but the way it is outputted on the screen isn't as nice as lmmon.

    Does anybody here know of other programs which display this info?  Most seem to assume you are running some sort of x11 interface, but I'm just using SSH to get into the box, so the shell (or web gui) are more ideal.  Something with the information of healthd (for CPU temps anyway) and the display formatting of lmmon would be great... but I have less than no programming skills.  Anybody out there able to help?

    Thanks a ton!!

    -- Phob



  • have you tried stuff like the sysctls ? they report a few things from ACPI, like hw.acpi.thermal.tz0.temperature: 40.0C.
    Try a "sysctl -a" and "sysctl hw." there you will find loads of info. How much is supported is mostly dependant on your motherboard.

    Also there are a lot of HW monitoring ports, but some work better then others. And mostly this depends on what kind of MB you have.



  • I just remembered, you can also try "pkg_add -r consolehm" then after it's done do a "rehash" and then run "chm -I"
    Not sure how well this supports different MB's either, but you can give it a shot.

    This is what it gives me:

    –--------------------------------------
    Motherboard Temperature: 31 ░ C
    CPU_0 Temperature: 27 ░ C
    CPU_1 Temperature: 33 ░ C
    VCore:   2.46875 V
    Vit:     3.07812 V
    Vio:     3.28125 V
    +5V:     4.85344 V
    +12V:    11.4375 V
    -12V:    -0 V
    -5V:     -0 V
    Fan 1: Not Available
    Fan 2: 4066 rpm
    Fan 3: Not Available



  • Hi,

    Thanks that works too!  Any idea why the SMBUS method fails?  I had actually tried this utility at some point, and when I received that error message I thought it didn't work… never tried the -I or "io method". (chm with no arguments defaults to SMBUS which I assumed was supported by freeBSD and my Abit BP6)

    At any rate, this format of information is great, but it doesn't seem to register the -12v and -5v correctly, while healthd does.  Also, it seems to scroll like heathd does instead of refreshing the screen without scrolling like lmmon seems to do.

    lmmon also reports the -12v and -5v incorrectly... I wonder if this is because it uses the IO method?

    All I really want is a display of accurate temperatures which both healthd and chm seem to do nicely.  I'd love to be able to keep a shell window open sometimes and have that information easily available on networked machines while I'm testing the router out under load, and the lmmon interface is the least distracting as it doesn't constantly scroll by.  Too bad neither chm or healthd took the interface idea from lmmon!

    Thanks again for your help, always good to have another option, and the scrolling output is easier to read than that of healthd.

    -- Phob



  • You need to compile smbus in kernel to get it to work with that, read the man page for chm.

    controller      smbus0
              controller      iicbus0
              controller      iicbb0
              controller      intpm0
              device          smb0    at smbus?

    refer to man page for more info.



  • @lsf:

    You need to compile smbus in kernel to get it to work with that, read the man page for chm.

    controller      smbus0
              controller      iicbus0
              controller      iicbb0
              controller      intpm0
              device          smb0    at smbus?

    refer to man page for more info.

    Would this be useful to add to our kernel configuration or is this some case that would only be used 1% of the time?



  • I don't think it would hurt if we added this to the kernel conf, but I don't think we want to support it.
    As this has a tendency to be either working or half working, depending on the HW it runs on.
    Atleast i don't trust it to be correct as i have seen a lot of different results on all of the console montioring apps around.
    In my experience only windows seems to get this mostly right, and still there are issues there as well.



  • Well, I don't have the kind of experience that you folks do, but I tried all of the above mentioned hardware monitoring utilities from the shell, and all reported basically the same information. (except for -12v and -5v)

    This kind of functionality "built in" would be terrific in my opinion, and even better if it were possible to be displayed in the webgui, perhaps on the system page that displays CPU usage? (I'm just talking about temperatures … I don't particularily need voltage info, though it is nice to be able to monitor all of that sort of information from the shell.)

    I don't know if I'm typical, or just that 1% ... I'm not sure how many people use dedicated/embedded type hardware, or more like what I've done by recycling an old PC.  All I can say is that as my setup is an older PC, this information is of great use as I'm trying to keep things as quiet as possible... I'd love to try passive cooling etc., but without the ability to monitor temperatures this would be a little difficult.

    At any rate... I really appreciate all of the help that you've shown with getting these shell apps working... definately of great use to me!

    -- Phob



  • I have to admint, I agree with Phobia.  I would like to have this kind of information at the ready, and having it integrated with the system status seems to make sense.  Anyway, just another 1% to add… that makes 2% doesn't it?



  • I would agree adding it, maybe with an option to "enable display hardware senosrs" at the advanced page, so you can shut it down if it displays crap for your specific hardware. Other option would be to have this as package, so you can install/remove it when needed. Sending over the data to snmp would be a nice step as well, so you can trigger alerts when your cpu runs too hot for example because your cpufan died.



  • Now that would be slick!!

    What does one use to monitor SNMP?  Are there tools available for Windows etc.?

    It seems like the add-on package / option to enable sensors (likely with the default being off) would be a great idea.  That way folks who didn't want to know or could care less wouldn't be bothered by said information.  Would it be possible to add the information to the main status page with an add-on package?  I noticed that other packages seem to be accessed through sub-menus and am unclear if this is required, or if added stuff from packages can reside in pre-exsisting pages in the webgui.

    Great to talk about this feature… hopefully it will make the cut.

    Thanks again,

    -- Phob



  • If it's added as package it has to be a seperate page and a seperate menu entry. If it's in base with an option to turn it on/off it could be displayed at system>status.



  • @hoba:

    If it's added as package it has to be a seperate page and a seperate menu entry. If it's in base with an option to turn it on/off it could be displayed at system>status.

    If someone wants to work on a package I'll be happy to integrate the kernel bits.



  • I did some invenstigation and this is what I found, first we need to compile these parameters in Kernel :

    
    	device          smbus
    	device          ichsmb
    	device          smb
    	device          iicbus
    	device          iicbb
    	device          intpm
    	device          pcf
    	device          acpi
    
    

    Then the best software out there that fit for pfsense is healthd
    healthd is the only software that has support for so many chipset (W83781D, W83782D, W83783S, LM78, LM79 and the AS99127F)
    this software is a deamon that easly can start in rc.d directory
    later you can read out sensor figures by runing this command :
    /usr/local/bin/healthdc -H
    the -H parameters create a HTML output that can easly be included in pfsense WEBGUI

    So the question is if Scott will compile a kernel with above parameters for pfsense :-)



  • Those values are already present from what I can tell.



  • @nima.m:

    I did some invenstigation and this is what I found, first we need to compile these parameters in Kernel :

    
    	device          smbus
    	device          ichsmb
    	device          smb
    	device          iicbus
    	device          iicbb
    	device          intpm
    	device          pcf
    	device          acpi
    
    

    Then the best software out there that fit for pfsense is healthd
    healthd is the only software that has support for so many chipset (W83781D, W83782D, W83783S, LM78, LM79 and the AS99127F)
    this software is a deamon that easly can start in rc.d directory
    later you can read out sensor figures by runing this command :
    /usr/local/bin/healthdc -H
    the -H parameters create a HTML output that can easly be included in pfsense WEBGUI

    Check out how the temp. monitor is setup on for 4801's.  All the code for that is in /usr/local/www/* and subdirectories of it.  Should be easy to modify to check for the presense of the healthd package and make the appropriate calls.

    –Bill



  • Works great for me with a cronjob :

    
    */1 * * * * /usr/local/bin/healthdc -H > /usr/local/www/temp/index.php
    
    

    I only miss HD temp :(

    # smartctl -a /dev/ad2s1a
    smartctl version 5.33 [i386-portbld-freebsd6.1] Copyright (C) 2002-4 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/
    
    Smartctl: Device Read Identity Failed (not an ATA/ATAPI device)
    
    A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
    
    


  • Hi again all,

    So, is this then possible to add to the actual install of PFSense, or is the manual hacking the only way to go?

    Thanks,

    – Phob



  • Unless somebody makes a package of this that generates a nice webguiscreen and/or maybe even some rrdgraphs "hacking" is the only option.



  • So are these values natively accessable via SNMP, or do I need to "hack" it to get those values?  We already monitor a ton of stuff with MRTG (including bandwidth) but CPU usage and Memory usage would be nice to add to our graphs!



  • So I guess there was not enough interest for anyone to actually attempt this (release wise)?  Seems like it would be "handy" if nothing else for the 3% of us… I would put in my two cents that if someone was to spend time to create it, I feel that it probably should be an add-on package.  I'm really suprised though, up to the last post, it seemed like it was drawing some positive feedback.

    All well, thanks for all the hard work!



  • i know this thread is old. but anyone else tried to run healthd and others on smbus ? i tried but i think our kernel doesnt have device          smbus
    device          ichsmb
    device          smb
    device          iicbus
    device          iicbb
    device          intpm
    device          pcf
    device          acpi
    is anyone sure this is compile in ? we have acpi. but not smbus and smb and iicbus and iicbb.


Locked