C H A P T E R  12

 


Using IPMItool to View System Information

This chapter contains information about using the Intelligent Platform Management Interface (IPMI) to view monitoring and maintenance information for your server. This chapter includes the following sections:


About IPMI

IPMI is an open-standard hardware management interface specification that defines a specific way for embedded management subsystems to communicate. IPMI information is exchanged though baseboard management controllers (BMCs), which are located on IPMI-compliant hardware components.

Using low-level hardware intelligence instead of the operating system has two main benefits: First, this configuration allows for out-of-band server management. Second, the operating system is not burdened with transporting system status data.

Your Sun Fire X4540 Service Processor (SP) is IPMI v2.0 compliant. You can access IPMI functionality through the command line with the IPMItool utility either in-band or out-of-band. Additionally, you can generate an IPMI-specific trap from the web interface or manage the server's IPMI functions from any external management solution that is IPMI v1.5 or v2.0 compliant. For more information about the IPMI v2.0 specification, go to http://www.intel.com/design/servers/ipmi/spec.htm#spec2


About IPMItool

IPMItool is a simple, command-line interface used to manage IPMI-enabled devices. You can use this utility to perform IPMI functions with a kernel device driver or over a LAN interface. IPMItool allows you to manage system hardware components, monitor system health, and monitor and manage system environmentals, independent of the operating system.

IPMItool is included on the Sun Fire X4540 server Tools and Drivers CD (705-1438). Locate IMPItool and its related documentation on your Sun Fire X4540 Server Tools and Drivers CD, or download this tool at:

http://ipmitool.sourceforge.net/

IPMItool Man Page

After you install the IPMItool package, you can access detailed information about command usage and syntax from the man page that is installed. From a command line, type the following command:

man ipmitool


Connecting to the Server With IPMItool

To connect over a remote interface, you must supply a user name and password. The default user with administrator-level access is root with password changeme. This means you must use the -U and -P parameters to pass both user name and password on the command line, as shown in the following example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme chassis status



Note - If you encounter command-syntax problems with your particular operating system, you can use the ipmitool -h command and parameter to determine which parameters can be passed with the ipmitool command on your operating system. Also refer to the IPMItool man page by typing man ipmitool.




Note - In the example commands shown in this appendix, the default username, root, and default password, changeme are shown. You should type the user name and password that has been set for the server.


Enabling the Anonymous User

In order to enable the Anonymous/NULL user, you must alter the privilege level on that account. This will let you connect without supplying a -U user option on the command line. The default password for this user is anonymous.

To enable the anonymous user, type the following commands:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme channel setaccess 1 1 privilege=4
ipmitool -I lanplus -H <IPADDR> -P anonymous user list

Changing the Default Password

You can also change the default passwords for a particular user ID. First, get a list of users and find the ID for the user you wish to change. Then, supply it with a new password, as shown in the following command sequence:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme user list
ID	Name	Callin  Link Auth  IPMI Msg   Channel Priv Limit
1 	false   false      true       NO ACCESS
2	root 	false   false      true       ADMINISTRATOR
ipmitool -I lanplus -H <IPADDR> -U root -P changeme user set password 2 newpass
ipmitool -I lanplus -H <IPADDR> -U root -P newpass chassis status

Configuring an SSH Key

You can use IPMItool to configure an SSH key for a remote shell user. To do this, first determine the user ID for the desired remote SP user with the user list command:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme user list

Then supply the user ID and the location of the RSA or DSA public key to use with the ipmitool sunoem sshkey command. For example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sunoem sshkey set 2 id_rsa.pub
Setting SSH key for user id 2.......done

You can also clear the key for a particular user, for example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sunoem sshkey del 2
Deleted SSH key for user id 2


Using IPMItool to Read Sensors

For more information about supported IPMI 2.0 commands and the sensor naming for this server, also refer to the Integrated Lights Out Manager Administration Guide, 819-1160.

Reading Sensor Status

There are a number of ways to read sensor status, from a broad overview that lists all sensors, to querying individual sensors and returning detailed information on them.

For information on the physical locations of the sensors in the system, see Sun Fire X4540 Sensor Locations.

Reading All Sensors

To get a list of all sensors in these servers and their status, use the sdr list command with no arguments. This returns a large table with every sensor in the system and its status.

The five fields of the output lines, as read from left to right are:

1. IPMI sensor ID (16-character maximum)

2. IPMI sensor number

3. Sensor status, indicating which thresholds have been exceeded

4. Entity ID and instance

5. Sensor reading

For example:

fp.t_amb | 0Ah | ok | 12.0 | 22 degrees C

Reading Specific Sensors

Although the default output is a long list of sensors, it is possible to refine the output to see only specific sensors. The sdr list command can use an optional argument to limit the output to sensors of a specific type. TABLE 12-1 describes the available sensor arguments.


TABLE 12-1 IPMItool Sensor Arguments

Argument

Description

Sensors

all

All sensor records

All sensors

full

Full sensor records

Temperature, voltage, and fan sensors

compact

Compact sensor records

Digital Discrete: failure and presence sensors

event

Event-only records

Sensors used only for matching with SEL records

mcloc

MC locator records

Management Controller sensors

generic

Generic locator records

Generic devices: LEDs

fru

FRU locator records

FRU devices


For example, to see only the temperature, voltage, and fan sensors, you would use the following command, with the full argument.

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sdr elist full
fp.t_amb         | 0Ah | ok  | 12.0 | 22 degrees Cps.t_amb         | 11h | ok  | 10.0 | 21 degrees Cps0.f0.speed     | 15h | ok  | 10.0 | 11000 RPMps1.f0.speed     | 19h | ok  | 10.1 | 0 RPMmb.t_amb         | 1Ah | ok  |  7.0 | 25 degrees Cmb.v_bat         | 1Bh | ok  |  7.0 | 3.18 Voltsmb.v_+3v3stby    | 1Ch | ok  |  7.0 | 3.17 Voltsmb.v_+3v3        | 1Dh | ok  |  7.0 | 3.34 Voltsmb.v_+5v         | 1Eh | ok  |  7.0 | 5.04 Voltsmb.v_+12v        | 1Fh | ok  |  7.0 | 12.22 Voltsmb.v_-12v        | 20h | ok  |  7.0 | -12.20 Voltsmb.v_+2v5core    | 21h | ok  |  7.0 | 2.54 Voltsmb.v_+1v8core    | 22h | ok  |  7.0 | 1.83 Voltsmb.v_+1v2core    | 23h | ok  |  7.0 | 1.21 Voltsio.t_amb         | 24h | ok  | 15.0 | 21 degrees Cp0.t_core        | 2Bh | ok  |  3.0 | 44 degrees Cp0.v_+1v5        | 2Ch | ok  |  3.0 | 1.56 Voltsp0.v_+2v5core    | 2Dh | ok  |  3.0 | 2.64 Voltsp0.v_+1v25core   | 2Eh | ok  |  3.0 | 1.32 Voltsp1.t_core        | 34h | ok  |  3.1 | 40 degrees Cp1.v_+1v5        | 35h | ok  |  3.1 | 1.55 Voltsp1.v_+2v5core    | 36h | ok  |  3.1 | 2.64 Voltsp1.v_+1v25core   | 37h | ok  |  3.1 | 1.32 Voltsft0.fm0.f0.speed | 43h | ok  | 29.0 | 6000 RPMft0.fm1.f0.speed | 44h | ok  | 29.1 | 6000 RPMft0.fm2.f0.speed | 45h | ok  | 29.2 | 6000 RPMft1.fm0.f0.speed | 46h | ok  | 29.3 | 6000 RPMft1.fm1.f0.speed | 47h | ok  | 29.4 | 6000 RPMft1.fm2.f0.speed | 48h | ok  | 29.5 | 6000 RPM

You can also generate a list of all sensors for a specific Entity. Use the list output to determine which entity you are interested in seeing, then use the sdr entity command to get a list of all sensors for that entity. This command accepts an entity ID and an optional entity instance argument. If an entity instance is not specified, it will display all instances of that entity.

The entity ID is given in the fourth field of the output, as read from left to right. For example, in the output shown in the previous example, all the fans are entity 29. The last fan listed (29.5) is entity 29, with instance 5:

ft1.fm2.f0.speed | 48h | ok  | 29.5 | 6000 RPM

For example, to see all fan-related sensors, you would use the following command that uses the entity 29 argument.

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sdr entity 29
ft0.fm0.fail     | 3Dh | ok  | 29.0 | Predictive Failure Deassertedft0.fm0.led      | 00h | ns  | 29.0 | Generic Device @20h:19h.0ft0.fm1.fail     | 3Eh | ok  | 29.1 | Predictive Failure Deassertedft0.fm1.led      | 00h | ns  | 29.1 | Generic Device @20h:19h.1ft0.fm2.fail     | 3Fh | ok  | 29.2 | Predictive Failure Deassertedft0.fm2.led      | 00h | ns  | 29.2 | Generic Device @20h:19h.2ft1.fm0.fail     | 40h | ok  | 29.3 | Predictive Failure Deassertedft1.fm0.led      | 00h | ns  | 29.3 | Generic Device @20h:19h.3ft1.fm1.fail     | 41h | ok  | 29.4 | Predictive Failure Deassertedft1.fm1.led      | 00h | ns  | 29.4 | Generic Device @20h:19h.4ft1.fm2.fail     | 42h | ok  | 29.5 | Predictive Failure Deassertedft1.fm2.led      | 00h | ns  | 29.5 | Generic Device @20h:19h.5ft0.fm0.f0.speed | 43h | ok  | 29.0 | 6000 RPMft0.fm1.f0.speed | 44h | ok  | 29.1 | 6000 RPMft0.fm2.f0.speed | 45h | ok  | 29.2 | 6000 RPMft1.fm0.f0.speed | 46h | ok  | 29.3 | 6000 RPMft1.fm1.f0.speed | 47h | ok  | 29.4 | 6000 RPMft1.fm2.f0.speed | 48h | ok  | 29.5 | 6000 RPM

Other queries can include a particular type of sensor. The command in the following example would return a list of all Temperature type sensors in the SDR.

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sdr type temperature
sys.tempfail     | 03h | ok  | 23.0 | Predictive Failure Deassertedmb.t_amb         | 05h | ok  |  7.0 | 25 degrees Cfp.t_amb         | 14h | ok  | 12.0 | 25 degrees Cps.t_amb         | 1Bh | ok  | 10.0 | 24 degrees Cio.t_amb         | 22h | ok  | 15.0 | 23 degrees Cp0.t_core        | 2Ch | ok  |  3.0 | 35 degrees Cp1.t_core        | 35h | ok  |  3.1 | 36 degrees C


Using IPMItool to View the ILOM SP System Event Log

The ILOM SP System Event Log (SEL) provides storage of all system events. You can view the SEL with IPMItool. This topic includes the following sections:

Viewing the SEL With IPMItool

There are two different IPMI commands that you can use to see different levels of detail.

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sel list
100 | Pre-Init Time-stamp | Entity Presence #0x16 | Device Absent200 | Pre-Init Time-stamp | Entity Presence #0x26 | Device Present300 | Pre-Init Time-stamp | Entity Presence #0x25 | Device Absent400 | Pre-Init Time-stamp | Phys Security  #0x01   | Gen Chassis intrusion500  | Pre-Init Time-stamp  | Entity Presence  #0x12    | Device Present


Note - When you use this command, an event record gives a sensor number, but does not display the name of the sensor for the event. For example, in line 100 in the sample output above, the sensor number 0x16 is displayed. For information about how to map sensor names to the different sensor number formats that might be displayed, see Sensor Numbers and Sensor Names in SEL Events.


ipmitool -I lanplus -H <IPADDR> -U root -P changeme sel elist first 3
100 | Pre-Init Time-stamp   | Temperature fp.t_amb | Upper Non-critical going high | Reading 31 > Threshold 30 degrees C
200 | Pre-Init Time-stamp   | Power Supply ps1.pwrok | State Deasserted
300 | Pre-Init Time-stamp   | Entity Presence ps1.prsnt | Device Present

Certain qualifiers are available to refine and limit the SEL output. If you want to see only the first NUM records, add that as a qualifier to the command. If you want to see the last NUM records, use that qualifier. For example, to see the last three records in the SEL, type the following command:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sel elist last 3
800 | Pre-Init Time-stamp   | Entity Presence ps1.prsnt | Device Absent900 | Pre-Init Time-stamp | Phys Security sys.intsw | Gen Chassis intrusiona00 | Pre-Init Time-stamp   | Entity Presence ps0.prsnt | Device Present

If you want to get more detailed information on a particular event, you can use the sel get ID command, in which you specify an SEL record ID. For example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sel get 0x0a00
SEL Record ID 	: 0a00Record Type 	: 02Timestamp 	: 07/06/1970 01:53:58Generator ID 	: 0020EvM Revision 	: 04Sensor Type 	: Entity PresenceSensor Number 	: 12Event Type 	: Generic DiscreteEvent Direction 	: Assertion EventEvent Data (RAW) 	: 01ffffDescription 	: Device Present
Sensor ID 	: ps0.prsnt (0x12)Entity ID 	: 10.0Sensor Type (Discrete): Entity PresenceStates Asserted 	: Availability State	[Device Present]

In the example above, this particular event describes that Power Supply #0 is detected and present.

Clearing the SEL With IPMItool

To clear the SEL, type the sel clear command:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sel clear
Clearing SEL. Please allow a few seconds to erase.

Using the Sensor Data Repository (SDR) Cache

When working with the ILOM SP, certain operations can be expensive in terms of execution time and the amount of data transferred. Typically, issuing the sdr elist command requires the entire SDR to be read from the SP. Similarly, the sel elist command needs to read both the SDR and the SEL from the SP in order to cross-reference events and display useful information.

To speed up these operations, it is possible to pre-cache the static data in the SDR and feed it back into IPMItool. This can have a dramatic effect in the processing time for some commands. In order to generate an SDR cache for later use, type the sdr dump command. For example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sdr dump galaxy.sdr
Dumping Sensor Data Repository to 'galaxy.sdr'

After you have generated a cache file, it can be supplied to future invocations of IPMItool with the -S option. For example:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme -S galaxy.sdr sel elist
100 | Pre-Init Time-stamp | Entity Presence ps1.prsnt | Device Absent200 | Pre-Init Time-stamp | Entity Presence io.f0.prsnt | Device Absent300 | Pre-Init Time-stamp | Power Supply ps0.vinok | State Asserted...

Sensor Numbers and Sensor Names in SEL Events

Depending on which IPMI command you use, the sensor number that is displayed for an event might appear in slightly different formats. See the following examples:

The output from certain commands might not display the sensor name along with the corresponding sensor number. To see all sensor names in your server mapped to the corresponding sensor numbers, you can use the following command:

ipmitool -H 129.144.82.21 -U root -P changeme sdr elist 
sys.id           | 00h | ok  | 23.0 | State Asserted
sys.intsw        | 01h | ok  | 23.0 |
sys.psfail     | 02h | ok  | 23.0 | Predictive Failure Asserted ...

In the sample output above, the sensor name is in the first column and the corresponding sensor number is in the second column.

For a detailed explanation of each sensor, listed by name, refer to the Integrated Lights Out Manager Supplement.


Viewing Component Information With IPMItool

You can view information about system hardware components. The software refers to these components as field-replaceable unit (FRU) devices.

To read the FRU inventory information on these servers, you must first have the FRU ROMs programmed. After that is done, you can see a full list of the available FRU data by using the fru print command, as shown in the following example (only two FRU devices are shown in the example, but all devices would be shown).

ipmitool -I lanplus -H <IPADDR> -U root -P changeme fru print
FRU Device Description : Builtin FRU Device (ID 0)	Board Mfg             : BENCHMARK ELECTRONICS	Board Product         : ASSY,SERV PROCESSOR,X4X00	Board Serial          : 0060HSV-0523000195	Board Part Number     : 501-6979-02	Board Extra           : 000-000-00	Board Extra           : HUNTSVILLE,AL,USA	Board Extra           : b302	Board Extra           : 06	Board Extra           : GRASP	Product Manufacturer  : SUN MICROSYSTEMS	Product Name          : ILOM
FRU Device Description : sp.net0.fru (ID 2)	Product Manufacturer  : MOTOROLA	Product Name          : FAST ETHERNET CONTROLLER	Product Part Number   : MPC8248 FCC	Product Serial        : 00:03:BA:D8:73:AC	Product Extra         : 01	Product Extra         : 00:03:BA:D8:73:AC

...


Viewing and Setting Status LEDs

In these servers, all LEDS are activity-oriented; that is, the SP is responsible for the I2C commands that assert and deassert each GPIO pin for each flash cycle.

The IPMItool command for reading LED status is:

ipmitool -I lanplus -H <IPADDR> sunoem led get <sensor ID>

The IPMItool command for setting LED status is:

ipmitool -I lanplus -H <IPADDR> sunoem led set <sensor ID> <LED mode>

It is possible for both of these commands to operate on all sensors at once by substituting all for the sensor ID. That way, you can easily get a list of all LEDs and their status with one command.

See LED Sensor IDs and LED Modes for information about the variables in these commands.

LED Sensor IDs

All LEDs in this server are represented by two sensors:

Each LED has both a descriptor and a status reading sensor, and the two are linked; that is, if you use the .led sensor to turn on a particular LED, then the status change is represented in the associated .fail sensor. Also, for some of these, an event is generated in the SEL. For LEDs that blink on failure instead of steady-on, the events are not generated (this is because it would display an event every time the LED flashed in the blink cycle).

TABLE 12-2 lists the LED sensor IDs in these servers. See Identifying Status and Fault LEDs for diagrams of the LED locations.


TABLE 12-2 LED Sensor IDs

LED Sensor ID

Description

sys.power.led

System Power (front+back)

sys.locate.led

System Locate (front+back)

sys.alert.led

System Alert (front+back)

sys.psfail.led

System Power Supply Failed

sys.tempfail.led

System Over Temperature

sys.fanfail.led

System Fan Failed

bp.power.led

Back Panel Power

bp.locate.led

Back Panel Locate

bp.alert.led

Back Panel Alert

fp.power.led

Front Panel Power

fp.locate.led

Front Panel Locate

fp.alert.led

Front Panel Alert

io.hdd0.led

Hard Disk 0 Failed

io.hdd1.led

Hard Disk 1 Failed

io.hdd2.led

Hard Disk 2 Failed

io.hdd3.led

Hard Disk 3 Failed

io.f0.led

I/O Fan Failed

p0.led

CPU 0 Failed

p0.d0.led

CPU 0 DIMM 0 Failed

p0.d1.led

CPU 0 DIMM 1 Failed

p0.d2.led

CPU 0 DIMM 2 Failed

p0.d3.led

CPU 0 DIMM 3 Failed

p1.led

CPU 1 Failed

p1.d0.led

CPU 1 DIMM 0 Failed

p1.d1.led

CPU 1 DIMM 1 Failed

p1.d2.led

CPU 1 DIMM 2 Failed

p1.d3.led

CPU 1 DIMM 3 Failed

ft0.fm0.led

Fan Tray 0 Module 0 Failed

ft0.fm1.led

Fan Tray 0 Module 1 Failed

ft0.fm2.led

Fan Tray 0 Module 2 Failed

ft1.fm0.led

Fan Tray 1 Module 0 Failed

ft1.fm1.led

Fan Tray 1 Module 1 Failed

ft1.fm2.led

Fan Tray 1 Module 2 Failed


LED Modes

You supply the modes in TABLE 12-3 to the led set commands to specify the mode in which you want the LED to be placed.


TABLE 12-3 LED Modes

Mode

Description

OFF

LED off

ON

LED steady-on

STANDBY

100 ms on, 2900 ms off

SLOW

1 Hz blink rate

FAST

4 Hz blink rate


LED Sensor Groups

Because each LED has its own sensor and can be controlled independently, there is some overlap in sensors. In particular, there are separate LEDs defined for the power, locate, and alert LEDs on the front and back panels.

It is desirable to have these sensors “linked” so that both the front and back panel LEDs can be controlled at the same time. This is handled through the use of Entity Association Records. These are records in the SDR that contain a list of entities that are considered part of a group.

For each Entity Association Record we also define another Generic Device Locator as a logical entity to indicate to system software that it refers to a group of LEDS rather than a single physical LED. TABLE 12-4 describes the LED sensor groups.


TABLE 12-4 LED Sensor Groups

Group Name

Sensors in Group

sys.power.led

bp.power.led
fp.power.led

sys.locate.led

bp.locate.led
fp.locate.led

sys.alert.led

bp.alert.led
fp.alert.led


For example, to set both the front and back panel Power/OK LEDs to a standby blink rate, you could type the following command:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sunoem led set sys.power.led standby
Set LED fp.power.led to STANDBYSet LED bp.power.led to STANDBY

You could turn off the back panel Power/OK LED but leave the front panel Power/OK LED blinking by typing the following command:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme sunoem led set bp.power.led off
Set LED bp.power.led to OFF

Using IPMItool Scripts for Testing

For testing purposes, it is often useful to change the status of all (or at least several) LEDs at once. You can do this by constructing an IPMItool script and executing it with the exec command.

The following example shows a script to turn on all fan module LEDS:

sunoem led set ft0.fm0.led onsunoem led set ft0.fm1.led onsunoem led set ft0.fm2.led onsunoem led set ft1.fm0.led onsunoem led set ft1.fm1.led onsunoem led set ft1.fm2.led on

If this script file were then named leds_fan_on.isc, you would use it in a command as follows:

ipmitool -I lanplus -H <IPADDR> -U root -P changeme exec leds_fan_on.isc