Using IPMI to retrieve platform characteristics

Intelligent Platform Management Interface (IPMI) is an industry standard protocol used to monitor and manage various platform characteristics. This includes the ability to print FRU information, remotely control the power of the chassis, and read a variety of sensors built into the hardware platform. If you are running a Solaris host, you can use the ipmitool utility to access IPMI platform data on a local or remote host. The following example shows how to use ipmitool to print the overall status of a server that supports IPMI:

$ /usr/sfw/bin/ipmitool -v chassis status

--
BMC req.fn         : 0x0
BMC req.lun        : 0x0
BMC req.cmd        : 0x1
BMC req.datalength : 0x0
BMC req.data       : 
--
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : unknown
Last Power Event     :
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false

In addition to printing high level status information, you can use the “sensor” and “sdr” options to print the operational status of each components in a server:

$ /usr/sfw/bin/ipmitool sensor

ambienttemp      | 21.600     | degrees C  | ok    | na        | na        | na        | 34.800    | 40.200    | na
bulk.v12-0-s0    | 12.120     | Volts      | ok    | na        | 10.200    | na        | na        | 13.800    | na
bulk.v3_3-s0     | 3.360      | Volts      | ok    | na        | 3.000     | na        | na        | 3.600     | na
bulk.v3_3-s5     | 3.240      | Volts      | ok    | na        | 3.000     | na        | na        | 3.600     | na
bulk.v5-s0       | 5.040      | Volts      | ok    | na        | 4.500     | na        | na        | 5.520     | na
bulk.v5-s5       | 5.040      | Volts      | ok    | na        | 4.500     | na        | na        | 5.520     | na
cpu0.dietemp     | 34.800     | degrees C  | ok    | na        | na        | na        | 70.200    | 73.200    | na
cpu0.memtemp     | 25.800     | degrees C  | ok    | na        | na        | na        | 49.800    | 55.200    | na
cpu0.vcore-s0    | 1.560      | Volts      | ok    | na        | 0.720     | na        | na        | 1.680     | na
cpu0.vldt2       | 1.200      | Volts      | ok    | na        | 1.080     | na        | na        | 1.320     | na
cpu1.dietemp     | 39.600     | degrees C  | ok    | na        | na        | na        | 70.200    | 73.200    | na
cpu1.memtemp     | 28.800     | degrees C  | ok    | na        | na        | na        | 55.200    | 60.000    | na
cpu1.vcore-s0    | 1.560      | Volts      | ok    | na        | 0.720     | na        | na        | 1.680     | na
fan1.tach        | 10440.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
fan2.tach        | 10500.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
fan3.tach        | 10500.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
fan4.tach        | 10620.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
fan5.tach        | 10500.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
fan6.tach        | 10740.000  | RPM        | ok    | na        | 1980.000  | na        | na        | na        | na
gbeth.temp       | 33.000     | degrees C  | ok    | na        | na        | na        | 55.200    | 60.000    | na
hddbp.temp       | 24.600     | degrees C  | ok    | na        | na        | na        | 55.200    | 60.000    | na
sp.temp          | 33.000     | degrees C  | ok    | na        | na        | na        | 55.200    | 60.000    | na
cpu0.mem0        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu0.mem1        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu0.mem2        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu0.mem3        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu1.mem0        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu1.mem1        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu1.mem2        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
cpu1.mem3        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
Event Logging    | 0x0        | discrete   | 0x0000| na        | na        | na        | na        | na        | na

$ /usr/sfw/bin/ipmitool sdr list all

NWS BMC          | Dynamic MC @ 20h  | ok
ambienttemp      | 20.40 degrees C   | ok
bulk.v12-0-s0    | 12.06 Volts       | ok
bulk.v3_3-s0     | 3.36 Volts        | ok
bulk.v3_3-s5     | 3.24 Volts        | ok
bulk.v5-s0       | 5.04 Volts        | ok
bulk.v5-s5       | 5.04 Volts        | ok
cpu0.dietemp     | 36.60 degrees C   | ok
cpu0.memtemp     | 25.20 degrees C   | ok
cpu0.vcore-s0    | 1.56 Volts        | ok
cpu0.vldt2       | 1.20 Volts        | ok
cpu1.dietemp     | 39 degrees C      | ok
cpu1.memtemp     | 28.80 degrees C   | ok
cpu1.vcore-s0    | 1.56 Volts        | ok
fan1.tach        | 10500 RPM         | ok
fan2.tach        | 10500 RPM         | ok
fan3.tach        | 10500 RPM         | ok
fan4.tach        | 10560 RPM         | ok
fan5.tach        | 10440 RPM         | ok
fan6.tach        | 10740 RPM         | ok
gbeth.temp       | 33 degrees C      | ok
hddbp.temp       | 24.60 degrees C   | ok
sp.temp          | 33 degrees C      | ok
cpu0.mem0        | Not Readable      | ns
[ ..... ]

ipmitool can also be used to print the FRUs in a server:

$ /usr/sfw/bin/ipmitool fru

FRU Device Description : Builtin FRU Device (ID 0)
 Chassis Type          : Rack Mount Chassis
 Chassis Part Number   : 602-2844-01
 Chassis Serial        : XG051642013
 Board Mfg             : S-SCI448
 Board Product         : NWSBIDff
 Board Serial          : M0250F25
 Board Part Number     : S02035
 Product Manufacturer  : Sun Microsystems
 Product Name          : Sun Fire(tm) V20z
 Product Part Number   : 602-2844-01
 Product Version       : A03
 Product Serial        : XG051642013

FRU Device Description : cpu0.mem0.vpd (ID 1)
 Board Mfg             : 2cffffffffffffff
 Board Product         : 1GB DDR333 (PC2700) ECC
 Board Serial          : 56dabeea
 Board Part Number     : 18VDDF12872G-335D3
 Product Manufacturer  : 2cffffffffffffff
 Product Name          : 1GB DDR333 (PC2700) ECC
 Product Part Number   : 18VDDF12872G-335D3
 Product Version       : 0300
 Product Serial        : 56dabeea

[ ..... ]

There are tons of other useful features, which you can read about in the ipmitool(1m) manual page.

1 thought on “Using IPMI to retrieve platform characteristics”

Leave a Reply

Your email address will not be published. Required fields are marked *