1BMC-DEVICE(8) System Commands BMC-DEVICE(8)
2
3
4
6 bmc-device - perform advanced BMC commands
7
9 bmc-device [OPTION...]
10
12 bmc-device supports a variety of IPMI commands to perform advanced BMC
13 functions. This tool is primarily used for development debugging, BMC
14 error recory, retrieving detailed technical information, and other
15 advanced purposes. Most IPMI users will not need to use this tool. Some
16 of the bmc-device commands are not supported on all motherboards.
17
18 Listed below are general IPMI options, tool specific options, trouble
19 shooting information, workaround information, examples, and known
20 issues. For a general introduction to FreeIPMI please see freeipmi(7).
21
23 The following options are general options for configuring IPMI communi‐
24 cation and executing general tool commands.
25
26 -D, --driver-type=IPMIDRIVER
27 Specify the driver type to use instead of doing an auto selec‐
28 tion. The currently available outofband drivers are LAN and
29 LAN_2_0, which perform IPMI 1.5 and IPMI 2.0 respectively. The
30 currently available inband drivers are KCS, SSIF, OPENIPMI, and
31 SUNBMC.
32
33 --disable-auto-probe
34 Do not probe in-band IPMI devices for default settings.
35
36 --driver-address=DRIVER-ADDRESS
37 Specify the in-band driver address to be used instead of the
38 probed value. DRIVER-ADDRESS should be prefixed with "0x" for a
39 hex value and '0' for an octal value.
40
41 --driver-device=DEVICE
42 Specify the in-band driver device path to be used instead of the
43 probed path.
44
45 --register-spacing=REGISTER-SPACING
46 Specify the in-band driver register spacing instead of the
47 probed value.
48
49 -h, --hostname=IPMIHOST1,IPMIHOST2,...
50 Specify the remote host(s) to communicate with. Multiple host‐
51 names may be separated by comma or may be specified in a range
52 format; see HOSTRANGED SUPPORT below.
53
54 -u, --username=USERNAME
55 Specify the username to use when authenticating with the remote
56 host. If not specified, a null (i.e. anonymous) username is
57 assumed. The user must have atleast USER privileges in order for
58 this tool to operate fully.
59
60 -p, --password=PASSWORD
61 Specify the password to use when authenticationg with the remote
62 host. If not specified, a null password is assumed. Maximum
63 password length is 16 for IPMI 1.5 and 20 for IPMI 2.0.
64
65 -P, --password-prompt
66 Prompt for password to avoid possibility of listing it in
67 process lists.
68
69 -k, --k-g=K_G
70 Specify the K_g BMC key to use when authenticating with the
71 remote host for IPMI 2.0. If not specified, a null key is
72 assumed. To input the key in hexadecimal form, prefix the string
73 with '0x'. E.g., the key 'abc' can be entered with the either
74 the string 'abc' or the string '0x616263'
75
76 -K, --k-g-prompt
77 Prompt for k-g to avoid possibility of listing it in process
78 lists.
79
80 --session-timeout=MILLISECONDS
81 Specify the session timeout in milliseconds. Defaults to 20000
82 milliseconds (20 seconds) if not specified.
83
84 --retransmission-timeout=MILLISECONDS
85 Specify the packet retransmission timeout in milliseconds.
86 Defaults to 1000 milliseconds (1 second) if not specified. The
87 retransmission timeout cannot be larger than the session time‐
88 out.
89
90 -a, --authentication-type=AUTHENTICATION-TYPE
91 Specify the IPMI 1.5 authentication type to use. The currently
92 available authentication types are NONE, STRAIGHT_PASSWORD_KEY,
93 MD2, and MD5. Defaults to MD5 if not specified.
94
95 -I, --cipher-suite-id=CIPHER-SUITE-ID
96 Specify the IPMI 2.0 cipher suite ID to use. The Cipher Suite ID
97 identifies a set of authentication, integrity, and confidential‐
98 ity algorithms to use for IPMI 2.0 communication. The authenti‐
99 cation algorithm identifies the algorithm to use for session
100 setup, the integrity algorithm identifies the algorithm to use
101 for session packet signatures, and the confidentiality algorithm
102 identifies the algorithm to use for payload encryption. Defaults
103 to cipher suite ID 3 if not specified. The following cipher
104 suite ids are currently supported:
105
106 0 - Authentication Algorithm = None; Integrity Algorithm = None;
107 Confidentiality Algorithm = None
108
109 1 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
110 None; Confidentiality Algorithm = None
111
112 2 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
113 HMAC-SHA1-96; Confidentiality Algorithm = None
114
115 3 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
116 HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
117
118 6 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
119 None; Confidentiality Algorithm = None
120
121 7 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
122 HMAC-MD5-128; Confidentiality Algorithm = None
123
124 8 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
125 HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128
126
127 11 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
128 MD5-128; Confidentiality Algorithm = None
129
130 12 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
131 MD5-128; Confidentiality Algorithm = AES-CBC-128
132
133 -l, --privilege-level=PRIVILEGE-LEVEL
134 Specify the privilege level to be used. The currently available
135 privilege levels are USER, OPERATOR, and ADMIN. Defaults to
136 ADMIN if not specified.
137
138 --config-file=FILE
139 Specify an alternate configuration file.
140
141 -W, --workaround-flags=WORKAROUNDS
142 Specify workarounds to vendor compliance issues. Multiple work‐
143 arounds can be specified separated by commas. See WORKAROUNDS
144 below for a list of available workarounds.
145
146 --debug
147 Turn on debugging.
148
149 -?, --help
150 Output a help list and exit.
151
152 --usage
153 Output a usage message and exit.
154
155 -V, --version
156 Output the program version and exit.
157
159 The following options are specific to bmc-device.
160
161 --cold-reset
162 Perform a cold reset.
163
164 --warm-reset
165 Perform a warm reset.
166
167 --get-self-test-results
168 Output BMC self test results.
169
170 --get-acpi-power-state
171 Get ACPI system and device power state.
172
173 --set-acpi-power-state
174 Set ACPI power state. Must be specified to use the
175 --set-acpi-system-power-state, and --set-acpi-device-power-state
176 options listed below.
177
178 --set-acpi-system-power-state=SYSTEM_POWER_STATE
179 Set ACPI system power state. Allowed values: S0_G0, S1, S2, S3,
180 S4, S5_G2, S4_S5, G3, SLEEPING, G1_SLEEPING, OVERRIDE,
181 LEGACY_ON, LEGACY_OFF, UNKNOWN. Used with the
182 --set-acpi-power-state option.
183
184 --set-acpi-device-power-state=DEVICE_POWER_STATE
185 Set ACPI device power state. Allowed values: D0, D1, D2, D3,
186 UNKNOWN. Used with the --set-acpi-power-state option.
187
188 --get-lan-statistics
189 Get IP, UDP, and RMCP statistics.
190
191 --clear-lan-statistics
192 Clear IP, UDP, and RMCP statistics.
193
194 --get-sdr-repository-time
195 Get SDR repository time.
196
197 --set-sdr-repository-time=TIME
198 Set SDR repository time. Input format = "MM/DD/YYYY - HH:MM:SS".
199 Note that hours are input in 24 hour form. Alternatively, the
200 local system time can be specified with "now".
201
202 --get-sel-time
203 Get SEL time.
204
205 --set-sel-time=TIME
206 Set SEL time. Input format = "MM/DD/YYYY - HH:MM:SS". Note that
207 hours are input in 24 hour form. Alternatively, the local system
208 time can be specified with "now".
209
210 --platform-event="[generator_id] <event_message_format_version> <sen‐
211 sor_type> <sensor_number> <event_type> <event_direction> <event_data1>
212 <event_data2> <event_data3>"
213 Instruct the BMC to process the specified event data. Typically,
214 this data will be logged to the System Event Log (SEL), but
215 depending on implementation it may be processed by other subsys‐
216 tems such as Platform Event Filtering (PEF). The keywords asser‐
217 tion or deassertion may be used for event_direction, or the
218 numerical values may be used instead. The event_message_for‐
219 mat_version is 0x03 for IPMI 1.0 and 0x04 for IPMI 1.5. The gen‐
220 erator_id above is optional, however it is required if generat‐
221 ing the event via a system interface (i.e. inband). If generat‐
222 ing the event via a system interface, the system management
223 software generator id range is 0x41 to 6Fh.
224
225 --get-mca-auxiliary-log-status
226 Get machine check architecture (MCA) auxiliary log status infor‐
227 mation.
228
229 --get-ssif-interface-capabilities
230 Get SSIF interface capabilities.
231
232 --get-kcs-interface-capabilities
233 Get KCS interface capabilities.
234
235 --get-bt-interface-capabilities
236 Get BT interface capabilities.
237
238 --get-bmc-global-enables
239 Get BMC Global Enables.
240
241 --set-system-firmware-version=STR
242 Set System Firmware Version.
243
244 --set-system-name=STR
245 Set System Name.
246
247 --set-primary-operating-system-name=STR
248 Set Primary Operating System Name.
249
250 --set-operating-system-name=STR
251 Set Operating System Name.
252
253 --verbose
254 Increase verbosity in output.
255
257 The following options manipulate hostranged output. See HOSTRANGED SUP‐
258 PORT below for additional information on hostranges.
259
260 -B, --buffer-output
261 Buffer hostranged output. For each node, buffer standard output
262 until the node has completed its IPMI operation. When specifying
263 this option, data may appear to output slower to the user since
264 the the entire IPMI operation must complete before any data can
265 be output. See HOSTRANGED SUPPORT below for additional informa‐
266 tion.
267
268 -C, --consolidate-output
269 Consolidate hostranged output. The complete standard output from
270 every node specified will be consolidated so that nodes with
271 identical output are not output twice. A header will list those
272 nodes with the consolidated output. When this option is speci‐
273 fied, no output can be seen until the IPMI operations to all
274 nodes has completed. If the user breaks out of the program
275 early, all currently consolidated output will be dumped. See
276 HOSTRANGED SUPPORT below for additional information.
277
278 -F, --fanout
279 Specify multiple host fanout. A "sliding window" (or fanout)
280 algorithm is used for parallel IPMI communication so that slower
281 nodes or timed out nodes will not impede parallel communication.
282 The maximum number of threads available at the same time is lim‐
283 ited by the fanout. The default is 64.
284
285 -E, --eliminate
286 Eliminate hosts determined as undetected by ipmidetect. This
287 attempts to remove the common issue of hostranged execution tim‐
288 ing out due to several nodes being removed from service in a
289 large cluster. The ipmidetectd daemon must be running on the
290 node executing the command.
291
292 --always-prefix
293 Always prefix output, even if only one host is specified or com‐
294 municating in-band. This option is primarily useful for script‐
295 ing purposes. Option will be ignored if specified with the -C
296 option.
297
299 Multiple hosts can be input either as an explicit comma separated lists
300 of hosts or a range of hostnames in the general form: prefix[n-m,l-
301 k,...], where n < m and l < k, etc. The later form should not be con‐
302 fused with regular expression character classes (also denoted by []).
303 For example, foo[19] does not represent foo1 or foo9, but rather repre‐
304 sents a degenerate range: foo19.
305
306 This range syntax is meant only as a convenience on clusters with a
307 prefixNN naming convention and specification of ranges should not be
308 considered necessary -- the list foo1,foo9 could be specified as such,
309 or by the range foo[1,9].
310
311 Some examples of range usage follow:
312 foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
313 foo[7,9-10] instead of foo7,foo9,foo10
314 foo[0-3] instead of foo0,foo1,foo2,foo3
315
316 As a reminder to the reader, some shells will interpret brackets ([ and
317 ]) for pattern matching. Depending on your shell, it may be necessary
318 to enclose ranged lists within quotes.
319
320 When multiple hosts are specified by the user, a thread will be exe‐
321 cuted for each host in parallel up to the configured fanout (which can
322 be adjusted via the -F option). This will allow communication to large
323 numbers of nodes far more quickly than if done in serial.
324
325 By default, standard output from each node specified will be output
326 with the hostname prepended to each line. Although this output is read‐
327 able in many situations, it may be difficult to read in other situa‐
328 tions. For example, output from multiple nodes may be mixed together.
329 The -B and -C options can be used to change this default.
330
331 In-band IPMI Communication will be used when the host "localhost" is
332 specified. This allows the user to add the localhost into the hos‐
333 tranged output.
334
336 Most often, IPMI problems are due to configuration problems. Inband
337 IPMI problems are typically caused by improperly configured drivers or
338 non-standard BMCs. IPMI over LAN problems involve a misconfiguration of
339 the remote machine's BMC. Double check to make sure the following are
340 configured properly in the remote machine's BMC: IP address, MAC
341 address, subnet mask, username, user enablement, user privilege, pass‐
342 word, LAN privilege, LAN enablement, and allowed authentication
343 type(s). For IPMI 2.0 connections, double check to make sure the cipher
344 suite privilege(s) and K_g key are configured properly. The bmc-con‐
345 fig(8) tool can be used to check and/or change these configuration set‐
346 tings.
347
348 The following are common issues for given error messages:
349
350 "username invalid" - The username entered (or a NULL username if none
351 was entered) is not available on the remote machine. It may also be
352 possible the remote BMC's username configuration is incorrect.
353
354 "password invalid" - The password entered (or a NULL password if none
355 was entered) is not correct. It may also be possible the password for
356 the user is not correctly configured on the remote BMC.
357
358 "password verification timeout" - Password verification has timed out.
359 A "password invalid" error (described above) or a generic "session
360 timeout" (described below) occurred. During this point in the protocol
361 it cannot be differentiated which occurred.
362
363 "k_g invalid" - The K_g key entered (or a NULL K_g key if none was
364 entered) is not correct. It may also be possible the K_g key is not
365 correctly configured on the remote BMC.
366
367 "privilege level insufficient" - An IPMI command requires a higher user
368 privilege than the one authenticated with. Please try to authenticate
369 with a higher privilege. This may require authenticating to a different
370 user which has a higher maximum privilege.
371
372 "privilege level cannot be obtained for this user" - The privilege
373 level you are attempting to authenticate with is higher than the maxi‐
374 mum allowed for this user. Please try again with a lower privilege. It
375 may also be possible the maximum privilege level allowed for a user is
376 not configured properly on the remote BMC.
377
378 "authentication type unavailable for attempted privilege level" - The
379 authentication type you wish to authenticate with is not available for
380 this privilege level. Please try again with an alternate authentication
381 type or alternate privilege level. It may also be possible the avail‐
382 able authentication types you can authenticate with are not correctly
383 configured on the remote BMC.
384
385 "cipher suite id unavailable" - The cipher suite id you wish to authen‐
386 ticate with is not available on the remote BMC. Please try again with
387 an alternate cipher suite id. It may also be possible the available
388 cipher suite ids are not correctly configured on the remote BMC.
389
390 "ipmi 2.0 unavailable" - IPMI 2.0 was not discovered on the remote
391 machine. Please try to use IPMI 1.5 instead.
392
393 "connection timeout" - Initial IPMI communication failed. A number of
394 potential errors are possible, including an invalid hostname specified,
395 an IPMI IP address cannot be resolved, IPMI is not enabled on the
396 remote server, the network connection is bad, etc. Please verify con‐
397 figuration and connectivity.
398
399 "session timeout" - The IPMI session has timed out. Please reconnect.
400 If this error occurs often, you may wish to increase the retransmission
401 timeout. Some remote BMCs are considerably slower than others.
402
403 "device not found" - The specified device could not be found. Please
404 check configuration or inputs and try again.
405
406 "driver timeout" - Communication with the driver or device has timed
407 out. Please try again.
408
409 "message timeout" - Communication with the driver or device has timed
410 out. Please try again.
411
412 "BMC busy" - The BMC is currently busy. It may be processing informa‐
413 tion or have too many simultaneous sessions to manage. Please wait and
414 try again.
415
416 "could not find inband device" - An inband device could not be found.
417 Please check configuration or specify specific device or driver on the
418 command line.
419
420 Please see WORKAROUNDS below to also if there are any vendor specific
421 bugs that have been discovered and worked around.
422
424 With so many different vendors implementing their own IPMI solutions,
425 different vendors may implement their IPMI protocols incorrectly. The
426 following lists the workarounds currently available to handle discov‐
427 ered compliance issues.
428
429 When possible, workarounds have been implemented so they will be trans‐
430 parent to the user. However, some will require the user to specify a
431 workaround be used via the -W option.
432
433 The hardware listed below may only indicate the hardware that a problem
434 was discovered on. Newer versions of hardware may fix the problems
435 indicated below. Similar machines from vendors may or may not exhibit
436 the same problems. Different vendors may license their firmware from
437 the same IPMI firmware developer, so it may be worthwhile to try work‐
438 arounds listed below even if your motherboard is not listed.
439
440 "idzero" - This workaround option will allow empty session IDs to be
441 accepted by the client. It works around IPMI sessions that report empty
442 session IDs to the client. Those hitting this issue may see "session
443 timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.
444
445 "unexpectedauth" - This workaround option will allow unexpected non-
446 null authcodes to be checked as though they were expected. It works
447 around an issue when packets contain non-null authentication data when
448 they should be null due to disabled per-message authentication. Those
449 hitting this issue may see "session timeout" errors. Issue observed on
450 Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.
451
452 "forcepermsg" - This workaround option will force per-message authenti‐
453 cation to be used no matter what is advertised by the remote system. It
454 works around an issue when per-message authentication is advertised as
455 disabled on the remote system, but it is actually required for the pro‐
456 tocol. Those hitting this issue may see "session timeout" errors.
457 Issue observed on IBM eServer 325.
458
459 "endianseq" - This workaround option will flip the endian of the ses‐
460 sion sequence numbers to allow the session to continue properly. It
461 works around IPMI 1.5 session sequence numbers that are the wrong
462 endian. Those hitting this issue may see "session timeout" errors.
463 Issue observed on some Sun ILOM 1.0/2.0 (depends on service processor
464 endian).
465
466 "authcap" - This workaround option will skip early checks for username
467 capabilities, authentication capabilities, and K_g support and allow
468 IPMI authentication to succeed. It works around multiple issues in
469 which the remote system does not properly report username capabilities,
470 authentication capabilities, or K_g status. Those hitting this issue
471 may see "username invalid", "authentication type unavailable for
472 attempted privilege level", or "k_g invalid" errors. Issue observed on
473 Asus P5M2/P5MT-R/RS162-E4/RX4, Intel SR1520ML/X38ML, and Sun Fire
474 2200/4150/4450 with ELOM.
475
476 "intel20" - This workaround option will work around several Intel IPMI
477 2.0 authentication issues. The issues covered include padding of user‐
478 names, automatic acceptance of a RAKP 4 response integrity check when
479 using the integrity algorithm MD5-128, and password truncation if the
480 authentication algorithm is HMAC-MD5-128. Those hitting this issue may
481 see "username invalid", "password invalid", or "k_g invalid" errors.
482 Issue observed on Intel SE7520AF2 with Intel Server Management Module
483 (Professional Edition).
484
485 "supermicro20" - This workaround option will work around several Super‐
486 micro IPMI 2.0 authentication issues on motherboards w/ Peppercon IPMI
487 firmware. The issues covered include handling invalid length authenti‐
488 cation codes. Those hitting this issue may see "password invalid"
489 errors. Issue observed on Supermicro H8QME with SIMSO daughter card.
490 Confirmed fixed on newerver firmware.
491
492 "sun20" - This workaround option will work work around several Sun IPMI
493 2.0 authentication issues. The issues covered include invalid lengthed
494 hash keys, improperly hashed keys, and invalid cipher suite records.
495 Those hitting this issue may see "password invalid" or "bmc error"
496 errors. Issue observed on Sun Fire 4100/4200/4500 with ILOM. This
497 workaround automatically includes the "opensesspriv" workaround.
498
499 "opensesspriv" - This workaround option will slightly alter FreeIPMI's
500 IPMI 2.0 connection protocol to workaround an invalid hashing algorithm
501 used by the remote system. The privilege level sent during the Open
502 Session stage of an IPMI 2.0 connection is sometimes invalid and used
503 for hashing keys instead of the privilege level sent during the RAKP1
504 connection stage. Those hitting this issue may see "password invalid",
505 "k_g invalid", "bad rmcpplus status code", or "privilege level cannot
506 be obtained for this user " errors. Issue observed on Sun Fire
507 4100/4200/4500 with ILOM, Inventec 5441/Dell Xanadu II, Supermicro
508 X8DTH, Supermicro X8DTG, Supermicro X8DTU, and Intel S5500WBV/Penguin
509 Relion 700. This workaround is automatically triggered with the "sun20"
510 workaround.
511
512 "integritycheckvalue" - This workaround option will work around an
513 invalid integrity check value during an IPMI 2.0 session establishment
514 when using Cipher Suite ID 0. The integrity check value should be 0
515 length, however the remote motherboard responds with a non-empty field.
516 Those hitting this issue may see "k_g invalid" errors. Issue observed
517 on Supermicro X8DTG, Supermicro X8DTU, and Intel S5500WBV/Penguin
518 Relion 700.
519
521 # bmc-device --cold-reset
522
523 Perform a cold reset.
524
525 # ipmi-dcmi -h ahost -u myusername -p mypassword --cold-reset
526
527 Perform a cold reset of a remote machine using IPMI over LAN.
528
529 # ipmi-dcmi -h mycluster[0-127] -u myusername -p mypassword --cold-
530 reset
531
532 Perform a cold reset across a cluster using IPMI over LAN.
533
535 On older operating systems, if you input your username, password, and
536 other potentially security relevant information on the command line,
537 this information may be discovered by other users when using tools like
538 the ps(1) command or looking in the /proc file system. It is generally
539 more secure to input password information with options like the -P or
540 -K options. Configuring security relevant information in the FreeIPMI
541 configuration file would also be an appropriate way to hide this infor‐
542 mation.
543
544 In order to prevent brute force attacks, some BMCs will temporarily
545 "lock up" after a number of remote authentication errors. You may need
546 to wait awhile in order to this temporary "lock up" to pass before you
547 may authenticate again.
548
550 Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
551
553 Copyright © 2008-2010 FreeIPMI Core Team.
554
555 This program is free software; you can redistribute it and/or modify it
556 under the terms of the GNU General Public License as published by the
557 Free Software Foundation; either version 2 of the License, or (at your
558 option) any later version.
559
561 freeipmi.conf(5), freeipmi(7)
562
563 http://www.gnu.org/software/freeipmi/
564
565
566
567bmc-device 0.8.8 2010-07-21 BMC-DEVICE(8)