1BMC-DEVICE(8)                   System Commands                  BMC-DEVICE(8)
2
3
4

NAME

6       bmc-device - perform advanced BMC commands
7

SYNOPSIS

9       bmc-device [OPTION...]
10

DESCRIPTION

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

GENERAL OPTIONS

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, 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. 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
56              requests 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.
65
66       -u USERNAME, --username=USERNAME
67              Specify the username to use when authenticating with the  remote
68              host.   If  not  specified,  a null (i.e. anonymous) username is
69              assumed. The user must have atleast USER privileges in order for
70              this tool to operate fully.
71
72       -p PASSWORD, --password=PASSWORD
73              Specify the password to use when authenticationg with the remote
74              host.  If not specified, a null  password  is  assumed.  Maximum
75              password length is 16 for IPMI 1.5 and 20 for IPMI 2.0.
76
77       -P, --password-prompt
78              Prompt  for  password  to  avoid  possibility  of  listing it in
79              process lists.
80
81       -k K_G, --k-g=K_G
82              Specify the K_g BMC key to  use  when  authenticating  with  the
83              remote  host  for  IPMI  2.0.  If  not  specified, a null key is
84              assumed. To input the key in hexadecimal form, prefix the string
85              with  '0x'.  E.g.,  the key 'abc' can be entered with the either
86              the string 'abc' or the string '0x616263'
87
88       -K, --k-g-prompt
89              Prompt for k-g to avoid possibility of  listing  it  in  process
90              lists.
91
92       --session-timeout=MILLISECONDS
93              Specify  the  session timeout in milliseconds. Defaults to 20000
94              milliseconds (20 seconds) if not specified.
95
96       --retransmission-timeout=MILLISECONDS
97              Specify  the  packet  retransmission  timeout  in  milliseconds.
98              Defaults  to  1000 milliseconds (1 second) if not specified. The
99              retransmission timeout cannot be larger than the  session  time‐
100              out.
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
157              ADMIN 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

BMC-DEVICE OPTIONS

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,
209              UNKNOWN.  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       --platform-event="[generator_id]  <event_message_format_version>  <sen‐
246       sor_type>  <sensor_number> <event_type> <event_direction> <event_data1>
247       <event_data2> <event_data3>"
248              Instruct the BMC to process the specified event data. Typically,
249              this  data  will  be  logged  to the System Event Log (SEL), but
250              depending on implementation it may be processed by other subsys‐
251              tems such as Platform Event Filtering (PEF). The keywords asser‐
252              tion or deassertion may be  used  for  event_direction,  or  the
253              numerical  values  may  be  used instead. The event_message_for‐
254              mat_version is 0x03 for IPMI 1.0 and 0x04 for IPMI 1.5. The gen‐
255              erator_id  above is optional, however it is required if generat‐
256              ing the event via a system interface (i.e. inband).  If generat‐
257              ing  the  event  via  a  system interface, the system management
258              software generator id range is 0x41 to 6Fh.
259
260       --set-sensor-reading-and-event-status="<sensor_number> <sensor_reading>
261       <sensor_reading_operation> <assertion_bitmask> <assertion_bitmask_oper‐
262       ation>      <deassertion_bitmask>       <deassertion_bitmask_operation>
263       <event_data1> <event_data2> <event_data3> <event_data_operation>"
264              Instruct  the  BMC  to set a sensor reading and/or event status.
265              How the various fields are written depends on a set of operation
266              instructions specified. The sensor_reading can be written or not
267              changed with the respective operation write  and  nochange.  For
268              the assertion_bitmask and deassertion_bitmask, the 0 bits of the
269              bitmask can clear the bits of the status, the 1 bits of the bit‐
270              mask  can  set the bits of the status, the entire bitmask can be
271              written  as  the  status,  or  the  status  cannot  be   changed
272              respecitvely   with   the   respective   operations  clear0bits,
273              set1bits, write, and nochange. The event_data1 byte can be writ‐
274              ten  fully,  written without the event offset (bits 3:0), or not
275              be changed via the write, nooffsetwrite, or nochange operations.
276
277       --get-mca-auxiliary-log-status
278              Get machine check architecture (MCA) auxiliary log status infor‐
279              mation.
280
281       --get-ssif-interface-capabilities
282              Get SSIF interface capabilities.
283
284       --get-kcs-interface-capabilities
285              Get KCS interface capabilities.
286
287       --get-bt-interface-capabilities
288              Get BT interface capabilities.
289
290       --get-bmc-global-enables
291              Get BMC Global Enables.
292
293       --set-system-firmware-version=STRING
294              Set System Firmware Version.
295
296       --set-system-name=STRING
297              Set System Name.
298
299       --set-primary-operating-system-name=STRING
300              Set Primary Operating System Name.
301
302       --set-operating-system-name=STRING
303              Set Operating System Name.
304
305       --verbose
306              Increase verbosity in output.
307

SDR CACHE OPTIONS

309       This tool requires access to the sensor data repository (SDR) cache for
310       general operation. By default, SDR data will be downloaded  and  cached
311       on the local machine. The following options apply to the SDR cache.
312
313       -f, --flush-cache
314              Flush  a  cached  version  of  the  sensor data repository (SDR)
315              cache. The SDR is typically cached for faster subsequent access.
316              However,  it  may need to be flushed and re-generated if the SDR
317              has been updated on a system.
318
319       -Q, --quiet-cache
320              Do not output information about cache creation/deletion. May  be
321              useful in scripting.
322
323       --sdr-cache-recreate
324              If the SDR cache is out of date or invalid, automatically recre‐
325              ate the sensor data repository (SDR) cache. This option  may  be
326              useful for scripting purposes.
327
328       --sdr-cache-file=FILE
329              Specify a specific sensor data repository (SDR) cache file to be
330              stored or read from. If this option is used when multiple  hosts
331              are  specified,  the  same  SDR  cache file will be used for all
332              hosts.
333
334       --sdr-cache-directory=DIRECTORY
335              Specify an alternate directory for sensor data repository  (SDR)
336              caches to be stored or read from. Defaults to the home directory
337              if not specified.
338

HOSTRANGED OPTIONS

340       The following options manipulate hostranged output. See HOSTRANGED SUP‐
341       PORT below for additional information on hostranges.
342
343       -B, --buffer-output
344              Buffer  hostranged output. For each node, buffer standard output
345              until the node has completed its IPMI operation. When specifying
346              this  option, data may appear to output slower to the user since
347              the the entire IPMI operation must complete before any data  can
348              be output.  See HOSTRANGED SUPPORT below for additional informa‐
349              tion.
350
351       -C, --consolidate-output
352              Consolidate hostranged output. The complete standard output from
353              every  node  specified  will  be consolidated so that nodes with
354              identical output are not output twice. A header will list  those
355              nodes  with  the consolidated output. When this option is speci‐
356              fied, no output can be seen until the  IPMI  operations  to  all
357              nodes  has  completed.  If  the  user  breaks out of the program
358              early, all currently consolidated output  will  be  dumped.  See
359              HOSTRANGED SUPPORT below for additional information.
360
361       -F NUM, --fanout=NUM
362              Specify  multiple  host  fanout.  A "sliding window" (or fanout)
363              algorithm is used for parallel IPMI communication so that slower
364              nodes or timed out nodes will not impede parallel communication.
365              The maximum number of threads available at the same time is lim‐
366              ited by the fanout. The default is 64.
367
368       -E, --eliminate
369              Eliminate  hosts  determined  as undetected by ipmidetect.  This
370              attempts to remove the common issue of hostranged execution tim‐
371              ing  out  due  to  several nodes being removed from service in a
372              large cluster. The ipmidetectd daemon must  be  running  on  the
373              node executing the command.
374
375       --always-prefix
376              Always prefix output, even if only one host is specified or com‐
377              municating in-band. This option is primarily useful for  script‐
378              ing  purposes.  Option  will be ignored if specified with the -C
379              option.
380

HOSTRANGED SUPPORT

382       Multiple hosts can be input either as an explicit comma separated lists
383       of  hosts  or  a  range of hostnames in the general form: prefix[n-m,l-
384       k,...], where n < m and l < k, etc. The later form should not  be  con‐
385       fused  with  regular expression character classes (also denoted by []).
386       For example, foo[19] does not represent foo1 or foo9, but rather repre‐
387       sents a degenerate range: foo19.
388
389       This  range  syntax  is  meant only as a convenience on clusters with a
390       prefixNN naming convention and specification of ranges  should  not  be
391       considered  necessary -- the list foo1,foo9 could be specified as such,
392       or by the range foo[1,9].
393
394       Some examples of range usage follow:
395           foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
396           foo[7,9-10] instead of foo7,foo9,foo10
397           foo[0-3] instead of foo0,foo1,foo2,foo3
398
399       As a reminder to the reader, some shells will interpret brackets ([ and
400       ])  for  pattern matching. Depending on your shell, it may be necessary
401       to enclose ranged lists within quotes.
402
403       When multiple hosts are specified by the user, a thread  will  be  exe‐
404       cuted  for each host in parallel up to the configured fanout (which can
405       be adjusted via the -F option). This will allow communication to  large
406       numbers of nodes far more quickly than if done in serial.
407
408       By  default,  standard  output  from each node specified will be output
409       with the hostname prepended to each line. Although this output is read‐
410       able  in  many  situations, it may be difficult to read in other situa‐
411       tions. For example, output from multiple nodes may be  mixed  together.
412       The -B and -C options can be used to change this default.
413
414       In-band  IPMI  Communication  will be used when the host "localhost" is
415       specified. This allows the user to add  the  localhost  into  the  hos‐
416       tranged output.
417

GENERAL TROUBLESHOOTING

419       Most often, IPMI problems are due to configuration problems.
420
421       IPMI  over  LAN  problems  involve  a  misconfiguration  of  the remote
422       machine's BMC.  Double check to make sure the following are  configured
423       properly  in  the remote machine's BMC: IP address, MAC address, subnet
424       mask, username, user enablement, user privilege, password,  LAN  privi‐
425       lege,  LAN enablement, and allowed authentication type(s). For IPMI 2.0
426       connections, double check to make sure the  cipher  suite  privilege(s)
427       and K_g key are configured properly. The bmc-config(8) tool can be used
428       to check and/or change these configuration settings.
429
430       Inband IPMI problems are  typically  caused  by  improperly  configured
431       drivers or non-standard BMCs.
432
433       In  addition  to the troubleshooting tips below, please see WORKAROUNDS
434       below to also if there are any vendor specific bugs that have been dis‐
435       covered and worked around.
436
437       Listed  below  are  many  of the common issues for error messages.  For
438       additional support, please e-mail the <freeipmi-users@gnu.org>  mailing
439       list.
440
441       "username  invalid"  - The username entered (or a NULL username if none
442       was entered) is not available on the remote machine.  It  may  also  be
443       possible the remote BMC's username configuration is incorrect.
444
445       "password  invalid"  - The password entered (or a NULL password if none
446       was entered) is not correct. It may also be possible the  password  for
447       the user is not correctly configured on the remote BMC.
448
449       "password  verification timeout" - Password verification has timed out.
450       A "password invalid" error (described  above)  or  a  generic  "session
451       timeout" (described below) occurred.  During this point in the protocol
452       it cannot be differentiated which occurred.
453
454       "k_g invalid" - The K_g key entered (or a NULL  K_g  key  if  none  was
455       entered)  is  not  correct.  It may also be possible the K_g key is not
456       correctly configured on the remote BMC.
457
458       "privilege level insufficient" - An IPMI command requires a higher user
459       privilege  than  the one authenticated with. Please try to authenticate
460       with a higher privilege. This may require authenticating to a different
461       user which has a higher maximum privilege.
462
463       "privilege  level  cannot  be  obtained  for this user" - The privilege
464       level you are attempting to authenticate with is higher than the  maxi‐
465       mum  allowed for this user. Please try again with a lower privilege. It
466       may also be possible the maximum privilege level allowed for a user  is
467       not configured properly on the remote BMC.
468
469       "authentication  type  unavailable for attempted privilege level" - The
470       authentication type you wish to authenticate with is not available  for
471       this privilege level. Please try again with an alternate authentication
472       type or alternate privilege level. It may also be possible  the  avail‐
473       able  authentication  types you can authenticate with are not correctly
474       configured on the remote BMC.
475
476       "cipher suite id unavailable" - The cipher suite id you wish to authen‐
477       ticate  with  is not available on the remote BMC. Please try again with
478       an alternate cipher suite id. It may also  be  possible  the  available
479       cipher suite ids are not correctly configured on the remote BMC.
480
481       "ipmi  2.0  unavailable"  -  IPMI  2.0 was not discovered on the remote
482       machine. Please try to use IPMI 1.5 instead.
483
484       "connection timeout" - Initial IPMI communication failed. A  number  of
485       potential errors are possible, including an invalid hostname specified,
486       an IPMI IP address cannot be resolved,  IPMI  is  not  enabled  on  the
487       remote  server,  the network connection is bad, etc. Please verify con‐
488       figuration and connectivity.
489
490       "session timeout" - The IPMI session has timed out.  Please  reconnect.
491       If this error occurs often, you may wish to increase the retransmission
492       timeout. Some remote BMCs are considerably slower than others.
493
494       "device not found" - The specified device could not  be  found.  Please
495       check configuration or inputs and try again.
496
497       "driver  timeout"  -  Communication with the driver or device has timed
498       out. Please try again.
499
500       "message timeout" - Communication with the driver or device  has  timed
501       out. Please try again.
502
503       "BMC  busy"  - The BMC is currently busy. It may be processing informa‐
504       tion or have too many simultaneous sessions to manage. Please wait  and
505       try again.
506
507       "could  not  find inband device" - An inband device could not be found.
508       Please check configuration or specify specific device or driver on  the
509       command line.
510
511       "driver timeout" - The inband driver has timed out communicating to the
512       local BMC or service processor. The BMC or  service  processor  may  be
513       busy or (worst case) possibly non-functioning.
514

WORKAROUNDS

516       With  so  many different vendors implementing their own IPMI solutions,
517       different vendors may implement their IPMI protocols  incorrectly.  The
518       following describes a number of workarounds currently available to han‐
519       dle discovered compliance issues. When possible, workarounds have  been
520       implemented so they will be transparent to the user. However, some will
521       require the user to specify a workaround be used via the -W option.
522
523       The hardware listed below may only indicate the hardware that a problem
524       was  discovered  on.  Newer  versions  of hardware may fix the problems
525       indicated below. Similar machines from vendors may or may  not  exhibit
526       the  same  problems.  Different vendors may license their firmware from
527       the same IPMI firmware developer, so it may be worthwhile to try  work‐
528       arounds listed below even if your motherboard is not listed.
529
530       If  you  believe  your hardware has an additional compliance issue that
531       needs a workaround to be implemented, please contact the FreeIPMI main‐
532       tainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
533
534       assumeio  - This workaround flag will assume inband interfaces communi‐
535       cate with system I/O rather than being memory-mapped.  This  will  work
536       around  systems  that report invalid base addresses. Those hitting this
537       issue may see "device not supported" or "could not find inband  device"
538       errors.  Issue observed on HP ProLiant DL145 G1.
539
540       spinpoll  -  This workaround flag will inform some inband drivers (most
541       notably the KCS driver) to spin while polling rather than  putting  the
542       process to sleep. This may significantly improve the wall clock running
543       time of tools because an operating system scheduler's  granularity  may
544       be  much larger than the time it takes to perform a single IPMI message
545       transaction. However, by spinning, your system may be  performing  less
546       useful work by not contexting out the tool for a more useful task.
547
548       authcap  -  This  workaround  flag  will skip early checks for username
549       capabilities, authentication capabilities, and K_g  support  and  allow
550       IPMI  authentication  to  succeed.  It  works around multiple issues in
551       which the remote system does not properly report username capabilities,
552       authentication  capabilities,  or  K_g status. Those hitting this issue
553       may  see  "username  invalid",  "authentication  type  unavailable  for
554       attempted privilege level", or "k_g invalid" errors.  Issue observed on
555       Asus  P5M2/P5MT-R/RS162-E4/RX4,  Intel  SR1520ML/X38ML,  and  Sun  Fire
556       2200/4150/4450 with ELOM.
557
558       idzero  -  This  workaround  flag  will  allow  empty session IDs to be
559       accepted by the client. It works around IPMI sessions that report empty
560       session  IDs  to  the client. Those hitting this issue may see "session
561       timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.
562
563       unexpectedauth - This workaround flag will  allow  unexpected  non-null
564       authcodes  to  be checked as though they were expected. It works around
565       an issue when packets contain non-null authentication  data  when  they
566       should  be  null due to disabled per-message authentication. Those hit‐
567       ting this issue may see "session timeout"  errors.  Issue  observed  on
568       Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.
569
570       forcepermsg  -  This workaround flag will force per-message authentica‐
571       tion to be used no matter what is advertised by the remote  system.  It
572       works  around an issue when per-message authentication is advertised as
573       disabled on the remote system, but it is actually required for the pro‐
574       tocol.  Those  hitting  this  issue  may  see "session timeout" errors.
575       Issue observed on IBM eServer 325.
576
577       endianseq - This workaround flag will flip the endian  of  the  session
578       sequence  numbers  to  allow the session to continue properly. It works
579       around IPMI 1.5 session sequence numbers that  are  the  wrong  endian.
580       Those  hitting  this  issue  may  see  "session  timeout" errors. Issue
581       observed on  some  Sun  ILOM  1.0/2.0  (depends  on  service  processor
582       endian).
583
584       noauthcodecheck  - This workaround flag will tell FreeIPMI to not check
585       the authentication codes returned from IPMI 1.5 command  responses.  It
586       works  around  systems  to  return  invalid authentication codes due to
587       hashing or implementation errors. Users are cautioned  on  the  use  of
588       this option, as it removes an authentication check verifying the valid‐
589       ity of a packet. However, in most organizations, this is unlikely to be
590       a  security  issue.  Those hitting this issue may see "connection time‐
591       out", "session timeout", or  "password  verification  timeout"  errors.
592       Issue observed on Xyratex FB-H8-SRAY.
593
594       intel20  - This workaround flag will work around several Intel IPMI 2.0
595       authentication issues. The issues covered include padding of usernames,
596       and  password  truncation  if  the  authentication  algorithm  is HMAC-
597       MD5-128. Those hitting this issue may see "username invalid", "password
598       invalid",  or  "k_g  invalid" errors. Issue observed on Intel SE7520AF2
599       with Intel Server Management Module (Professional Edition).
600
601       supermicro20 - This workaround flag will work around several Supermicro
602       IPMI  2.0  authentication  issues  on  motherboards  w/  Peppercon IPMI
603       firmware. The issues covered include handling invalid length  authenti‐
604       cation  codes.  Those  hitting  this  issue  may see "password invalid"
605       errors.  Issue observed on Supermicro H8QME with SIMSO  daughter  card.
606       Confirmed fixed on newerver firmware.
607
608       sun20 - This workaround flag will work work around several Sun IPMI 2.0
609       authentication issues. The issues covered include invalid lengthed hash
610       keys,  improperly  hashed keys, and invalid cipher suite records. Those
611       hitting this issue may see "password invalid" or  "bmc  error"  errors.
612       Issue  observed  on Sun Fire 4100/4200/4500 with ILOM.  This workaround
613       automatically includes the "opensesspriv" workaround.
614
615       opensesspriv - This workaround flag will slightly alter FreeIPMI's IPMI
616       2.0 connection protocol to workaround an invalid hashing algorithm used
617       by the remote system. The privilege level sent during the Open  Session
618       stage of an IPMI 2.0 connection is used for hashing keys instead of the
619       privilege level sent during the RAKP1 connection stage.  Those  hitting
620       this  issue may see "password invalid", "k_g invalid", or "bad rmcpplus
621       status code" errors.  Issue observed on Sun  Fire  4100/4200/4500  with
622       ILOM, Inventec 5441/Dell Xanadu II, Supermicro X8DTH, Supermicro X8DTG,
623       Intel S5500WBV/Penguin Relion 700, Intel S2600JF/Appro 512X, and Quanta
624       QSSC-S4R//Appro  GB812X-CN.  This workaround is automatically triggered
625       with the "sun20" workaround.
626
627       integritycheckvalue - This workaround flag will work around an  invalid
628       integrity  check  value  during  an IPMI 2.0 session establishment when
629       using Cipher Suite ID 0. The integrity check value should be 0  length,
630       however  the  remote motherboard responds with a non-empty field. Those
631       hitting this issue may see "k_g  invalid"  errors.  Issue  observed  on
632       Supermicro  X8DTG,  Supermicro X8DTU, and Intel S5500WBV/Penguin Relion
633       700, and Intel S2600JF/Appro 512X.
634
635       assumemaxsdrrecordcount - This workaround will inform  SDR  reading  to
636       stop reading after a known maximum numer of SDR records have been read.
637       This will work around systems that  have  mis-implemented  SDR  reading
638       functions  that.  Those  hitting  this  issue may see "SDR record count
639       invalid" errors. Issue observed on unspecified Inspur motherboard.
640
641       No IPMI 1.5 Support - Some motherboards that support IPMI 2.0 have been
642       found  to  not support IPMI 1.5. Those hitting this issue may see "ipmi
643       2.0 unavailable" or "connection timeout"  errors.  This  issue  can  be
644       worked  around  by  using  IPMI  2.0  instead of IPMI 1.5 by specifying
645       --driver-address=LAN_2_0. Issue observed on HP Proliant DL 145.
646

EXAMPLES

648       # bmc-device --cold-reset
649
650       Perform a cold reset.
651
652       # bmc-device -h ahost -u myusername -p mypassword --cold-reset
653
654       Perform a cold reset of a remote machine using IPMI over LAN.
655
656       # bmc-device -h mycluster[0-127] -u myusername  -p  mypassword  --cold-
657       reset
658
659       Perform a cold reset across a cluster using IPMI over LAN.
660

DIAGNOSTICS

662       Upon  successful  execution, exit status is 0. On error, exit status is
663       1.
664
665       If multiple hosts are specified for communication, the exit status is 0
666       if  and  only  if  all targets successfully execute. Otherwise the exit
667       status is 1.
668

KNOWN ISSUES

670       On older operating systems, if you input your username,  password,  and
671       other  potentially  security  relevant information on the command line,
672       this information may be discovered by other users when using tools like
673       the  ps(1) command or looking in the /proc file system. It is generally
674       more secure to input password information with options like the  -P  or
675       -K  options.  Configuring security relevant information in the FreeIPMI
676       configuration file would also be an appropriate way to hide this infor‐
677       mation.
678
679       In  order  to  prevent  brute force attacks, some BMCs will temporarily
680       "lock up" after a number of remote authentication errors. You may  need
681       to  wait awhile in order to this temporary "lock up" to pass before you
682       may authenticate again.
683

REPORTING BUGS

685       Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
686
688       Copyright © 2008-2012 FreeIPMI Core Team.
689
690       This program is free software; you can redistribute it and/or modify it
691       under  the  terms of the GNU General Public License as published by the
692       Free Software Foundation; either version 3 of the License, or (at  your
693       option) any later version.
694

SEE ALSO

696       freeipmi.conf(5), freeipmi(7)
697
698       http://www.gnu.org/software/freeipmi/
699
700
701
702bmc-device 1.2.1                  2017-03-22                     BMC-DEVICE(8)
Impressum