1*c18ec02fSPetter Reinholdtsen 2*c18ec02fSPetter Reinholdtsen ipmitool 3*c18ec02fSPetter Reinholdtsen Duncan Laurie 4*c18ec02fSPetter Reinholdtsen ipmitool-devel@lists.sourceforge.net 5*c18ec02fSPetter Reinholdtsen 6*c18ec02fSPetter ReinholdtsenOverview 7*c18ec02fSPetter Reinholdtsen======== 8*c18ec02fSPetter Reinholdtsenipmitool is a utility for managing and configuring devices that support 9*c18ec02fSPetter Reinholdtsenthe Intelligent Platform Management Interface. IPMI is an open standard 10*c18ec02fSPetter Reinholdtsenfor monitoring, logging, recovery, inventory, and control of hardware 11*c18ec02fSPetter Reinholdtsenthat is implemented independent of the main CPU, BIOS, and OS. The 12*c18ec02fSPetter Reinholdtsenservice processor (or Baseboard Management Controller, BMC) is the brain 13*c18ec02fSPetter Reinholdtsenbehind platform management and its primary purpose is to handle the 14*c18ec02fSPetter Reinholdtsenautonomous sensor monitoring and event logging features. 15*c18ec02fSPetter Reinholdtsen 16*c18ec02fSPetter ReinholdtsenThe ipmitool program provides a simple command-line interface to this BMC. 17*c18ec02fSPetter ReinholdtsenIt features the ability to read the sensor data repository (SDR) and print 18*c18ec02fSPetter Reinholdtsensensor values, display the contents of the System Event Log (SEL), print 19*c18ec02fSPetter ReinholdtsenField Replaceable Unit (FRU) inventory information, read and set LAN 20*c18ec02fSPetter Reinholdtsenconfiguration parameters, and perform remote chassis power control. 21*c18ec02fSPetter Reinholdtsen 22*c18ec02fSPetter Reinholdtsen 23*c18ec02fSPetter ReinholdtsenBackground 24*c18ec02fSPetter Reinholdtsen========== 25*c18ec02fSPetter ReinholdtsenI originally wrote ipmitool while between projects and employeed at Sun 26*c18ec02fSPetter ReinholdtsenMicrosystems. Sun had just embarked on a new line of general-purpose x86 27*c18ec02fSPetter Reinholdtsenservers that inclued an OEM Intel board with an IPMIv1.5 BMC on board. 28*c18ec02fSPetter ReinholdtsenIt started with an idea that remote chassis power control would be a handy 29*c18ec02fSPetter Reinholdtsenfeature for my systems in the lab and from there it grew into a multi- 30*c18ec02fSPetter Reinholdtsenpurpose tool that lots of people found useful. I decided to release it 31*c18ec02fSPetter Reinholdtsenunder a BSD license and give others the chance to make use of it. 32*c18ec02fSPetter Reinholdtsen 33*c18ec02fSPetter Reinholdtsenipmitool was not written to provide large-scale (aka Enterprise) management 34*c18ec02fSPetter Reinholdtsenapplication functionality. The functionality that ipmitool proivides is 35*c18ec02fSPetter Reinholdtseneasily accomplished by sending simple IPMI request messages and parsing 36*c18ec02fSPetter Reinholdtsenthe returned response. It is intended to be used by system administrators 37*c18ec02fSPetter Reinholdtsenwho like the simplicity and scriptability of command-line utilities, as 38*c18ec02fSPetter Reinholdtsenwell as those debugging or developing their own BMC implementations. 39*c18ec02fSPetter Reinholdtsen 40*c18ec02fSPetter Reinholdtsen 41*c18ec02fSPetter ReinholdtsenRequirements 42*c18ec02fSPetter Reinholdtsen============ 43*c18ec02fSPetter ReinholdtsenObviously the largest requirement is hardware with a service processor 44*c18ec02fSPetter Reinholdtsenthat supports the IPMI specification. Many x86-based servers are now 45*c18ec02fSPetter Reinholdtsencomming with IPMI support, check with your preferred hardware vendor 46*c18ec02fSPetter Reinholdtsenabout available prodcuts. 47*c18ec02fSPetter Reinholdtsen 48*c18ec02fSPetter ReinholdtsenOnce you are certain you have the required hardware, you then need to 49*c18ec02fSPetter Reinholdtsendecide how you want to access the BMC. The most common case involve 50*c18ec02fSPetter Reinholdtsenaccess through the System Interface or over the LAN. (or serial, but 51*c18ec02fSPetter Reinholdtsencurrently ipmitool does not support the serial interface) 52*c18ec02fSPetter Reinholdtsen 53*c18ec02fSPetter Reinholdtsen 54*c18ec02fSPetter ReinholdtsenSystem Interface 55*c18ec02fSPetter Reinholdtsen---------------- 56*c18ec02fSPetter ReinholdtsenThere are multiple types of system interfaces, but they are all similar 57*c18ec02fSPetter Reinholdtsenenough to allow a single well-designed driver to support them all. 58*c18ec02fSPetter ReinholdtsenDifferent types of system interfaces include Keyboard Controller Style 59*c18ec02fSPetter Reinholdtsen(KCS), Block Transfer (BT), System Management Interface Chip (SMIC) and 60*c18ec02fSPetter ReinholdtsenSMBus. Different hardware vendors will have different preference and 61*c18ec02fSPetter Reinholdtsenimplementations. 62*c18ec02fSPetter Reinholdtsen 63*c18ec02fSPetter ReinholdtsenOn Linux the OpenIPMI kernel driver should support all of these system 64*c18ec02fSPetter Reinholdtseninterfaces and it should be a simple matter of loading the right 65*c18ec02fSPetter Reinholdtsenkernel modules and setting up the device node to use it. The driver 66*c18ec02fSPetter Reinholdtsenmodule names vary slightly in different kernel versions, but for all 67*c18ec02fSPetter Reinholdtsenreleases you need these two modules: 68*c18ec02fSPetter Reinholdtsen 69*c18ec02fSPetter Reinholdtsen ipmi_msghandler: incoming and outgoing message handler 70*c18ec02fSPetter Reinholdtsen ipmi_devintf: character device interface to IPMI driver 71*c18ec02fSPetter Reinholdtsen 72*c18ec02fSPetter ReinholdtsenFor 2.4.x and early 2.6.x kernels you need to choose a module based on 73*c18ec02fSPetter Reinholdtsenthe type of system interface your hardware supports. For example: 74*c18ec02fSPetter Reinholdtsen 75*c18ec02fSPetter Reinholdtsen ipmi_kcs_drv: Keyboard Controller Style driver 76*c18ec02fSPetter Reinholdtsen 77*c18ec02fSPetter ReinholdtsenMore recent 2.6.x kernels have combined these into a single module: 78*c18ec02fSPetter Reinholdtsen 79*c18ec02fSPetter Reinholdtsen ipmi_si: a universal IPMI system interface driver 80*c18ec02fSPetter Reinholdtsen 81*c18ec02fSPetter ReinholdtsenSee the documentation that comes with your distribution and/or kernel 82*c18ec02fSPetter Reinholdtsenfor more information on what kernel modules are required. Once the 83*c18ec02fSPetter Reinholdtsenrequired modules are loaded and the driver has found a suitable system 84*c18ec02fSPetter Reinholdtseninterface to the BMC then you need to ensure the device node at 85*c18ec02fSPetter Reinholdtsen/dev/ipmi0 is pointing at the correct major number. 86*c18ec02fSPetter Reinholdtsen 87*c18ec02fSPetter ReinholdtsenThis is because OpenIPMI is given a dynamically assigned major number 88*c18ec02fSPetter Reinholdtsenwhen it is loaded, but depending on what other modules are present 89*c18ec02fSPetter Reinholdtsenthis number may be anywhere from 254 on down. The easiest way to tell 90*c18ec02fSPetter Reinholdtsenis to check the output of /proc/devices and see what major number the 91*c18ec02fSPetter Reinholdtsen"ipmidev" device is assigned to. 92*c18ec02fSPetter Reinholdtsen 93*c18ec02fSPetter ReinholdtsenThere is a sample script included with ipmitool called ipmi.init that 94*c18ec02fSPetter Reinholdtsencan be used to automate this process at bootup. 95*c18ec02fSPetter Reinholdtsen 96*c18ec02fSPetter Reinholdtsen 97*c18ec02fSPetter ReinholdtsenLAN Interface 98*c18ec02fSPetter Reinholdtsen------------- 99*c18ec02fSPetter ReinholdtsenThis is often referred to as "IPMI-over-LAN" and defines how IPMI messages 100*c18ec02fSPetter Reinholdtsencan be sent to and from the BMC encapsulated in Remote Management Control 101*c18ec02fSPetter ReinholdtsenProtocol (RMCP) packets which are then transferred as UDP datagrams. 102*c18ec02fSPetter Reinholdtsen 103*c18ec02fSPetter ReinholdtsenIPMI-over-LAN is only supported with version 1.5 and higher of the IPMI 104*c18ec02fSPetter Reinholdtsenspecification. The RMCP packet format is defined by the Alert Standard 105*c18ec02fSPetter ReinholdtsenForum, and it has been followed up with the RMCP+ protocol that adds 106*c18ec02fSPetter Reinholdtsenencryption and payload support. The IPMIv2 specification was updated 107*c18ec02fSPetter Reinholdtsenaccordingly to to support the RMCP+ protocol and brings with it enhanced 108*c18ec02fSPetter Reinholdtsensecurity with encryption as well as support for Serial over LAN. 109*c18ec02fSPetter Reinholdtsen 110*c18ec02fSPetter ReinholdtsenThere are different types of LAN interfaces as well. Some systems have 111*c18ec02fSPetter Reinholdtsenshared management networks where the NIC will intercept UDP packets to 112*c18ec02fSPetter Reinholdtsenport 623 and redirect them to the BMC over SMBUS. This type of LAN 113*c18ec02fSPetter Reinholdtseninterface requires that the BMC be configured with the same settings that 114*c18ec02fSPetter Reinholdtsenthe system uses. It also suffers from an increased security risk just by 115*c18ec02fSPetter Reinholdtsenthe nature of sharing that interface with normal traffic. 116*c18ec02fSPetter Reinholdtsen 117*c18ec02fSPetter ReinholdtsenI have also seen bugs in some implementations that have rendered the 118*c18ec02fSPetter ReinholdtsenIPMI-over-LAN feature "dangerous" to enable in some situations. (in 119*c18ec02fSPetter Reinholdtsenparticular there can be an issue with RPC because it will sometimes choose 120*c18ec02fSPetter Reinholdtsento use port 623 and you will lose response packets...) 121*c18ec02fSPetter Reinholdtsen 122*c18ec02fSPetter ReinholdtsenThere is a sample shell script included with ipmitool called bmclanconf 123*c18ec02fSPetter Reinholdtsenthat can be used to simplify the LAN settings configuration process using 124*c18ec02fSPetter Reinholdtsenthe System Interface to configure the settings. In some cases the 125*c18ec02fSPetter Reinholdtsenhardware will come with a utility (often a DOS bootable CD) for configuring 126*c18ec02fSPetter Reinholdtsenenabling the LAN interface as well. 127*c18ec02fSPetter Reinholdtsen 128*c18ec02fSPetter ReinholdtsenIn order to support the IPMIv2.0 interface you must have an OpenSSL library 129*c18ec02fSPetter Reinholdtsenwith the required encrytion functions. Recent distributions should have 130*c18ec02fSPetter Reinholdtsenno problems. The IPMIv1.5 interface will attempt to use OpenSSL for MD5 131*c18ec02fSPetter Reinholdtsenhash function at compile time but if that is not found it will use an 132*c18ec02fSPetter Reinholdtseninternal library. 133*c18ec02fSPetter Reinholdtsen 134*c18ec02fSPetter ReinholdtsenIPMB Dual Bridging in IPMITOOL 135*c18ec02fSPetter Reinholdtsen------------------------------- 136*c18ec02fSPetter Reinholdtsen 137*c18ec02fSPetter ReinholdtsenIPMI offers a standard messaging interface. 138*c18ec02fSPetter Reinholdtsen 139*c18ec02fSPetter ReinholdtsenThe following concepts are related to this messaging interface: 140*c18ec02fSPetter Reinholdtsen 141*c18ec02fSPetter ReinholdtsenChannel type : Communication channel type (SMS/KCS, IPMB, LAN) 142*c18ec02fSPetter ReinholdtsenChannel number : Channel descriptor 143*c18ec02fSPetter ReinholdtsenRequester : Address of the requester 144*c18ec02fSPetter ReinholdtsenResponder : Address of the responder 145*c18ec02fSPetter ReinholdtsenNetFN : The logical function for the request/response. 146*c18ec02fSPetter ReinholdtsenCommand : The command number 147*c18ec02fSPetter ReinholdtsenSequence : An ID identifiying the request/response pair 148*c18ec02fSPetter ReinholdtsenMessage tracking : The ability to match request/response pair. 149*c18ec02fSPetter Reinholdtsen 150*c18ec02fSPetter ReinholdtsenWhen a communication is issued through any of the channels, an application 151*c18ec02fSPetter Reinholdtsenformats a request and expect a response. 152*c18ec02fSPetter Reinholdtsen 153*c18ec02fSPetter ReinholdtsenDirect Command 154*c18ec02fSPetter Reinholdtsen-------------- 155*c18ec02fSPetter ReinholdtsenThe simplest form of communication is a "direct command" using SMS/KCS 156*c18ec02fSPetter Reinholdtsen 157*c18ec02fSPetter ReinholdtsenExample: 158*c18ec02fSPetter Reinholdtsen ipmitool raw 6 4 159*c18ec02fSPetter Reinholdtsen 55 00 160*c18ec02fSPetter Reinholdtsen 161*c18ec02fSPetter ReinholdtsenThis send raw command 4 (selftest) from netfn 6(application) to KCS, the driver 162*c18ec02fSPetter Reinholdtsentakes care of 'message tracking' and provides the answer. 163*c18ec02fSPetter Reinholdtsen 164*c18ec02fSPetter ReinholdtsenHopefully, the application also includes a "human readable" instance of the API: 165*c18ec02fSPetter Reinholdtsen ipmitool mc selftest 166*c18ec02fSPetter Reinholdtsen Selftest: passed 167*c18ec02fSPetter Reinholdtsen 168*c18ec02fSPetter ReinholdtsenBridged Command 169*c18ec02fSPetter Reinholdtsen--------------- 170*c18ec02fSPetter ReinholdtsenOne slightly more complicated communication mode is the so-called 171*c18ec02fSPetter Reinholdtsen"bridged command" using IPMB. 172*c18ec02fSPetter Reinholdtsen 173*c18ec02fSPetter ReinholdtsenExample: 174*c18ec02fSPetter Reinholdtsen ipmitool -m 0x94 -t 0x9a raw 6 4 175*c18ec02fSPetter Reinholdtsen 55 00 176*c18ec02fSPetter Reinholdtsen 177*c18ec02fSPetter Reinholdtsen or 178*c18ec02fSPetter Reinholdtsen 179*c18ec02fSPetter Reinholdtsen ipmitool -m 0x94 -t 0x9a mc selftest 180*c18ec02fSPetter Reinholdtsen Selftest: passed 181*c18ec02fSPetter Reinholdtsen 182*c18ec02fSPetter Reinholdtsen 183*c18ec02fSPetter ReinholdtsenThis still sends the same command 4 (selftest) from netfn 6(application) to 184*c18ec02fSPetter Reinholdtsenthe target. However, to do so, the command is encapsulated (by the driver) and 185*c18ec02fSPetter Reinholdtsensent using the command 0x34 (send message) from netfn 6(application) to KCS. 186*c18ec02fSPetter ReinholdtsenThen KCS is polled by the driver until a message has been received, then the 187*c18ec02fSPetter Reinholdtsendriver uses command 0x33 (get message). The driver also tracks the message 188*c18ec02fSPetter Reinholdtsenand makes sure the response matches the request. Then it decapsultates the 189*c18ec02fSPetter Reinholdtsenmessage and gives the response back to the application. 190*c18ec02fSPetter Reinholdtsen 191*c18ec02fSPetter ReinholdtsenDual Bridged Command 192*c18ec02fSPetter Reinholdtsen-------------------- 193*c18ec02fSPetter ReinholdtsenThings get a little more ugly when the application needs to reach a management 194*c18ec02fSPetter Reinholdtsencontroller sitting on an interface (or channel) not directly connected to the 195*c18ec02fSPetter ReinholdtsenBMC/IPMC. In the case the application must encapsulate its message itself and 196*c18ec02fSPetter Reinholdtsenrequest the IPMC to deal with message tracking itself. 197*c18ec02fSPetter Reinholdtsen 198*c18ec02fSPetter ReinholdtsenIts been working well with IPMITOOL on the LAN interface with: 199*c18ec02fSPetter Reinholdtsen ipmitool -H <ip> -U <user> -P <password> -B 0 -T 0x8a -m 0x20 -t 0x7a -b 7 200*c18ec02fSPetter Reinholdtsen mc selftest 201*c18ec02fSPetter Reinholdtsen 202*c18ec02fSPetter ReinholdtsenHowever, trying to dual bridge commands locally with : 203*c18ec02fSPetter Reinholdtsen ipmitool -B 0 -T 0x9a -m 0x94 -t 0x7a -b 7 mc selftest didn't work 204*c18ec02fSPetter Reinholdtsen (it returned the same data as ipmitool -m 0x20 -t 0x7a -b 7 mc selftest ) 205*c18ec02fSPetter Reinholdtsen 206*c18ec02fSPetter ReinholdtsenThe reason was that the "openipmi" interface pluging didn't 207*c18ec02fSPetter Reinholdtsenencapsulate/decapsulate the message and didn't even detect the intent 208*c18ec02fSPetter Reinholdtsento double bridge the request. 209*c18ec02fSPetter Reinholdtsen 210*c18ec02fSPetter Reinholdtsen ./src/ipmitool -B 0 -T 0x8a -m 0x94 -t 0x7a -b 7 mc selftest 211*c18ec02fSPetter Reinholdtsen 212*c18ec02fSPetter Reinholdtsen-B 0 : transit channel for first bridge level (channel 0: IPMB-0) 213*c18ec02fSPetter Reinholdtsen-T 0x8a : transit destination address (remote IPMC address) 214*c18ec02fSPetter Reinholdtsen-m 0x94 : source address (local IPMC address on IPMB-0) 215*c18ec02fSPetter Reinholdtsen-t 0x7a : remote target (AMC IPMB-L address) 216*c18ec02fSPetter Reinholdtsen-b 7 : remote channel (channel 7: IPMB-L) 217*c18ec02fSPetter Reinholdtsen 218*c18ec02fSPetter ReinholdtsenThe transit source address (remote IPMC address on remote channel) is 219*c18ec02fSPetter Reinholdtsenautomatically assigned by the remote IPMC. 220*c18ec02fSPetter Reinholdtsen 221*c18ec02fSPetter ReinholdtsenPayload Size Limit 222*c18ec02fSPetter Reinholdtsen------------------ 223*c18ec02fSPetter ReinholdtsenBecause some commands return a lot of data (fru read/get sdr) and because 2 224*c18ec02fSPetter Reinholdtsenlevels of encapsulation are used, some command will fail. 225*c18ec02fSPetter Reinholdtsen 226*c18ec02fSPetter ReinholdtsenFor instance this works. 227*c18ec02fSPetter Reinholdtsen 228*c18ec02fSPetter Reinholdtsenipmitool -H <ip> -U <user> -P <password> -B 0 -T 0x8a -m 0x94 -t 0x7a -b 7 229*c18ec02fSPetter Reinholdtsen mc selftest 230*c18ec02fSPetter Reinholdtsen 231*c18ec02fSPetter Reinholdtsenbut this does not: 232*c18ec02fSPetter Reinholdtsen 233*c18ec02fSPetter Reinholdtsenipmitool -H <ip> -U <user> -P <password> -B 0 -T 0x8a -m 0x94 -t 0x7a -b 7 234*c18ec02fSPetter Reinholdtsen fru print. 235*c18ec02fSPetter Reinholdtsen 236*c18ec02fSPetter Reinholdtsen 237*c18ec02fSPetter Reinholdtsen 238*c18ec02fSPetter ReinholdtsenUsage 239*c18ec02fSPetter Reinholdtsen===== 240*c18ec02fSPetter ReinholdtsenAll invocations of ipmitool require specifying an interface to use, unless 241*c18ec02fSPetter Reinholdtsenyou want to use the default interface as set at compile time. Each call 242*c18ec02fSPetter Reinholdtsenmust also specify a command to run. You can see the list of supported 243*c18ec02fSPetter Reinholdtseninterfaces and which is default as well as a list of top level commands in 244*c18ec02fSPetter Reinholdtsenthe usage output available with the -h option: 245*c18ec02fSPetter Reinholdtsen 246*c18ec02fSPetter Reinholdtsenusage: ipmitool [options...] <command> 247*c18ec02fSPetter Reinholdtsen 248*c18ec02fSPetter Reinholdtsen -h This help 249*c18ec02fSPetter Reinholdtsen -V Show version information 250*c18ec02fSPetter Reinholdtsen -v Verbose (can use multiple times) 251*c18ec02fSPetter Reinholdtsen -c Display output in comma separated format 252*c18ec02fSPetter Reinholdtsen -I intf Interface to use 253*c18ec02fSPetter Reinholdtsen -H hostname Remote host name for LAN interface 254*c18ec02fSPetter Reinholdtsen -p port Remote RMCP port [default=623] 255*c18ec02fSPetter Reinholdtsen -L level Remote session privilege level [default=USER] 256*c18ec02fSPetter Reinholdtsen -A authtype Force use of authtype NONE, PASSWORD, MD2 or MD5 257*c18ec02fSPetter Reinholdtsen -U username Remote session username 258*c18ec02fSPetter Reinholdtsen -P password Remote session password 259*c18ec02fSPetter Reinholdtsen -f file Read remote session password from file 260*c18ec02fSPetter Reinholdtsen -a Prompt for remote password 261*c18ec02fSPetter Reinholdtsen -E Read password from IPMI_PASSWORD environment variable 262*c18ec02fSPetter Reinholdtsen -m address Set local IPMB address 263*c18ec02fSPetter Reinholdtsen -t address Bridge request to remote target address 264*c18ec02fSPetter Reinholdtsen 265*c18ec02fSPetter ReinholdtsenInterfaces: 266*c18ec02fSPetter Reinholdtsen open Linux OpenIPMI Interface [default] 267*c18ec02fSPetter Reinholdtsen imb Intel IMB Interface 268*c18ec02fSPetter Reinholdtsen lan IPMI v1.5 LAN Interface 269*c18ec02fSPetter Reinholdtsen lanplus IPMI v2.0 RMCP+ LAN Interface 270*c18ec02fSPetter Reinholdtsen 271*c18ec02fSPetter ReinholdtsenCommands: 272*c18ec02fSPetter Reinholdtsen raw Send a RAW IPMI request and print response 273*c18ec02fSPetter Reinholdtsen lan Configure LAN Channels 274*c18ec02fSPetter Reinholdtsen chassis Get chassis status and set power state 275*c18ec02fSPetter Reinholdtsen event Send pre-defined events to BMC 276*c18ec02fSPetter Reinholdtsen bmc Print BMC status and configure global enables 277*c18ec02fSPetter Reinholdtsen sdr Print Sensor Data Repository entries and readings 278*c18ec02fSPetter Reinholdtsen sensor Print detailed sensor information 279*c18ec02fSPetter Reinholdtsen fru Print built-in FRU and scan SDR for FRU locators 280*c18ec02fSPetter Reinholdtsen sel Print System Evelnt Log 281*c18ec02fSPetter Reinholdtsen sol Configure IPMIv2.0 Serial-over-LAN 282*c18ec02fSPetter Reinholdtsen user Configure BMC users 283*c18ec02fSPetter Reinholdtsen channel Configure BMC channels 284*c18ec02fSPetter Reinholdtsen session Print session information 285*c18ec02fSPetter Reinholdtsen shell Launch interactive IPMI shell 286*c18ec02fSPetter Reinholdtsen exec Run list of commands from file 287*c18ec02fSPetter Reinholdtsen set Set runtime variable for shell and exec 288*c18ec02fSPetter Reinholdtsen 289*c18ec02fSPetter Reinholdtsen 290*c18ec02fSPetter ReinholdtsenCommands 291*c18ec02fSPetter Reinholdtsen======== 292*c18ec02fSPetter ReinholdtsenMore help on the supported commands can be found by running them with the 293*c18ec02fSPetter Reinholdtsenhelp argument, for example "chassis help". There are a few commands with 294*c18ec02fSPetter Reinholdtsenspecial meaning: 295*c18ec02fSPetter Reinholdtsen 296*c18ec02fSPetter Reinholdtsen> shell: This command will launch an shell interface to the ipmitool 297*c18ec02fSPetter Reinholdtsen command set. You can use this for interactively entering commands to 298*c18ec02fSPetter Reinholdtsen monitor system status. An example session: 299*c18ec02fSPetter Reinholdtsen 300*c18ec02fSPetter Reinholdtsen# ipmitool -I open shell 301*c18ec02fSPetter Reinholdtsenipmitool> chassis status 302*c18ec02fSPetter ReinholdtsenSystem Power : off 303*c18ec02fSPetter ReinholdtsenPower Overload : false 304*c18ec02fSPetter ReinholdtsenPower Interlock : inactive 305*c18ec02fSPetter ReinholdtsenMain Power Fault : false 306*c18ec02fSPetter ReinholdtsenPower Control Fault : false 307*c18ec02fSPetter ReinholdtsenPower Restore Policy : always-off 308*c18ec02fSPetter ReinholdtsenLast Power Event : command 309*c18ec02fSPetter ReinholdtsenChassis Intrusion : active 310*c18ec02fSPetter ReinholdtsenFront-Panel Lockout : inactive 311*c18ec02fSPetter ReinholdtsenDrive Fault : false 312*c18ec02fSPetter ReinholdtsenCooling/Fan Fault : false 313*c18ec02fSPetter Reinholdtsenipmitool> user list 7 314*c18ec02fSPetter ReinholdtsenID Name Callin Link Auth IPMI Msg Channel Priv Limit 315*c18ec02fSPetter Reinholdtsen1 true false true ADMINISTRATOR 316*c18ec02fSPetter Reinholdtsenipmitool> exit 317*c18ec02fSPetter Reinholdtsen 318*c18ec02fSPetter Reinholdtsen> exec: This command will read a text file and execute ipmitool commands 319*c18ec02fSPetter Reinholdtsen in sequence. It can be used for scriptable commands: 320*c18ec02fSPetter Reinholdtsen 321*c18ec02fSPetter Reinholdtsen# cat lansetup.scr 322*c18ec02fSPetter Reinholdtsenlan set 7 ipsrc static 323*c18ec02fSPetter Reinholdtsenlan set 7 ipaddr 10.1.1.10 324*c18ec02fSPetter Reinholdtsenlan set 7 netmask 255.255.255.0 325*c18ec02fSPetter Reinholdtsenlan set 7 defgw ipaddr 10.1.1.254 326*c18ec02fSPetter Reinholdtsen# ipmitool -I open exec lansetup.scr 327*c18ec02fSPetter ReinholdtsenSetting LAN IP Address to 10.1.1.10 328*c18ec02fSPetter ReinholdtsenSetting Lan Subnet Mask to 255.255.255.0 329*c18ec02fSPetter ReinholdtsenSetting Lan Default Gateway IP to 10.1.1.254 330*c18ec02fSPetter Reinholdtsen 331*c18ec02fSPetter Reinholdtsen> set: This command can be used by the shell and exec modes to configure 332*c18ec02fSPetter Reinholdtsen various session parameters: 333*c18ec02fSPetter Reinholdtsen 334*c18ec02fSPetter Reinholdtsen hostname <host> Session hostname 335*c18ec02fSPetter Reinholdtsen username <user> Session username 336*c18ec02fSPetter Reinholdtsen password <pass> Session password 337*c18ec02fSPetter Reinholdtsen privlvl <level> Session privilege level force 338*c18ec02fSPetter Reinholdtsen authtype <type> Authentication type force 339*c18ec02fSPetter Reinholdtsen localaddr <addr> Local IPMB address 340*c18ec02fSPetter Reinholdtsen targetaddr <addr> Remote target IPMB address 341*c18ec02fSPetter Reinholdtsen port <port> Remote RMCP port 342*c18ec02fSPetter Reinholdtsen csv [level] enable output in comma separated format 343*c18ec02fSPetter Reinholdtsen verbose [level] Verbose level 344*c18ec02fSPetter Reinholdtsen 345*c18ec02fSPetter Reinholdtsen# cat getstatus.scr 346*c18ec02fSPetter Reinholdtsenset hostname sf-v20z-1 347*c18ec02fSPetter Reinholdtsenset password admin 348*c18ec02fSPetter Reinholdtsenchassis status 349*c18ec02fSPetter Reinholdtsen# ipmitool -I lan exec getstatus.scr 350*c18ec02fSPetter ReinholdtsenSet session hostname to lx50 351*c18ec02fSPetter ReinholdtsenSet session password 352*c18ec02fSPetter ReinholdtsenSystem Power : off 353*c18ec02fSPetter ReinholdtsenPower Overload : false 354*c18ec02fSPetter ReinholdtsenPower Interlock : inactive 355*c18ec02fSPetter ReinholdtsenMain Power Fault : false 356*c18ec02fSPetter ReinholdtsenPower Control Fault : false 357*c18ec02fSPetter ReinholdtsenPower Restore Policy : always-off 358*c18ec02fSPetter ReinholdtsenLast Power Event : command 359*c18ec02fSPetter ReinholdtsenChassis Intrusion : active 360*c18ec02fSPetter ReinholdtsenFront-Panel Lockout : inactive 361*c18ec02fSPetter ReinholdtsenDrive Fault : false 362*c18ec02fSPetter ReinholdtsenCooling/Fan Fault : false 363*c18ec02fSPetter Reinholdtsen 364*c18ec02fSPetter Reinholdtsen 365*c18ec02fSPetter Reinholdtsenipmievd 366*c18ec02fSPetter Reinholdtsen======= 367*c18ec02fSPetter ReinholdtsenIncluded with ipmitool is another utility called ipmievd that is a daemon 368*c18ec02fSPetter Reinholdtsenwhich will listen for events from the BMC that are being sent to the SEL 369*c18ec02fSPetter Reinholdtsenand also log those messages to syslog. By default when run (as root) with 370*c18ec02fSPetter Reinholdtsenno arguments it will daemonize and poll on the OpenIPMI device waiting for 371*c18ec02fSPetter Reinholdtsenan event notification. Upon receipt of an event it will log it to syslog 372*c18ec02fSPetter Reinholdtsenwith the LOG_LOCAL4 facility. You can test ipmievd by sending test events 373*c18ec02fSPetter Reinholdtsenover the LAN interface with ipmitool: 374*c18ec02fSPetter Reinholdtsen 375*c18ec02fSPetter Reinholdtsenremote# ipmievd 376*c18ec02fSPetter Reinholdtsen 377*c18ec02fSPetter Reinholdtsenlocal$ ipmitool -I lan -H lx50 -P admin event help 378*c18ec02fSPetter Reinholdtsenusage: event <num> 379*c18ec02fSPetter Reinholdtsen 1 : Temperature - Upper Critical - Going High 380*c18ec02fSPetter Reinholdtsen 2 : Voltage Threshold - Lower Critical - Going Low 381*c18ec02fSPetter Reinholdtsen 3 : Memory - Correctable ECC 382*c18ec02fSPetter Reinholdtsenlocal$ ipmitool -I lan -H lx50 -P admin event 1 383*c18ec02fSPetter ReinholdtsenSending Temperature - Upper Critical - Going High event to BMC 384*c18ec02fSPetter Reinholdtsenlocal$ ipmitool -I lan -H lx50 -P admin event 2 385*c18ec02fSPetter ReinholdtsenSending Voltage Threshold - Lower Critical - Going Low event to BMC 386*c18ec02fSPetter Reinholdtsenlocal$ ipmitool -I lan -H lx50 -P admin event 3 387*c18ec02fSPetter ReinholdtsenSending Memory - Correctable ECC event to BMC 388*c18ec02fSPetter Reinholdtsen 389*c18ec02fSPetter Reinholdtsenremote# tail /var/log/messages (timestamps removed) 390*c18ec02fSPetter Reinholdtsenipmievd: Waiting for events... 391*c18ec02fSPetter Reinholdtsenipmievd: Temperature Sensor 30 - Upper Critical - going high 392*c18ec02fSPetter Reinholdtsenipmievd: Voltage Sensor 60 - Lower Critical - going low 393*c18ec02fSPetter Reinholdtsenipmievd: Memory Sensor 01 - Correctable ECC 394*c18ec02fSPetter Reinholdtsen 395*c18ec02fSPetter Reinholdtsen 396*c18ec02fSPetter ReinholdtsenResources 397*c18ec02fSPetter Reinholdtsen========= 398*c18ec02fSPetter ReinholdtsenIPMItool homepage 399*c18ec02fSPetter Reinholdtsenhttp://ipmitool.sourceforge.net 400*c18ec02fSPetter Reinholdtsen 401*c18ec02fSPetter ReinholdtsenIPMItool manpage 402*c18ec02fSPetter Reinholdtsenhttp://ipmitool.sourceforge.net/manpage.html 403*c18ec02fSPetter Reinholdtsen 404*c18ec02fSPetter ReinholdtsenIPMItool overview paper from Linux.conf.au 2004 405*c18ec02fSPetter Reinholdtsenhttp://ipmitool.sourceforge.net/lca2004_ipmitool.pdf 406*c18ec02fSPetter Reinholdtsen 407*c18ec02fSPetter ReinholdtsenIntelligent Platform Management Interface specification 408*c18ec02fSPetter Reinholdtsenhttp://www.intel.com/design/servers/ipmi/spec.htm 409*c18ec02fSPetter Reinholdtsen 410*c18ec02fSPetter ReinholdtsenOpenIPMI project: Linux IPMI kernel driver and userland library 411*c18ec02fSPetter Reinholdtsenhttp://openipmi.sourceforge.net 412*c18ec02fSPetter Reinholdtsen 413*c18ec02fSPetter ReinholdtsenIPMItool commit archive 414*c18ec02fSPetter Reinholdtsenhttps://lists.sourceforge.net/lists/listinfo/ipmitool-cvs 415