Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages
BSDHWMON(8) FreeBSD System Manager's Manual BSDHWMON(8)

hardware sensor monitoring utility

bsdhwmon [
] [
-f device

bsdhwmon is a user-land application which communicates via SMBus with hardware monitoring ICs on motherboards. Many different pieces of information can be returned, but the most common are fan RPMs, processor and system temperatures, and motherboard voltages. All data is sent to standard output.
At this time, bsdhwmon supports a multitude of Winbond hardware monitoring ICs, predominantly on Supermicro motherboards.
The options are as follows:
Output data in a JSON-compliant format.
Output data in a comma-delimited format. Sensor name, its value, and the associated unit (V for volts, C for Celsius, RPM for rotations per minute, etc.) are individual parameters.
Specify an alternate SMBus device. Default is /dev/smb0.
List motherboards supported by bsdhwmon.
Help or usage syntax.
Increase verbosity (includes debugging output).

bsdhwmon requires a few hardware and software features to function:
  1. A system BIOS that provides a SMBIOS table. Specifically, the existence of the smbios.planar.maker and smbios.planar.product kenv(2) kernel environment strings. You can verify the existence of these variables by using kenv(1).
  2. device smb built into your kernel or loaded using kldload(8),
  3. device smbus built into your kernel or loaded using kldload(8),
  4. An appropriate SMBus chipset driver, such as amdsmb(4), ichsmb(4), or nfsmb(4), built into your kernel or loaded via kldload(8).
Failure to meet all of the above requirements will result in bsdhwmon not functioning.

bsdhwmon attempts to mimic output formatting and sensor strings to that of the BIOS's Hardware Monitoring menu option (if available). However, due to limited hardware availability and user beta testing, some strings may not match the BIOS exactly (such as "PECI Agent" being replaced with "CPU Core").
For example, a Supermicro PDSMi+ motherboard might output something like this:
CPU Temperature            34 C 
System Temperature         36 C 
FAN1                        0 RPM 
FAN2                        0 RPM 
FAN3                        0 RPM 
FAN4                     2000 RPM 
FAN5                     1527 RPM 
FAN6                     1785 RPM 
Vcore                   1.198 V 
+1.5V                   1.540 V 
-12V                  -12.288 V 
Vdimm                   1.824 V 
+3.3V                   3.344 V 
+12V                   12.000 V 
5Vsb                    5.046 V 
5VDD                    4.974 V 
P_VTT                   1.206 V 
Vbat                    3.184 V
While an older Supermicro P8SC8 might output this:
CPU Temperature            33 C 
System Temperature         37 C 
FAN1                     4963 RPM 
FAN2                        0 RPM 
FAN3                        0 RPM 
FAN4                        0 RPM 
FAN5                        0 RPM 
Processor Vcore(V)      1.360 V 
3.3V Vcc(V)             3.320 V 
5V Vcc(V)               3.044 V 
-12V Vcc(V)           -12.288 V 
12V Vcc(V)             12.432 V 
5VSB                    4.896 V 
VBAT                    3.104 V
Slight differentials in sensor values (e.g. a few degrees, voltage fluctuations, or RPM variance) are normal. Operating systems often make use of system and processor which may halt processors while idling (e.g. x86 "HLT" opcode), or make use of C1 through C4 power-saving states; powerd(8) on FreeBSD is known to do this. System BIOSes are known to offer the ability to throttle fan speed based on load. Please refer to your System User Manual for details.
Large/severe differences between what the system BIOS and bsdhwmon reports should be reported as a bug (e.g. -12.107 V shown in the BIOS, while bsdhwmon reports +37.000 V).

The bsdhwmon utility exits 0 on success, and >0 if an error occurs.

kenv(1), amdsmb(4), ichsmb(4), nfsmb(4), smb(4), smbus(4), kldload(8)

Jeremy Chadwick ⟨⟩

Some Supermicro systems using the Winbond W83792D chipset may report incorrect +5V voltages; the Supermicro P8SC8 and P8SCT motherboards are such examples. This is caused by a faulty formula used to calculate voltages from IC registers. The formulas used are not officially documented, and the actual circuitry (resistors, etc.) tied to the pins on the Winbond chip do not match what Winbond used in their documentation. Formula documentation has been requested of Supermicro, but no response has been received at this time.
There has been an isolated report of a Supermicro P8SCi system occasionally reporting extremely high RPMs (in the tens of thousands) for some fans. The reason for this is unknown, but the values being returned from the Winbond chipset do appear correct. If you're experiencing this bug, please get in contact with the author. Git commit ad3bbad may have rectified this bug.

The following individuals have made contributions to bsdhwmon, either by helping with the code, testing the software, or recommending features:
Tony Allevato, Mike Andrews, Alan Bryan, Gergely Czuczy, Michael Fuckner, M. Giegerich, Matthew Herzog, Dan Naumov, Billy Newsom, Daniel O'Connor, Alexey V. Panfilov, Jim Perry, Jim Pingle, Patrick Proniewski, Matt Reimer, Larry Rosenman, Ulrich Spoerlein, Evren Yurtesen
Additional thanks to SHIMIZU Yoshifumi, author of mbmon, for providing BSD hardware monitoring support on older x86 hardware, and to the Linux lm_sensors project, for providing an unofficial secondary source of IC documentation and details of chip quirks.
April 29, 2015 FreeBSD 12.0-RELEASE

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.