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

NAME

6       ipmi-raw - execute IPMI commands by hex values
7

SYNOPSIS

9       ipmi-raw [OPTION...] [<lun> <netfn> COMMAND-HEX-BYTES...]
10

DESCRIPTION

12       Ipmi-raw is used to execute IPMI commands by hex values.
13
14       Listed  below  are general IPMI options, tool specific options, trouble
15       shooting  information,  workaround  information,  examples,  and  known
16       issues. For a general introduction to FreeIPMI please see freeipmi(7).
17

GENERAL OPTIONS

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

IPMI-RAW OPTIONS

155       The following options are specific to Ipmi-raw.
156
157       --channel-number=number
158              Specify an alternate channel number to bridge raw  commands  to.
159              You  must  also  specify the slave-address below if you use this
160              option.
161
162       --slave-address=address
163              Specify an alternate slave address to bridge  raw  commands  to.
164              You  must  also specify the channel-number above if you use this
165              option.
166
167       --file=CMD-FILE
168              Specify a file to read command requests from.
169

HOSTRANGED OPTIONS

171       The following options manipulate hostranged output. See HOSTRANGED SUP‐
172       PORT below for additional information on hostranges.
173
174       -B, --buffer-output
175              Buffer  hostranged output. For each node, buffer standard output
176              until the node has completed its IPMI operation. When specifying
177              this  option, data may appear to output slower to the user since
178              the the entire IPMI operation must complete before any data  can
179              be output.  See HOSTRANGED SUPPORT below for additional informa‐
180              tion.
181
182       -C, --consolidate-output
183              Consolidate hostranged output. The complete standard output from
184              every  node  specified  will  be consolidated so that nodes with
185              identical output are not output twice. A header will list  those
186              nodes  with  the consolidated output. When this option is speci‐
187              fied, no output can be seen until the  IPMI  operations  to  all
188              nodes  has  completed.  If  the  user  breaks out of the program
189              early, all currently consolidated output  will  be  dumped.  See
190              HOSTRANGED SUPPORT below for additional information.
191
192       -F, --fanout
193              Specify  multiple  host  fanout.  A "sliding window" (or fanout)
194              algorithm is used for parallel IPMI communication so that slower
195              nodes or timed out nodes will not impede parallel communication.
196              The maximum number of threads available at the same time is lim‐
197              ited by the fanout. The default is 64.
198
199       -E, --eliminate
200              Eliminate  hosts  determined  as undetected by ipmidetect.  This
201              attempts to remove the common issue of hostranged execution tim‐
202              ing  out  due  to  several nodes being removed from service in a
203              large cluster. The ipmidetectd daemon must  be  running  on  the
204              node executing the command.
205
206       --always-prefix
207              Always prefix output, even if only one host is specified or com‐
208              municating in-band. This option is primarily useful for  script‐
209              ing  purposes.  Option  will be ignored if specified with the -C
210              option.
211

HOSTRANGED SUPPORT

213       Multiple hosts can be input either as an explicit comma separated lists
214       of  hosts  or  a  range of hostnames in the general form: prefix[n-m,l-
215       k,...], where n < m and l < k, etc. The later form should not  be  con‐
216       fused  with  regular expression character classes (also denoted by []).
217       For example, foo[19] does not represent foo1 or foo9, but rather repre‐
218       sents a degenerate range: foo19.
219
220       This  range  syntax  is  meant only as a convenience on clusters with a
221       prefixNN naming convention and specification of ranges  should  not  be
222       considered  necessary -- the list foo1,foo9 could be specified as such,
223       or by the range foo[1,9].
224
225       Some examples of range usage follow:
226           foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
227           foo[7,9-10] instead of foo7,foo9,foo10
228           foo[0-3] instead of foo0,foo1,foo2,foo3
229
230       As a reminder to the reader, some shells will interpret brackets ([ and
231       ])  for  pattern matching. Depending on your shell, it may be necessary
232       to enclose ranged lists within quotes.
233
234       When multiple hosts are specified by the user, a thread  will  be  exe‐
235       cuted  for each host in parallel up to the configured fanout (which can
236       be adjusted via the -F option). This will allow communication to  large
237       numbers of nodes far more quickly than if done in serial.
238
239       By  default,  standard  output  from each node specified will be output
240       with the hostname prepended to each line. Although this output is read‐
241       able  in  many  situations, it may be difficult to read in other situa‐
242       tions. For example, output from multiple nodes may be  mixed  together.
243       The -B and -C options can be used to change this default.
244
245       In-band  IPMI  Communication  will be used when the host "localhost" is
246       specified. This allows the user to add  the  localhost  into  the  hos‐
247       tranged output.
248

GENERAL TROUBLESHOOTING

250       Most  often,  IPMI  problems  are due to configuration problems. Inband
251       IPMI problems are typically caused by improperly configured drivers  or
252       non-standard BMCs. IPMI over LAN problems involve a misconfiguration of
253       the remote machine's BMC.  Double check to make sure the following  are
254       configured  properly  in  the  remote  machine's  BMC:  IP address, MAC
255       address, subnet mask, username, user enablement, user privilege,  pass‐
256       word,   LAN  privilege,  LAN  enablement,  and  allowed  authentication
257       type(s). For IPMI 2.0 connections, double check to make sure the cipher
258       suite  privilege(s)  and  K_g key are configured properly. The bmc-con‐
259       fig(8) tool can be used to check and/or change these configuration set‐
260       tings.
261
262       The following are common issues for given error messages:
263
264       "username  invalid"  - The username entered (or a NULL username if none
265       was entered) is not available on the remote machine.  It  may  also  be
266       possible the remote BMC's username configuration is incorrect.
267
268       "password  invalid"  - The password entered (or a NULL password if none
269       was entered) is not correct. It may also be possible the  password  for
270       the user is not correctly configured on the remote BMC.
271
272       "password  verification timeout" - Password verification has timed out.
273       A "password invalid" error (described  above)  or  a  generic  "session
274       timeout" (described below) occurred.  During this point in the protocol
275       it cannot be differentiated which occurred.
276
277       "k_g invalid" - The K_g key entered (or a NULL  K_g  key  if  none  was
278       entered)  is  not  correct.  It may also be possible the K_g key is not
279       correctly configured on the remote BMC.
280
281       "privilege level insufficient" - An IPMI command requires a higher user
282       privilege  than  the one authenticated with. Please try to authenticate
283       with a higher privilege. This may require authenticating to a different
284       user which has a higher maximum privilege.
285
286       "privilege  level  cannot  be  obtained  for this user" - The privilege
287       level you are attempting to authenticate with is higher than the  maxi‐
288       mum  allowed for this user. Please try again with a lower privilege. It
289       may also be possible the maximum privilege level allowed for a user  is
290       not configured properly on the remote BMC.
291
292       "authentication  type  unavailable for attempted privilege level" - The
293       authentication type you wish to authenticate with is not available  for
294       this privilege level. Please try again with an alternate authentication
295       type or alternate privilege level. It may also be possible  the  avail‐
296       able  authentication  types you can authenticate with are not correctly
297       configured on the remote BMC.
298
299       "cipher suite id unavailable" - The cipher suite id you wish to authen‐
300       ticate  with  is not available on the remote BMC. Please try again with
301       an alternate cipher suite id. It may also  be  possible  the  available
302       cipher suite ids are not correctly configured on the remote BMC.
303
304       "ipmi  2.0  unavailable"  -  IPMI  2.0 was not discovered on the remote
305       machine. Please try to use IPMI 1.5 instead.
306
307       "connection timeout" - Initial IPMI communication failed. A  number  of
308       potential errors are possible, including an invalid hostname specified,
309       an IPMI IP address cannot be resolved,  IPMI  is  not  enabled  on  the
310       remote  server,  the network connection is bad, etc. Please verify con‐
311       figuration and connectivity.
312
313       "session timeout" - The IPMI session has timed out.  Please  reconnect.
314       If this error occurs often, you may wish to increase the retransmission
315       timeout. Some remote BMCs are considerably slower than others.
316
317       "device not found" - The specified device could not  be  found.  Please
318       check configuration or inputs and try again.
319
320       "driver  timeout"  -  Communication with the driver or device has timed
321       out. Please try again.
322
323       "message timeout" - Communication with the driver or device  has  timed
324       out. Please try again.
325
326       "BMC  busy"  - The BMC is currently busy. It may be processing informa‐
327       tion or have too many simultaneous sessions to manage. Please wait  and
328       try again.
329
330       "could  not  find inband device" - An inband device could not be found.
331       Please check configuration or specify specific device or driver on  the
332       command line.
333
334       Please  see  WORKAROUNDS below to also if there are any vendor specific
335       bugs that have been discovered and worked around.
336

WORKAROUNDS

338       With so many different vendors implementing their own  IPMI  solutions,
339       different  vendors  may implement their IPMI protocols incorrectly. The
340       following lists the workarounds currently available to  handle  discov‐
341       ered compliance issues.
342
343       When possible, workarounds have been implemented so they will be trans‐
344       parent to the user. However, some will require the user  to  specify  a
345       workaround be used via the -W option.
346
347       The hardware listed below may only indicate the hardware that a problem
348       was discovered on. Newer versions of  hardware  may  fix  the  problems
349       indicated  below.  Similar machines from vendors may or may not exhibit
350       the same problems. Different vendors may license  their  firmware  from
351       the  same IPMI firmware developer, so it may be worthwhile to try work‐
352       arounds listed below even if your motherboard is not listed.
353
354       "idzero" - This workaround option will allow empty session  IDs  to  be
355       accepted by the client. It works around IPMI sessions that report empty
356       session IDs to the client. Those hitting this issue  may  see  "session
357       timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.
358
359       "unexpectedauth"  -  This  workaround option will allow unexpected non-
360       null authcodes to be checked as though they  were  expected.  It  works
361       around  an issue when packets contain non-null authentication data when
362       they should be null due to disabled per-message  authentication.  Those
363       hitting  this issue may see "session timeout" errors. Issue observed on
364       Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.
365
366       "forcepermsg" - This workaround option will force per-message authenti‐
367       cation to be used no matter what is advertised by the remote system. It
368       works around an issue when per-message authentication is advertised  as
369       disabled on the remote system, but it is actually required for the pro‐
370       tocol. Those hitting this  issue  may  see  "session  timeout"  errors.
371       Issue observed on IBM eServer 325.
372
373       "endianseq"  -  This workaround option will flip the endian of the ses‐
374       sion sequence numbers to allow the session to  continue  properly.   It
375       works  around  IPMI  1.5  session  sequence  numbers that are the wrong
376       endian. Those hitting this issue  may  see  "session  timeout"  errors.
377       Issue  observed  on some Sun ILOM 1.0/2.0 (depends on service processor
378       endian).
379
380       "authcap" - This workaround option will skip early checks for  username
381       capabilities,  authentication  capabilities,  and K_g support and allow
382       IPMI authentication to succeed. It  works  around  multiple  issues  in
383       which the remote system does not properly report username capabilities,
384       authentication capabilities, or K_g status. Those  hitting  this  issue
385       may  see  "username  invalid",  "authentication  type  unavailable  for
386       attempted privilege level", or "k_g invalid" errors.  Issue observed on
387       Asus  P5M2/P5MT-R/RS162-E4/RX4,  Intel  SR1520ML/X38ML,  and  Sun  Fire
388       2200/4150/4450 with ELOM.
389
390       "intel20" - This workaround option will work around several Intel  IPMI
391       2.0  authentication issues. The issues covered include padding of user‐
392       names, automatic acceptance of a RAKP 4 response integrity  check  when
393       using  the  integrity algorithm MD5-128, and password truncation if the
394       authentication algorithm is HMAC-MD5-128. Those hitting this issue  may
395       see  "username  invalid",  "password invalid", or "k_g invalid" errors.
396       Issue observed on Intel SE7520AF2 with Intel Server  Management  Module
397       (Professional Edition).
398
399       "supermicro20" - This workaround option will work around several Super‐
400       micro IPMI 2.0 authentication issues on motherboards w/ Peppercon  IPMI
401       firmware.  The issues covered include handling invalid length authenti‐
402       cation codes. Those hitting  this  issue  may  see  "password  invalid"
403       errors.   Issue  observed on Supermicro H8QME with SIMSO daughter card.
404       Confirmed fixed on newerver firmware.
405
406       "sun20" - This workaround option will work work around several Sun IPMI
407       2.0  authentication issues. The issues covered include invalid lengthed
408       hash keys, improperly hashed keys, and invalid  cipher  suite  records.
409       Those  hitting  this  issue  may  see "password invalid" or "bmc error"
410       errors.  Issue observed on Sun Fire  4100/4200/4500  with  ILOM.   This
411       workaround automatically includes the "opensesspriv" workaround.
412
413       "opensesspriv"  - This workaround option will slightly alter FreeIPMI's
414       IPMI 2.0 connection protocol to workaround an invalid hashing algorithm
415       used  by  the  remote  system. The privilege level sent during the Open
416       Session stage of an IPMI 2.0 connection is sometimes invalid  and  used
417       for  hashing  keys instead of the privilege level sent during the RAKP1
418       connection stage. Those hitting this issue may see "password  invalid",
419       "k_g  invalid",  "bad rmcpplus status code", or "privilege level cannot
420       be obtained for  this  user  "  errors.  Issue  observed  on  Sun  Fire
421       4100/4200/4500  with  ILOM,  Inventec  5441/Dell  Xanadu II, Supermicro
422       X8DTH, Supermicro X8DTG, Supermicro X8DTU, and  Intel  S5500WBV/Penguin
423       Relion 700. This workaround is automatically triggered with the "sun20"
424       workaround.
425
426       "integritycheckvalue" - This workaround  option  will  work  around  an
427       invalid  integrity check value during an IPMI 2.0 session establishment
428       when using Cipher Suite ID 0. The integrity check  value  should  be  0
429       length, however the remote motherboard responds with a non-empty field.
430       Those hitting this issue may see "k_g invalid" errors.  Issue  observed
431       on  Supermicro  X8DTG,  Supermicro  X8DTU,  and  Intel S5500WBV/Penguin
432       Relion 700.
433

EXAMPLES

435       # ipmi-raw 0 6 01
436
437       Execute command 0x01 with LUN 0x0 and NETFN 0x06 on the local machine.
438
439       # ipmi-raw -h ahost -u myusername -p mypassword 0 6 01
440
441       Execute command 0x01 with LUN 0x0 and NETFN 0x06 on  a  remote  machine
442       using IPMI over LAN.
443
444       # ipmi-raw -h mycluster[0-127] -u myusername -p mypassword 0 6 01
445
446       Execute command 0x01 with LUN 0x0 and NETFN 0x06 across a cluster using
447       IPMI over LAN.
448
449       # ipmi-raw
450
451       Read LUN, NETFN, command and request data from standard input.
452
453       # ipmi-raw -f command-file
454
455       Read LUN/FN, command and request data from given file instead of  stan‐
456       dard input.
457
458       # ipmi-raw < command-file
459
460       Read LUN, NETFN, command and request data from file as standard input.
461

KNOWN ISSUES

463       On  older  operating systems, if you input your username, password, and
464       other potentially security relevant information on  the  command  line,
465       this information may be discovered by other users when using tools like
466       the ps(1) command or looking in the /proc file system. It is  generally
467       more  secure  to input password information with options like the -P or
468       -K options. Configuring security relevant information in  the  FreeIPMI
469       configuration file would also be an appropriate way to hide this infor‐
470       mation.
471
472       In order to prevent brute force attacks,  some  BMCs  will  temporarily
473       "lock  up" after a number of remote authentication errors. You may need
474       to wait awhile in order to this temporary "lock up" to pass before  you
475       may authenticate again.
476

REPORTING BUGS

478       Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
479
481       Copyright © 2005-2010 FreeIPMI Core Team
482
483       This program is free software; you can redistribute it and/or modify it
484       under the terms of the GNU General Public License as published  by  the
485       Free  Software Foundation; either version 2 of the License, or (at your
486       option) any later version.
487

SEE ALSO

489       freeipmi.conf(5), freeipmi(7), bmc-config(8), ipmi-oem(8)
490
491       http://www.gnu.org/software/freeipmi/
492
493
494
495IPMI Raw version 0.8.8            2010-07-21                       IPMI-RAW(8)
Impressum