xref: /openbmc/ipmitool/README (revision c18ec02f)
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