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.

This article was posted by Matty on 2006-06-08 22:49:00 -0400 -0400