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 recovery, 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 is‐
20 sues. 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 IPMIDRIVER, --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,
31 SUNBMC, and INTELDCMI.
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. Argument is in bytes (i.e. 32bit register spacing
48 = 4)
49
50 --target-channel-number=CHANNEL-NUMBER
51 Specify the in-band driver target channel number to send IPMI
52 requests to.
53
54 --target-slave-address=SLAVE-ADDRESS
55 Specify the in-band driver target slave number to send IPMI re‐
56 quests to.
57
58 -h IPMIHOST1,IPMIHOST2,..., --hostname=IPMIHOST1[:PORT],IPMI‐
59 HOST2[:PORT],...
60 Specify the remote host(s) to communicate with. Multiple host‐
61 names may be separated by comma or may be specified in a range
62 format; see HOSTRANGED SUPPORT below. An optional port can be
63 specified with each host, which may be useful in port forwarding
64 or similar situations. If specifying an IPv6 address and port,
65 use the format [ADDRESS]:PORT.
66
67 -u USERNAME, --username=USERNAME
68 Specify the username to use when authenticating with the remote
69 host. If not specified, a null (i.e. anonymous) username is as‐
70 sumed. The user must have atleast USER privileges in order for
71 this tool to operate fully.
72
73 -p PASSWORD, --password=PASSWORD
74 Specify the password to use when authenticationg with the remote
75 host. If not specified, a null password is assumed. Maximum
76 password length is 16 for IPMI 1.5 and 20 for IPMI 2.0.
77
78 -P, --password-prompt
79 Prompt for password to avoid possibility of listing it in
80 process lists.
81
82 -k K_G, --k-g=K_G
83 Specify the K_g BMC key to use when authenticating with the re‐
84 mote host for IPMI 2.0. If not specified, a null key is assumed.
85 To input the key in hexadecimal form, prefix the string with
86 '0x'. E.g., the key 'abc' can be entered with the either the
87 string 'abc' or the string '0x616263'
88
89 -K, --k-g-prompt
90 Prompt for k-g to avoid possibility of listing it in process
91 lists.
92
93 --session-timeout=MILLISECONDS
94 Specify the session timeout in milliseconds. Defaults to 20000
95 milliseconds (20 seconds) if not specified.
96
97 --retransmission-timeout=MILLISECONDS
98 Specify the packet retransmission timeout in milliseconds. De‐
99 faults to 1000 milliseconds (1 second) if not specified. The re‐
100 transmission timeout cannot be larger than the session timeout.
101
102 -a AUTHENTICATION-TYPE, --authentication-type=AUTHENTICATION-TYPE
103 Specify the IPMI 1.5 authentication type to use. The currently
104 available authentication types are NONE, STRAIGHT_PASSWORD_KEY,
105 MD2, and MD5. Defaults to MD5 if not specified.
106
107 -I CIPHER-SUITE-ID, --cipher-suite-id=CIPHER-SUITE-ID
108 Specify the IPMI 2.0 cipher suite ID to use. The Cipher Suite ID
109 identifies a set of authentication, integrity, and confidential‐
110 ity algorithms to use for IPMI 2.0 communication. The authenti‐
111 cation algorithm identifies the algorithm to use for session
112 setup, the integrity algorithm identifies the algorithm to use
113 for session packet signatures, and the confidentiality algorithm
114 identifies the algorithm to use for payload encryption. Defaults
115 to cipher suite ID 3 if not specified. The following cipher
116 suite ids are currently supported:
117
118 0 - Authentication Algorithm = None; Integrity Algorithm = None;
119 Confidentiality Algorithm = None
120
121 1 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
122 None; Confidentiality Algorithm = None
123
124 2 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
125 HMAC-SHA1-96; Confidentiality Algorithm = None
126
127 3 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
128 HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
129
130 6 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
131 None; Confidentiality Algorithm = None
132
133 7 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
134 HMAC-MD5-128; Confidentiality Algorithm = None
135
136 8 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
137 HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128
138
139 11 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
140 MD5-128; Confidentiality Algorithm = None
141
142 12 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
143 MD5-128; Confidentiality Algorithm = AES-CBC-128
144
145 15 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
146 = None; Confidentiality Algorithm = None
147
148 16 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
149 = HMAC_SHA256_128; Confidentiality Algorithm = None
150
151 17 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
152 = HMAC_SHA256_128; Confidentiality Algorithm = AES-CBC-128
153
154 -l PRIVILEGE-LEVEL, --privilege-level=PRIVILEGE-LEVEL
155 Specify the privilege level to be used. The currently available
156 privilege levels are USER, OPERATOR, and ADMIN. Defaults to AD‐
157 MIN if not specified.
158
159 --config-file=FILE
160 Specify an alternate configuration file.
161
162 -W WORKAROUNDS, --workaround-flags=WORKAROUNDS
163 Specify workarounds to vendor compliance issues. Multiple work‐
164 arounds can be specified separated by commas. A special command
165 line flag of "none", will indicate no workarounds (may be useful
166 for overriding configured defaults). See WORKAROUNDS below for a
167 list of available workarounds.
168
169 --debug
170 Turn on debugging.
171
172 -?, --help
173 Output a help list and exit.
174
175 --usage
176 Output a usage message and exit.
177
178 -V, --version
179 Output the program version and exit.
180
182 The following options are specific to bmc-device.
183
184 --cold-reset
185 Perform a cold reset.
186
187 --warm-reset
188 Perform a warm reset.
189
190 --get-self-test-results
191 Output BMC self test results.
192
193 --get-acpi-power-state
194 Get ACPI system and device power state.
195
196 --set-acpi-power-state
197 Set ACPI power state. Must be specified to use the
198 --set-acpi-system-power-state, and --set-acpi-device-power-state
199 options listed below.
200
201 --set-acpi-system-power-state=SYSTEM_POWER_STATE
202 Set ACPI system power state. Allowed values: S0_G0, S1, S2, S3,
203 S4, S5_G2, S4_S5, G3, SLEEPING, G1_SLEEPING, OVERRIDE,
204 LEGACY_ON, LEGACY_OFF, UNKNOWN. Used with the
205 --set-acpi-power-state option.
206
207 --set-acpi-device-power-state=DEVICE_POWER_STATE
208 Set ACPI device power state. Allowed values: D0, D1, D2, D3, UN‐
209 KNOWN. Used with the --set-acpi-power-state option.
210
211 --get-lan-statistics
212 Get IP, UDP, and RMCP statistics.
213
214 --clear-lan-statistics
215 Clear IP, UDP, and RMCP statistics.
216
217 --rearm-sensor="<record_id> [<assertion_bitmask> <deassertion_bit‐
218 mask>]"
219 Re-arm a sensor. Re-arming a sensor informs the internal device
220 to reset and re-evaluate a sensor reading and events. Most sen‐
221 sors are automatically re-armed, however a rare few do require
222 manual re-arming. This option may also be useful to reset a sen‐
223 sor reading or event that may be stuck due to an internal hard‐
224 ware or firmware error. If the assertion_bitmask and deasser‐
225 tion_bitmask are specified, only the specific events will be re-
226 armed. If not specified, all possible events will be re-armed.
227 This command requires the loading of the SDR.
228
229 --get-sdr-repository-time
230 Get SDR repository time.
231
232 --set-sdr-repository-time=TIME
233 Set SDR repository time. Input format = "MM/DD/YYYY - HH:MM:SS".
234 Note that hours are input in 24 hour form. Alternatively, the
235 local system time can be specified with "now".
236
237 --get-sel-time
238 Get SEL time.
239
240 --set-sel-time=TIME
241 Set SEL time. Input format = "MM/DD/YYYY - HH:MM:SS". Note that
242 hours are input in 24 hour form. Alternatively, the local system
243 time can be specified with "now".
244
245 --get-sel-time-utc-offset
246 Get SEL time UTC offset.
247
248 --set-sel-time-utc-offset=MINUTES
249 Set SEL time UTC offset. Input is in minutes difference from UTC
250 time, ranging from -1440 to 1440 minutes. A special case value
251 of "none" can be specified so no UTC offset is specified.
252
253 --platform-event="[generator_id] <event_message_format_version> <sen‐
254 sor_type> <sensor_number> <event_type> <event_direction> <event_data1>
255 <event_data2> <event_data3>"
256 Instruct the BMC to process the specified event data. Typically,
257 this data will be logged to the System Event Log (SEL), but de‐
258 pending on implementation it may be processed by other subsys‐
259 tems such as Platform Event Filtering (PEF). The keywords asser‐
260 tion or deassertion may be used for event_direction, or the nu‐
261 merical values may be used instead. The event_message_for‐
262 mat_version is 0x03 for IPMI 1.0 and 0x04 for IPMI 1.5. The gen‐
263 erator_id above is optional, however it is required if generat‐
264 ing the event via a system interface (i.e. inband). If generat‐
265 ing the event via a system interface, the system management
266 software generator id range is 0x41 to 6Fh.
267
268 --set-sensor-reading-and-event-status="<sensor_number> <sensor_reading>
269 <sensor_reading_operation> <assertion_bitmask> <assertion_bitmask_oper‐
270 ation> <deassertion_bitmask> <deassertion_bitmask_operation>
271 <event_data1> <event_data2> <event_data3> <event_data_operation>"
272 Instruct the BMC to set a sensor reading and/or event status.
273 How the various fields are written depends on a set of operation
274 instructions specified. The sensor_reading can be written or not
275 changed with the respective operation write and nochange. For
276 the assertion_bitmask and deassertion_bitmask, the 0 bits of the
277 bitmask can clear the bits of the status, the 1 bits of the bit‐
278 mask can set the bits of the status, the entire bitmask can be
279 written as the status, or the status cannot be changed respec‐
280 tively with the respective operations clear0bits, set1bits,
281 write, and nochange. The event_data1 byte can be written fully,
282 written without the event offset (bits 3:0), or not be changed
283 via the write, nooffsetwrite, or nochange operations.
284
285 --get-mca-auxiliary-log-status
286 Get machine check architecture (MCA) auxiliary log status infor‐
287 mation.
288
289 --get-ssif-interface-capabilities
290 Get SSIF interface capabilities.
291
292 --get-kcs-interface-capabilities
293 Get KCS interface capabilities.
294
295 --get-bt-interface-capabilities
296 Get BT interface capabilities.
297
298 --get-bmc-global-enables
299 Get BMC Global Enables.
300
301 --set-system-firmware-version=STRING
302 Set System Firmware Version.
303
304 --set-system-name=STRING
305 Set System Name.
306
307 --set-primary-operating-system-name=STRING
308 Set Primary Operating System Name.
309
310 --set-operating-system-name=STRING
311 Set Operating System Name.
312
313 --set-present-os-version-number=STRING
314 Set Present OS Version Number.
315
316 --set-bmc-url=STRING
317 Set BMC URL.
318
319 --set-base-os-hypervisor-url=STRING
320 Set Base OS/Hypervisor URL.
321
322 --read-fru=FILENAME
323 Read the contents of a FRU device ID and store it in the speci‐
324 fied file. Requires setting of a device ID via --device-id.
325
326 --write-fru=FILENAME
327 Write the contents of the specified file into a FRU device id.
328 Requires setting of a device ID via --device-id. If --verbose is
329 specified, progress percent will also be output.
330
331 --device-id=IDNUM
332 Specify a specific FRU device ID. For use with --read-fru and
333 --write-fru.
334
335 --verbose
336 Increase verbosity in output.
337
339 This tool requires access to the sensor data repository (SDR) cache for
340 general operation. By default, SDR data will be downloaded and cached
341 on the local machine. The following options apply to the SDR cache.
342
343 --flush-cache
344 Flush a cached version of the sensor data repository (SDR)
345 cache. The SDR is typically cached for faster subsequent access.
346 However, it may need to be flushed and re-generated if the SDR
347 has been updated on a system.
348
349 --quiet-cache
350 Do not output information about cache creation/deletion. May be
351 useful in scripting.
352
353 --sdr-cache-recreate
354 If the SDR cache is out of date or invalid, automatically recre‐
355 ate the sensor data repository (SDR) cache. This option may be
356 useful for scripting purposes.
357
358 --sdr-cache-file=FILE
359 Specify a specific sensor data repository (SDR) cache file to be
360 stored or read from. If this option is used when multiple hosts
361 are specified, the same SDR cache file will be used for all
362 hosts.
363
364 --sdr-cache-directory=DIRECTORY
365 Specify an alternate directory for sensor data repository (SDR)
366 caches to be stored or read from. Defaults to the home directory
367 if not specified.
368
370 By IPMI definition, all IPMI times and timestamps are stored in local‐
371 time. However, in many situations, the timestamps will not be stored in
372 localtime. Whether or not a system truly stored the timestamps in lo‐
373 caltime varies on many factors, such as the vendor, BIOS, and operating
374 system. The following options will allow the user to adjust the inter‐
375 pretation of the stored timestamps and how they should be output.
376
377 --utc-to-localtime
378 Assume all times are reported in UTC time and convert the time
379 to localtime before being output.
380
381 --localtime-to-utc
382 Convert all localtime timestamps to UTC before being output.
383
384 --utc-offset=SECONDS
385 Specify a specific UTC offset in seconds to be added to time‐
386 stamps. Value can range from -86400 to 86400 seconds. Defaults
387 to 0.
388
390 The following options manipulate hostranged output. See HOSTRANGED SUP‐
391 PORT below for additional information on hostranges.
392
393 -B, --buffer-output
394 Buffer hostranged output. For each node, buffer standard output
395 until the node has completed its IPMI operation. When specifying
396 this option, data may appear to output slower to the user since
397 the the entire IPMI operation must complete before any data can
398 be output. See HOSTRANGED SUPPORT below for additional informa‐
399 tion.
400
401 -C, --consolidate-output
402 Consolidate hostranged output. The complete standard output from
403 every node specified will be consolidated so that nodes with
404 identical output are not output twice. A header will list those
405 nodes with the consolidated output. When this option is speci‐
406 fied, no output can be seen until the IPMI operations to all
407 nodes has completed. If the user breaks out of the program
408 early, all currently consolidated output will be dumped. See
409 HOSTRANGED SUPPORT below for additional information.
410
411 -F NUM, --fanout=NUM
412 Specify multiple host fanout. A "sliding window" (or fanout) al‐
413 gorithm is used for parallel IPMI communication so that slower
414 nodes or timed out nodes will not impede parallel communication.
415 The maximum number of threads available at the same time is lim‐
416 ited by the fanout. The default is 64.
417
418 -E, --eliminate
419 Eliminate hosts determined as undetected by ipmidetect. This
420 attempts to remove the common issue of hostranged execution tim‐
421 ing out due to several nodes being removed from service in a
422 large cluster. The ipmidetectd daemon must be running on the
423 node executing the command.
424
425 --always-prefix
426 Always prefix output, even if only one host is specified or com‐
427 municating in-band. This option is primarily useful for script‐
428 ing purposes. Option will be ignored if specified with the -C
429 option.
430
432 Multiple hosts can be input either as an explicit comma separated lists
433 of hosts or a range of hostnames in the general form: prefix[n-m,l-
434 k,...], where n < m and l < k, etc. The later form should not be con‐
435 fused with regular expression character classes (also denoted by []).
436 For example, foo[19] does not represent foo1 or foo9, but rather repre‐
437 sents a degenerate range: foo19.
438
439 This range syntax is meant only as a convenience on clusters with a
440 prefixNN naming convention and specification of ranges should not be
441 considered necessary -- the list foo1,foo9 could be specified as such,
442 or by the range foo[1,9].
443
444 Some examples of range usage follow:
445 foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
446 foo[7,9-10] instead of foo7,foo9,foo10
447 foo[0-3] instead of foo0,foo1,foo2,foo3
448
449 As a reminder to the reader, some shells will interpret brackets ([ and
450 ]) for pattern matching. Depending on your shell, it may be necessary
451 to enclose ranged lists within quotes.
452
453 When multiple hosts are specified by the user, a thread will be exe‐
454 cuted for each host in parallel up to the configured fanout (which can
455 be adjusted via the -F option). This will allow communication to large
456 numbers of nodes far more quickly than if done in serial.
457
458 By default, standard output from each node specified will be output
459 with the hostname prepended to each line. Although this output is read‐
460 able in many situations, it may be difficult to read in other situa‐
461 tions. For example, output from multiple nodes may be mixed together.
462 The -B and -C options can be used to change this default.
463
464 In-band IPMI Communication will be used when the host "localhost" is
465 specified. This allows the user to add the localhost into the hos‐
466 tranged output.
467
469 Most often, IPMI problems are due to configuration problems.
470
471 IPMI over LAN problems involve a misconfiguration of the remote ma‐
472 chine's BMC. Double check to make sure the following are configured
473 properly in the remote machine's BMC: IP address, MAC address, subnet
474 mask, username, user enablement, user privilege, password, LAN privi‐
475 lege, LAN enablement, and allowed authentication type(s). For IPMI 2.0
476 connections, double check to make sure the cipher suite privilege(s)
477 and K_g key are configured properly. The ipmi-config(8) tool can be
478 used to check and/or change these configuration settings.
479
480 Inband IPMI problems are typically caused by improperly configured
481 drivers or non-standard BMCs.
482
483 In addition to the troubleshooting tips below, please see WORKAROUNDS
484 below to also if there are any vendor specific bugs that have been dis‐
485 covered and worked around.
486
487 Listed below are many of the common issues for error messages. For ad‐
488 ditional support, please e-mail the <freeipmi-users@gnu.org> mailing
489 list.
490
491 "username invalid" - The username entered (or a NULL username if none
492 was entered) is not available on the remote machine. It may also be
493 possible the remote BMC's username configuration is incorrect.
494
495 "password invalid" - The password entered (or a NULL password if none
496 was entered) is not correct. It may also be possible the password for
497 the user is not correctly configured on the remote BMC.
498
499 "password verification timeout" - Password verification has timed out.
500 A "password invalid" error (described above) or a generic "session
501 timeout" (described below) occurred. During this point in the protocol
502 it cannot be differentiated which occurred.
503
504 "k_g invalid" - The K_g key entered (or a NULL K_g key if none was en‐
505 tered) is not correct. It may also be possible the K_g key is not cor‐
506 rectly configured on the remote BMC.
507
508 "privilege level insufficient" - An IPMI command requires a higher user
509 privilege than the one authenticated with. Please try to authenticate
510 with a higher privilege. This may require authenticating to a different
511 user which has a higher maximum privilege.
512
513 "privilege level cannot be obtained for this user" - The privilege
514 level you are attempting to authenticate with is higher than the maxi‐
515 mum allowed for this user. Please try again with a lower privilege. It
516 may also be possible the maximum privilege level allowed for a user is
517 not configured properly on the remote BMC.
518
519 "authentication type unavailable for attempted privilege level" - The
520 authentication type you wish to authenticate with is not available for
521 this privilege level. Please try again with an alternate authentication
522 type or alternate privilege level. It may also be possible the avail‐
523 able authentication types you can authenticate with are not correctly
524 configured on the remote BMC.
525
526 "cipher suite id unavailable" - The cipher suite id you wish to authen‐
527 ticate with is not available on the remote BMC. Please try again with
528 an alternate cipher suite id. It may also be possible the available ci‐
529 pher suite ids are not correctly configured on the remote BMC.
530
531 "ipmi 2.0 unavailable" - IPMI 2.0 was not discovered on the remote ma‐
532 chine. Please try to use IPMI 1.5 instead.
533
534 "connection timeout" - Initial IPMI communication failed. A number of
535 potential errors are possible, including an invalid hostname specified,
536 an IPMI IP address cannot be resolved, IPMI is not enabled on the re‐
537 mote server, the network connection is bad, etc. Please verify configu‐
538 ration and connectivity.
539
540 "session timeout" - The IPMI session has timed out. Please reconnect.
541 If this error occurs often, you may wish to increase the retransmission
542 timeout. Some remote BMCs are considerably slower than others.
543
544 "device not found" - The specified device could not be found. Please
545 check configuration or inputs and try again.
546
547 "driver timeout" - Communication with the driver or device has timed
548 out. Please try again.
549
550 "message timeout" - Communication with the driver or device has timed
551 out. Please try again.
552
553 "BMC busy" - The BMC is currently busy. It may be processing informa‐
554 tion or have too many simultaneous sessions to manage. Please wait and
555 try again.
556
557 "could not find inband device" - An inband device could not be found.
558 Please check configuration or specify specific device or driver on the
559 command line.
560
561 "driver timeout" - The inband driver has timed out communicating to the
562 local BMC or service processor. The BMC or service processor may be
563 busy or (worst case) possibly non-functioning.
564
566 With so many different vendors implementing their own IPMI solutions,
567 different vendors may implement their IPMI protocols incorrectly. The
568 following describes a number of workarounds currently available to han‐
569 dle discovered compliance issues. When possible, workarounds have been
570 implemented so they will be transparent to the user. However, some will
571 require the user to specify a workaround be used via the -W option.
572
573 The hardware listed below may only indicate the hardware that a problem
574 was discovered on. Newer versions of hardware may fix the problems in‐
575 dicated below. Similar machines from vendors may or may not exhibit the
576 same problems. Different vendors may license their firmware from the
577 same IPMI firmware developer, so it may be worthwhile to try work‐
578 arounds listed below even if your motherboard is not listed.
579
580 If you believe your hardware has an additional compliance issue that
581 needs a workaround to be implemented, please contact the FreeIPMI main‐
582 tainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
583
584 assumeio - This workaround flag will assume inband interfaces communi‐
585 cate with system I/O rather than being memory-mapped. This will work
586 around systems that report invalid base addresses. Those hitting this
587 issue may see "device not supported" or "could not find inband device"
588 errors. Issue observed on HP ProLiant DL145 G1.
589
590 spinpoll - This workaround flag will inform some inband drivers (most
591 notably the KCS driver) to spin while polling rather than putting the
592 process to sleep. This may significantly improve the wall clock running
593 time of tools because an operating system scheduler's granularity may
594 be much larger than the time it takes to perform a single IPMI message
595 transaction. However, by spinning, your system may be performing less
596 useful work by not contexting out the tool for a more useful task.
597
598 authcap - This workaround flag will skip early checks for username ca‐
599 pabilities, authentication capabilities, and K_g support and allow IPMI
600 authentication to succeed. It works around multiple issues in which the
601 remote system does not properly report username capabilities, authenti‐
602 cation capabilities, or K_g status. Those hitting this issue may see
603 "username invalid", "authentication type unavailable for attempted
604 privilege level", or "k_g invalid" errors. Issue observed on Asus
605 P5M2/P5MT-R/RS162-E4/RX4, Intel SR1520ML/X38ML, and Sun Fire
606 2200/4150/4450 with ELOM.
607
608 nochecksumcheck - This workaround flag will tell FreeIPMI to not check
609 the checksums returned from IPMI command responses. It works around
610 systems that return invalid checksums due to implementation errors, but
611 the packet is otherwise valid. Users are cautioned on the use of this
612 option, as it removes validation of packet integrity in a number of
613 circumstances. However, it is unlikely to be an issue in most situa‐
614 tions. Those hitting this issue may see "connection timeout", "session
615 timeout", or "password verification timeout" errors. On IPMI 1.5 con‐
616 nections, the "noauthcodecheck" workaround may also needed too. Issue
617 observed on Supermicro X9SCM-iiF, Supermicro X9DRi-F, and Supermicro
618 X9DRFR.
619
620 idzero - This workaround flag will allow empty session IDs to be ac‐
621 cepted by the client. It works around IPMI sessions that report empty
622 session IDs to the client. Those hitting this issue may see "session
623 timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.
624
625 unexpectedauth - This workaround flag will allow unexpected non-null
626 authcodes to be checked as though they were expected. It works around
627 an issue when packets contain non-null authentication data when they
628 should be null due to disabled per-message authentication. Those hit‐
629 ting this issue may see "session timeout" errors. Issue observed on
630 Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.
631
632 forcepermsg - This workaround flag will force per-message authentica‐
633 tion to be used no matter what is advertised by the remote system. It
634 works around an issue when per-message authentication is advertised as
635 disabled on the remote system, but it is actually required for the pro‐
636 tocol. Those hitting this issue may see "session timeout" errors. Is‐
637 sue observed on IBM eServer 325.
638
639 endianseq - This workaround flag will flip the endian of the session
640 sequence numbers to allow the session to continue properly. It works
641 around IPMI 1.5 session sequence numbers that are the wrong endian.
642 Those hitting this issue may see "session timeout" errors. Issue ob‐
643 served on some Sun ILOM 1.0/2.0 (depends on service processor endian).
644
645 noauthcodecheck - This workaround flag will tell FreeIPMI to not check
646 the authentication codes returned from IPMI 1.5 command responses. It
647 works around systems that return invalid authentication codes due to
648 hashing or implementation errors. Users are cautioned on the use of
649 this option, as it removes an authentication check verifying the valid‐
650 ity of a packet. However, in most organizations, this is unlikely to be
651 a security issue. Those hitting this issue may see "connection time‐
652 out", "session timeout", or "password verification timeout" errors.
653 Issue observed on Xyratex FB-H8-SRAY, Intel Windmill, Quanta Winter‐
654 fell, and Wiwynn Windmill.
655
656 intel20 - This workaround flag will work around several Intel IPMI 2.0
657 authentication issues. The issues covered include padding of usernames,
658 and password truncation if the authentication algorithm is HMAC-
659 MD5-128. Those hitting this issue may see "username invalid", "password
660 invalid", or "k_g invalid" errors. Issue observed on Intel SE7520AF2
661 with Intel Server Management Module (Professional Edition).
662
663 supermicro20 - This workaround flag will work around several Supermicro
664 IPMI 2.0 authentication issues on motherboards w/ Peppercon IPMI
665 firmware. The issues covered include handling invalid length authenti‐
666 cation codes. Those hitting this issue may see "password invalid" er‐
667 rors. Issue observed on Supermicro H8QME with SIMSO daughter card.
668 Confirmed fixed on newerver firmware.
669
670 sun20 - This workaround flag will work work around several Sun IPMI 2.0
671 authentication issues. The issues covered include invalid lengthed hash
672 keys, improperly hashed keys, and invalid cipher suite records. Those
673 hitting this issue may see "password invalid" or "bmc error" errors.
674 Issue observed on Sun Fire 4100/4200/4500 with ILOM. This workaround
675 automatically includes the "opensesspriv" workaround.
676
677 opensesspriv - This workaround flag will slightly alter FreeIPMI's IPMI
678 2.0 connection protocol to workaround an invalid hashing algorithm used
679 by the remote system. The privilege level sent during the Open Session
680 stage of an IPMI 2.0 connection is used for hashing keys instead of the
681 privilege level sent during the RAKP1 connection stage. Those hitting
682 this issue may see "password invalid", "k_g invalid", or "bad rmcpplus
683 status code" errors. Issue observed on Sun Fire 4100/4200/4500 with
684 ILOM, Inventec 5441/Dell Xanadu II, Supermicro X8DTH, Supermicro X8DTG,
685 Intel S5500WBV/Penguin Relion 700, Intel S2600JF/Appro 512X, Quanta
686 QSSC-S4R/Appro GB812X-CN, and Dell C5220. This workaround is automati‐
687 cally triggered with the "sun20" workaround.
688
689 integritycheckvalue - This workaround flag will work around an invalid
690 integrity check value during an IPMI 2.0 session establishment when us‐
691 ing Cipher Suite ID 0. The integrity check value should be 0 length,
692 however the remote motherboard responds with a non-empty field. Those
693 hitting this issue may see "k_g invalid" errors. Issue observed on Su‐
694 permicro X8DTG, Supermicro X8DTU, and Intel S5500WBV/Penguin Relion
695 700, and Intel S2600JF/Appro 512X.
696
697 assumemaxsdrrecordcount - This workaround will inform SDR reading to
698 stop reading after a known maximum number of SDR records have been
699 read. This will work around systems that have miss-implemented SDR
700 reading functions. Those hitting this issue may see "SDR record count
701 invalid" errors. Issue observed on unspecified Inspur motherboard.
702
703 No IPMI 1.5 Support - Some motherboards that support IPMI 2.0 have been
704 found to not support IPMI 1.5. Those hitting this issue may see "ipmi
705 2.0 unavailable" or "connection timeout" errors. This issue can be
706 worked around by using IPMI 2.0 instead of IPMI 1.5 by specifying
707 --driver-type=LAN_2_0. Issue observed on a number of HP and Supermicro
708 motherboards.
709
711 # bmc-device --cold-reset
712
713 Perform a cold reset.
714
715 # bmc-device -h ahost -u myusername -p mypassword --cold-reset
716
717 Perform a cold reset of a remote machine using IPMI over LAN.
718
719 # bmc-device -h mycluster[0-127] -u myusername -p mypassword --cold-re‐
720 set
721
722 Perform a cold reset across a cluster using IPMI over LAN.
723
725 Upon successful execution, exit status is 0. On error, exit status is
726 1.
727
728 If multiple hosts are specified for communication, the exit status is 0
729 if and only if all targets successfully execute. Otherwise the exit
730 status is 1.
731
733 On older operating systems, if you input your username, password, and
734 other potentially security relevant information on the command line,
735 this information may be discovered by other users when using tools like
736 the ps(1) command or looking in the /proc file system. It is generally
737 more secure to input password information with options like the -P or
738 -K options. Configuring security relevant information in the FreeIPMI
739 configuration file would also be an appropriate way to hide this infor‐
740 mation.
741
742 In order to prevent brute force attacks, some BMCs will temporarily
743 "lock up" after a number of remote authentication errors. You may need
744 to wait awhile in order to this temporary "lock up" to pass before you
745 may authenticate again.
746
748 Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
749
751 Copyright © 2008-2015 FreeIPMI Core Team.
752
753 This program is free software; you can redistribute it and/or modify it
754 under the terms of the GNU General Public License as published by the
755 Free Software Foundation; either version 3 of the License, or (at your
756 option) any later version.
757
759 freeipmi.conf(5), freeipmi(7)
760
761 http://www.gnu.org/software/freeipmi/
762
763
764
765bmc-device 1.6.11 2023-06-07 BMC-DEVICE(8)