1IPMI-DCMI(8)                    System Commands                   IPMI-DCMI(8)
2
3
4

NAME

6       ipmi-dcmi - IPMI DCMI utility
7

SYNOPSIS

9       ipmi-dcmi [OPTION...]
10

DESCRIPTION

12       Ipmi-dcmi is used to execute Data Center Manageability Interface (often
13       referred to as DCM or DCMI) IPMI extension  commands.  DCMI  extensions
14       include  support  for asset management and power usage management. Most
15       will be interested in DCMI for its power management features.  By  con‐
16       figuring  an  exception action, power limit, and correction time limit,
17       power usage in a data center can be managed  more  affectively.  Please
18       see --set-power-limit option below for more information.
19
20       The  DCMI specification encompasses many traditional IPMI features that
21       are not implemented directly in this tool.  Please  see  ipmiconsole(8)
22       for  Serial-over-LAN  (SOL)  support, ipmi-chassis(8) for power status,
23       power  control,  identification,  and  ACPI  power  state  information,
24       ipmipower(8) for power status and power control, ipmi-sel(8) for System
25       Event Log (SEL) information, bmc-info(8) for device and globally unique
26       ID  (guid)  information,  ipmi-sensors(8) for sensor readings, and bmc-
27       config(8) for configuration.
28
29       Listed below are general IPMI options, tool specific  options,  trouble
30       shooting  information,  workaround  information,  examples,  and  known
31       issues. For a general introduction to FreeIPMI please see freeipmi(7).
32

GENERAL OPTIONS

34       The following options are general options for configuring IPMI communi‐
35       cation and executing general tool commands.
36
37       -D, --driver-type=IPMIDRIVER
38              Specify  the  driver type to use instead of doing an auto selec‐
39              tion.  The currently available outofband  drivers  are  LAN  and
40              LAN_2_0,  which  perform IPMI 1.5 and IPMI 2.0 respectively. The
41              currently available inband drivers are KCS, SSIF, OPENIPMI,  and
42              SUNBMC.
43
44       --disable-auto-probe
45              Do not probe in-band IPMI devices for default settings.
46
47       --driver-address=DRIVER-ADDRESS
48              Specify  the  in-band  driver  address to be used instead of the
49              probed value. DRIVER-ADDRESS should be prefixed with "0x" for  a
50              hex value and '0' for an octal value.
51
52       --driver-device=DEVICE
53              Specify the in-band driver device path to be used instead of the
54              probed path.
55
56       --register-spacing=REGISTER-SPACING
57              Specify the in-band  driver  register  spacing  instead  of  the
58              probed value.
59
60       -h, --hostname=IPMIHOST1,IPMIHOST2,...
61              Specify  the  remote host(s) to communicate with. Multiple host‐
62              names may be separated by comma or may be specified in  a  range
63              format; see HOSTRANGED SUPPORT below.
64
65       -u, --username=USERNAME
66              Specify  the username to use when authenticating with the remote
67              host.  If not specified, a null  (i.e.  anonymous)  username  is
68              assumed.  The  user  must have atleast ADMIN privileges in order
69              for this tool to operate fully.
70
71       -p, --password=PASSWORD
72              Specify the password to use when authenticationg with the remote
73              host.   If  not  specified,  a null password is assumed. Maximum
74              password length is 16 for IPMI 1.5 and 20 for IPMI 2.0.
75
76       -P, --password-prompt
77              Prompt for password  to  avoid  possibility  of  listing  it  in
78              process lists.
79
80       -k, --k-g=K_G
81              Specify  the  K_g  BMC  key  to use when authenticating with the
82              remote host for IPMI 2.0.  If  not  specified,  a  null  key  is
83              assumed. To input the key in hexadecimal form, prefix the string
84              with '0x'. E.g., the key 'abc' can be entered  with  the  either
85              the string 'abc' or the string '0x616263'
86
87       -K, --k-g-prompt
88              Prompt  for  k-g  to  avoid possibility of listing it in process
89              lists.
90
91       --session-timeout=MILLISECONDS
92              Specify the session timeout in milliseconds. Defaults  to  20000
93              milliseconds (20 seconds) if not specified.
94
95       --retransmission-timeout=MILLISECONDS
96              Specify  the  packet  retransmission  timeout  in  milliseconds.
97              Defaults to 1000 milliseconds (1 second) if not  specified.  The
98              retransmission  timeout  cannot be larger than the session time‐
99              out.
100
101       -a, --authentication-type=AUTHENTICATION-TYPE
102              Specify the IPMI 1.5 authentication type to use.  The  currently
103              available  authentication types are NONE, STRAIGHT_PASSWORD_KEY,
104              MD2, and MD5. Defaults to MD5 if not specified.
105
106       -I, --cipher-suite-id=CIPHER-SUITE-ID
107              Specify the IPMI 2.0 cipher suite ID to use. The Cipher Suite ID
108              identifies a set of authentication, integrity, and confidential‐
109              ity algorithms to use for IPMI 2.0 communication. The  authenti‐
110              cation  algorithm  identifies  the  algorithm to use for session
111              setup, the integrity algorithm identifies the algorithm  to  use
112              for session packet signatures, and the confidentiality algorithm
113              identifies the algorithm to use for payload encryption. Defaults
114              to  cipher  suite  ID  3  if not specified. The following cipher
115              suite ids are currently supported:
116
117              0 - Authentication Algorithm = None; Integrity Algorithm = None;
118              Confidentiality Algorithm = None
119
120              1  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
121              None; Confidentiality Algorithm = None
122
123              2 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm  =
124              HMAC-SHA1-96; Confidentiality Algorithm = None
125
126              3  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
127              HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
128
129              6 - Authentication Algorithm = HMAC-MD5; Integrity  Algorithm  =
130              None; Confidentiality Algorithm = None
131
132              7  -  Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
133              HMAC-MD5-128; Confidentiality Algorithm = None
134
135              8 - Authentication Algorithm = HMAC-MD5; Integrity  Algorithm  =
136              HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128
137
138              11  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
139              MD5-128; Confidentiality Algorithm = None
140
141              12 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm  =
142              MD5-128; Confidentiality Algorithm = AES-CBC-128
143
144       -l, --privilege-level=PRIVILEGE-LEVEL
145              Specify  the privilege level to be used. The currently available
146              privilege levels are USER,  OPERATOR,  and  ADMIN.  Defaults  to
147              ADMIN if not specified.
148
149       --config-file=FILE
150              Specify an alternate configuration file.
151
152       -W, --workaround-flags=WORKAROUNDS
153              Specify  workarounds to vendor compliance issues. Multiple work‐
154              arounds can be specified separated by  commas.  See  WORKAROUNDS
155              below for a list of available workarounds.
156
157       --debug
158              Turn on debugging.
159
160       -?, --help
161              Output a help list and exit.
162
163       --usage
164              Output a usage message and exit.
165
166       -V, --version
167              Output the program version and exit.
168

IPMI-DCMI OPTIONS

170       The following options are specific to Ipmi-dcmi.
171
172       --get-dcmi-capability-info
173              Get DCMI capability information.
174
175       --get-system-power-statistics
176              Get system power statistics.
177
178       --get-enhanced-system-power-statistics
179              Get enhanced system power statistics.
180
181       --get-power-limit
182              Get power limit information.
183
184       --set-power-limit
185              Set power limit configuration. Can specify configuration via the
186              --exception-actions,     --power-limit-requested,      --correc‐
187              tion-time-limit,   and  --correction-time-limit  options  listed
188              below. If one or more options below are not  specified,  current
189              configuration will be utilized.
190
191       --exception-actions=BITMASK
192              Specify  exception  actions  for  set power limit configuration.
193              Special case allowable values: HARD_POWER_OFF_SYSTEM. Other val‐
194              ues  (e.g.  0x02  through 0x10) are OEM dependent. Used with the
195              --set-power-limit option.
196
197       --power-limit-requested=WATTS
198              Specify power limit for set power limit configuration. Input  is
199              specified in watts. Used with the --set-power-limit option.
200
201       --correction-time-limit=MILLISECONDS
202              Specify correction time limit for set power limit configuration.
203              Input   is   specified   in   milliseconds.   Used   with    the
204              --set-power-limit option.
205
206       --statistics-sampling-period=SECONDS
207              Specify  management  application  statistics sampling period for
208              set power limit configuration. Input is  specified  in  seconds.
209              Used with the --set-power-limit option.
210
211       --activate-deactivate-power-limit=OPERATION
212              Activate  or  deactivate  power limit. Allowed values: ACTIVATE,
213              DEACTIVATE.
214
215       --get-asset-tag
216              Get asset tag.
217
218       --get-dcmi-sensor-info
219              Get DCMI sensor information.
220
221       --interpret-oem-data
222              Attempt to interpret OEM data, such as event data, sensor  read‐
223              ings,  or  general  extra info, etc. If an OEM interpretation is
224              not available, the default output will be generated. Correctness
225              of  OEM  interpretations  cannot  be guaranteed due to potential
226              changes OEM vendors may make in products, firmware, etc. See OEM
227              INTERPRETATION  below for confirmed supported motherboard inter‐
228              pretations.
229

HOSTRANGED OPTIONS

231       The following options manipulate hostranged output. See HOSTRANGED SUP‐
232       PORT below for additional information on hostranges.
233
234       -B, --buffer-output
235              Buffer  hostranged output. For each node, buffer standard output
236              until the node has completed its IPMI operation. When specifying
237              this  option, data may appear to output slower to the user since
238              the the entire IPMI operation must complete before any data  can
239              be output.  See HOSTRANGED SUPPORT below for additional informa‐
240              tion.
241
242       -C, --consolidate-output
243              Consolidate hostranged output. The complete standard output from
244              every  node  specified  will  be consolidated so that nodes with
245              identical output are not output twice. A header will list  those
246              nodes  with  the consolidated output. When this option is speci‐
247              fied, no output can be seen until the  IPMI  operations  to  all
248              nodes  has  completed.  If  the  user  breaks out of the program
249              early, all currently consolidated output  will  be  dumped.  See
250              HOSTRANGED SUPPORT below for additional information.
251
252       -F, --fanout
253              Specify  multiple  host  fanout.  A "sliding window" (or fanout)
254              algorithm is used for parallel IPMI communication so that slower
255              nodes or timed out nodes will not impede parallel communication.
256              The maximum number of threads available at the same time is lim‐
257              ited by the fanout. The default is 64.
258
259       -E, --eliminate
260              Eliminate  hosts  determined  as undetected by ipmidetect.  This
261              attempts to remove the common issue of hostranged execution tim‐
262              ing  out  due  to  several nodes being removed from service in a
263              large cluster. The ipmidetectd daemon must  be  running  on  the
264              node executing the command.
265
266       --always-prefix
267              Always prefix output, even if only one host is specified or com‐
268              municating in-band. This option is primarily useful for  script‐
269              ing  purposes.  Option  will be ignored if specified with the -C
270              option.
271

HOSTRANGED SUPPORT

273       Multiple hosts can be input either as an explicit comma separated lists
274       of  hosts  or  a  range of hostnames in the general form: prefix[n-m,l-
275       k,...], where n < m and l < k, etc. The later form should not  be  con‐
276       fused  with  regular expression character classes (also denoted by []).
277       For example, foo[19] does not represent foo1 or foo9, but rather repre‐
278       sents a degenerate range: foo19.
279
280       This  range  syntax  is  meant only as a convenience on clusters with a
281       prefixNN naming convention and specification of ranges  should  not  be
282       considered  necessary -- the list foo1,foo9 could be specified as such,
283       or by the range foo[1,9].
284
285       Some examples of range usage follow:
286           foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
287           foo[7,9-10] instead of foo7,foo9,foo10
288           foo[0-3] instead of foo0,foo1,foo2,foo3
289
290       As a reminder to the reader, some shells will interpret brackets ([ and
291       ])  for  pattern matching. Depending on your shell, it may be necessary
292       to enclose ranged lists within quotes.
293
294       When multiple hosts are specified by the user, a thread  will  be  exe‐
295       cuted  for each host in parallel up to the configured fanout (which can
296       be adjusted via the -F option). This will allow communication to  large
297       numbers of nodes far more quickly than if done in serial.
298
299       By  default,  standard  output  from each node specified will be output
300       with the hostname prepended to each line. Although this output is read‐
301       able  in  many  situations, it may be difficult to read in other situa‐
302       tions. For example, output from multiple nodes may be  mixed  together.
303       The -B and -C options can be used to change this default.
304
305       In-band  IPMI  Communication  will be used when the host "localhost" is
306       specified. This allows the user to add  the  localhost  into  the  hos‐
307       tranged output.
308

GENERAL TROUBLESHOOTING

310       Most  often,  IPMI  problems  are due to configuration problems. Inband
311       IPMI problems are typically caused by improperly configured drivers  or
312       non-standard BMCs. IPMI over LAN problems involve a misconfiguration of
313       the remote machine's BMC.  Double check to make sure the following  are
314       configured  properly  in  the  remote  machine's  BMC:  IP address, MAC
315       address, subnet mask, username, user enablement, user privilege,  pass‐
316       word,   LAN  privilege,  LAN  enablement,  and  allowed  authentication
317       type(s). For IPMI 2.0 connections, double check to make sure the cipher
318       suite  privilege(s)  and  K_g key are configured properly. The bmc-con‐
319       fig(8) tool can be used to check and/or change these configuration set‐
320       tings.
321
322       The following are common issues for given error messages:
323
324       "username  invalid"  - The username entered (or a NULL username if none
325       was entered) is not available on the remote machine.  It  may  also  be
326       possible the remote BMC's username configuration is incorrect.
327
328       "password  invalid"  - The password entered (or a NULL password if none
329       was entered) is not correct. It may also be possible the  password  for
330       the user is not correctly configured on the remote BMC.
331
332       "password  verification timeout" - Password verification has timed out.
333       A "password invalid" error (described  above)  or  a  generic  "session
334       timeout" (described below) occurred.  During this point in the protocol
335       it cannot be differentiated which occurred.
336
337       "k_g invalid" - The K_g key entered (or a NULL  K_g  key  if  none  was
338       entered)  is  not  correct.  It may also be possible the K_g key is not
339       correctly configured on the remote BMC.
340
341       "privilege level insufficient" - An IPMI command requires a higher user
342       privilege  than  the one authenticated with. Please try to authenticate
343       with a higher privilege. This may require authenticating to a different
344       user which has a higher maximum privilege.
345
346       "privilege  level  cannot  be  obtained  for this user" - The privilege
347       level you are attempting to authenticate with is higher than the  maxi‐
348       mum  allowed for this user. Please try again with a lower privilege. It
349       may also be possible the maximum privilege level allowed for a user  is
350       not configured properly on the remote BMC.
351
352       "authentication  type  unavailable for attempted privilege level" - The
353       authentication type you wish to authenticate with is not available  for
354       this privilege level. Please try again with an alternate authentication
355       type or alternate privilege level. It may also be possible  the  avail‐
356       able  authentication  types you can authenticate with are not correctly
357       configured on the remote BMC.
358
359       "cipher suite id unavailable" - The cipher suite id you wish to authen‐
360       ticate  with  is not available on the remote BMC. Please try again with
361       an alternate cipher suite id. It may also  be  possible  the  available
362       cipher suite ids are not correctly configured on the remote BMC.
363
364       "ipmi  2.0  unavailable"  -  IPMI  2.0 was not discovered on the remote
365       machine. Please try to use IPMI 1.5 instead.
366
367       "connection timeout" - Initial IPMI communication failed. A  number  of
368       potential errors are possible, including an invalid hostname specified,
369       an IPMI IP address cannot be resolved,  IPMI  is  not  enabled  on  the
370       remote  server,  the network connection is bad, etc. Please verify con‐
371       figuration and connectivity.
372
373       "session timeout" - The IPMI session has timed out.  Please  reconnect.
374       If this error occurs often, you may wish to increase the retransmission
375       timeout. Some remote BMCs are considerably slower than others.
376
377       "device not found" - The specified device could not  be  found.  Please
378       check configuration or inputs and try again.
379
380       "driver  timeout"  -  Communication with the driver or device has timed
381       out. Please try again.
382
383       "message timeout" - Communication with the driver or device  has  timed
384       out. Please try again.
385
386       "BMC  busy"  - The BMC is currently busy. It may be processing informa‐
387       tion or have too many simultaneous sessions to manage. Please wait  and
388       try again.
389
390       "could  not  find inband device" - An inband device could not be found.
391       Please check configuration or specify specific device or driver on  the
392       command line.
393
394       Please  see  WORKAROUNDS below to also if there are any vendor specific
395       bugs that have been discovered and worked around.
396

WORKAROUNDS

398       With so many different vendors implementing their own  IPMI  solutions,
399       different  vendors  may implement their IPMI protocols incorrectly. The
400       following lists the workarounds currently available to  handle  discov‐
401       ered compliance issues.
402
403       When possible, workarounds have been implemented so they will be trans‐
404       parent to the user. However, some will require the user  to  specify  a
405       workaround be used via the -W option.
406
407       The hardware listed below may only indicate the hardware that a problem
408       was discovered on. Newer versions of  hardware  may  fix  the  problems
409       indicated  below.  Similar machines from vendors may or may not exhibit
410       the same problems. Different vendors may license  their  firmware  from
411       the  same IPMI firmware developer, so it may be worthwhile to try work‐
412       arounds listed below even if your motherboard is not listed.
413
414       "idzero" - This workaround option will allow empty session  IDs  to  be
415       accepted by the client. It works around IPMI sessions that report empty
416       session IDs to the client. Those hitting this issue  may  see  "session
417       timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.
418
419       "unexpectedauth"  -  This  workaround option will allow unexpected non-
420       null authcodes to be checked as though they  were  expected.  It  works
421       around  an issue when packets contain non-null authentication data when
422       they should be null due to disabled per-message  authentication.  Those
423       hitting  this issue may see "session timeout" errors. Issue observed on
424       Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.
425
426       "forcepermsg" - This workaround option will force per-message authenti‐
427       cation to be used no matter what is advertised by the remote system. It
428       works around an issue when per-message authentication is advertised  as
429       disabled on the remote system, but it is actually required for the pro‐
430       tocol. Those hitting this  issue  may  see  "session  timeout"  errors.
431       Issue observed on IBM eServer 325.
432
433       "endianseq"  -  This workaround option will flip the endian of the ses‐
434       sion sequence numbers to allow the session to  continue  properly.   It
435       works  around  IPMI  1.5  session  sequence  numbers that are the wrong
436       endian. Those hitting this issue  may  see  "session  timeout"  errors.
437       Issue  observed  on some Sun ILOM 1.0/2.0 (depends on service processor
438       endian).
439
440       "authcap" - This workaround option will skip early checks for  username
441       capabilities,  authentication  capabilities,  and K_g support and allow
442       IPMI authentication to succeed. It  works  around  multiple  issues  in
443       which the remote system does not properly report username capabilities,
444       authentication capabilities, or K_g status. Those  hitting  this  issue
445       may  see  "username  invalid",  "authentication  type  unavailable  for
446       attempted privilege level", or "k_g invalid" errors.  Issue observed on
447       Asus  P5M2/P5MT-R/RS162-E4/RX4,  Intel  SR1520ML/X38ML,  and  Sun  Fire
448       2200/4150/4450 with ELOM.
449
450       "intel20" - This workaround option will work around several Intel  IPMI
451       2.0  authentication issues. The issues covered include padding of user‐
452       names, automatic acceptance of a RAKP 4 response integrity  check  when
453       using  the  integrity algorithm MD5-128, and password truncation if the
454       authentication algorithm is HMAC-MD5-128. Those hitting this issue  may
455       see  "username  invalid",  "password invalid", or "k_g invalid" errors.
456       Issue observed on Intel SE7520AF2 with Intel Server  Management  Module
457       (Professional Edition).
458
459       "supermicro20" - This workaround option will work around several Super‐
460       micro IPMI 2.0 authentication issues on motherboards w/ Peppercon  IPMI
461       firmware.  The issues covered include handling invalid length authenti‐
462       cation codes. Those hitting  this  issue  may  see  "password  invalid"
463       errors.   Issue  observed on Supermicro H8QME with SIMSO daughter card.
464       Confirmed fixed on newerver firmware.
465
466       "sun20" - This workaround option will work work around several Sun IPMI
467       2.0  authentication issues. The issues covered include invalid lengthed
468       hash keys, improperly hashed keys, and invalid  cipher  suite  records.
469       Those  hitting  this  issue  may  see "password invalid" or "bmc error"
470       errors.  Issue observed on Sun Fire  4100/4200/4500  with  ILOM.   This
471       workaround automatically includes the "opensesspriv" workaround.
472
473       "opensesspriv"  - This workaround option will slightly alter FreeIPMI's
474       IPMI 2.0 connection protocol to workaround an invalid hashing algorithm
475       used  by  the  remote  system. The privilege level sent during the Open
476       Session stage of an IPMI 2.0 connection is sometimes invalid  and  used
477       for  hashing  keys instead of the privilege level sent during the RAKP1
478       connection stage. Those hitting this issue may see "password  invalid",
479       "k_g  invalid",  "bad rmcpplus status code", or "privilege level cannot
480       be obtained for  this  user  "  errors.  Issue  observed  on  Sun  Fire
481       4100/4200/4500  with  ILOM,  Inventec  5441/Dell  Xanadu II, Supermicro
482       X8DTH, Supermicro X8DTG, Supermicro X8DTU, and  Intel  S5500WBV/Penguin
483       Relion 700. This workaround is automatically triggered with the "sun20"
484       workaround.
485
486       "integritycheckvalue" - This workaround  option  will  work  around  an
487       invalid  integrity check value during an IPMI 2.0 session establishment
488       when using Cipher Suite ID 0. The integrity check  value  should  be  0
489       length, however the remote motherboard responds with a non-empty field.
490       Those hitting this issue may see "k_g invalid" errors.  Issue  observed
491       on  Supermicro  X8DTG,  Supermicro  X8DTU,  and  Intel S5500WBV/Penguin
492       Relion 700.
493

OEM INTERPRETATION

495       The following motherboards are confirmed to have atleast  some  support
496       by  the --interpret-oem-data option. While highly probable the OEM data
497       interpretations would work across other motherboards by the same  manu‐
498       facturer, there are no guarantees.
499
500       Currently None
501

EXAMPLES

503       # ipmi-dcmi --get-power-limit
504
505       Get power limit of the local machine.
506
507       # ipmi-dcmi -h ahost -u myusername -p mypassword --get-power-limit
508
509       Get power limit of a remote machine using IPMI over LAN.
510
511       #  ipmi-dcmi  -h  mycluster[0-127]  -u  myusername -p mypassword --get-
512       power-limit
513
514       Get power limit across a cluster using IPMI over LAN.
515

KNOWN ISSUES

517       On older operating systems, if you input your username,  password,  and
518       other  potentially  security  relevant information on the command line,
519       this information may be discovered by other users when using tools like
520       the  ps(1) command or looking in the /proc file system. It is generally
521       more secure to input password information with options like the  -P  or
522       -K  options.  Configuring security relevant information in the FreeIPMI
523       configuration file would also be an appropriate way to hide this infor‐
524       mation.
525
526       In  order  to  prevent  brute force attacks, some BMCs will temporarily
527       "lock up" after a number of remote authentication errors. You may  need
528       to  wait awhile in order to this temporary "lock up" to pass before you
529       may authenticate again.
530

REPORTING BUGS

532       Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
533
535       Copyright (C) 2009-2010 Lawrence Livermore National Security, LLC.
536
537       This program is free software; you can redistribute it and/or modify it
538       under  the  terms of the GNU General Public License as published by the
539       Free Software Foundation; either version 2 of the License, or (at  your
540       option) any later version.
541

SEE ALSO

543       freeipmi(7),  bmc-config(8),  ipmi-chassis(8),  ipmi-sel(8),  ipmi-sen‐
544       sors(8), ipmiconsole(8), ipmipower(8)
545
546       http://www.gnu.org/software/freeipmi/
547
548
549
550ipmi-dcmi 0.8.8                   2010-07-21                      IPMI-DCMI(8)
Impressum