BMC-INFO(8)

๐ŸŒธ bmc-info(8) โ€” display BMC information ๐ŸŒธ

okay bestie, welcome to bmc-info ๐Ÿ’… it lives in the System Commands part of the manual, and it's genuinely one of the easiest tools in the whole FreeIPMI family โ€” it just walks up to a BMC and shows you what's inside its brain. no cap.


โœจ NAME โœจ

bmc-info โ€” display BMC information ๐Ÿซถ


โœจ SYNOPSIS โœจ

bmc-info [OPTION...]

โœจ DESCRIPTION โœจ

so what does it actually do? bmc-info displays BMC information, like:

  • device version numbers
  • device support
  • globally unique IDs (guids) ๐ŸŽ€

Listed below (and, like, way below) are general IPMI options, tool specific options, troubleshooting information, workaround information, examples, and known issues. For a general introduction to FreeIPMI, go peek at freeipmi(7). it's giving "read the docs bestie" but in a nice way ๐Ÿ’–


โœจ GENERAL OPTIONS โœจ

these are the general options for configuring IPMI communication and executing general tool commands. the whole squad ๐Ÿ”ฅ

  • -D IPMIDRIVER, --driver-type=IPMIDRIVER โ€” specify the driver type to use instead of doing an auto selection. the currently available outofband drivers are LAN and LAN_2_0, which perform IPMI 1.5 and IPMI 2.0 respectively. the currently available inband drivers are KCS, SSIF, OPENIPMI, SUNBMC, and INTELDCMI. pick your fighter, they're all iconic in their own way ๐Ÿ‘‘
  • --disable-auto-probe โ€” don't probe in-band IPMI devices for default settings. like, mind your own business, respectfully ๐Ÿ™ˆ
  • --driver-address=DRIVER-ADDRESS โ€” specify the in-band driver address to be used instead of the probed value. DRIVER-ADDRESS should be prefixed with "0x" for a hex value and '0' for an octal value. lowkey important, don't forget the prefix fr fr.
  • --driver-device=DEVICE โ€” specify the in-band driver device path to be used instead of the probed path. you get to choose the path, main character energy ๐ŸŒˆ
  • --register-spacing=REGISTER-SPACING โ€” specify the in-band driver register spacing instead of the probed value. argument is in bytes (i.e. 32bit register spacing = 4). math but make it cute ๐Ÿงฎ
  • --target-channel-number=CHANNEL-NUMBER โ€” specify the in-band driver target channel number to send IPMI requests to. channel assignment: handled ๐Ÿ’…
  • --target-slave-address=SLAVE-ADDRESS โ€” specify the in-band driver target slave number to send IPMI requests to. yes bestie, aim your requests precisely ๐ŸŽฏ
  • -h IPMIHOST1,IPMIHOST2,...,, --hostname=IPMIHOST1[:PORT],IPMIHOST2[:PORT],... โ€” specify the remote host(s) to communicate with. multiple hostnames may be separated by comma or may be specified in a range format; see HOSTRANGED SUPPORT below. an optional port can be specified with each host, which may be useful in port forwarding or similar situations. if specifying an IPv6 address and port, use the format [ADDRESS]:PORT. so fancy, so correct โœจ
  • -u USERNAME, --username=USERNAME โ€” specify the username to use when authenticating with the remote host. if not specified, a null (i.e. anonymous) username is assumed. the user must have atleast USER privileges in order for this tool to operate fully. no VIP pass, no full tour ๐ŸŽŸ๏ธ
  • -p PASSWORD, --password=PASSWORD โ€” specify the password to use when authenticating with the remote host. if not specified, a null password is assumed. maximum password length is 16 for IPMI 1.5 and 20 for IPMI 2.0. count your characters bestie ๐Ÿ”ข
  • -P, --password-prompt โ€” prompt for password to avoid possibility of listing it in process lists. keep that secret secret ๐Ÿคซ
  • -k K_G, --k-g=K_G โ€” specify the K_g BMC key to use when authenticating with the remote host for IPMI 2.0. if not specified, a null key is assumed. to input the key in hexadecimal form, prefix the string with '0x'. e.g., the key 'abc' can be entered with the either the string 'abc' or the string '0x616263'. two paths, same vibe ๐Ÿ’œ
  • -K, --k-g-prompt โ€” prompt for k-g to avoid possibility of listing it in process lists. again: sneaky ๐Ÿค
  • --session-timeout=MILLISECONDS โ€” specify the session timeout in milliseconds. defaults to 20000 milliseconds (20 seconds) if not specified. giving it twenty whole seconds โณ
  • --retransmission-timeout=MILLISECONDS โ€” specify the packet retransmission timeout in milliseconds. defaults to 1000 milliseconds (1 second) if not specified. the retransmission timeout cannot be larger than the session timeout. not negotiable, that's the rule ๐Ÿšจ
  • -a AUTHENTICATION-TYPE, --authentication-type=AUTHENTICATION-TYPE โ€” specify the IPMI 1.5 authentication type to use. the currently available authentication types are NONE, STRAIGHT_PASSWORD_KEY, MD2, and MD5. defaults to MD5 if not specified. classic choice honestly ๐ŸŒŸ
  • -I CIPHER-SUITE-ID, --cipher-suite-id=CIPHER-SUITE-ID โ€” specify the IPMI 2.0 cipher suite ID to use. the Cipher Suite ID identifies a set of authentication, integrity, and confidentiality algorithms to use for IPMI 2.0 communication. the authentication algorithm identifies the algorithm to use for session setup, the integrity algorithm identifies the algorithm to use for session packet signatures, and the confidentiality algorithm identifies the algorithm to use for payload encryption. defaults to cipher suite ID 3 if not specified. the following cipher suite ids are currently supported:
    • 0 โ€” Authentication Algorithm = None; Integrity Algorithm = None; Confidentiality Algorithm = None
    • 1 โ€” Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = None; Confidentiality Algorithm = None
    • 2 โ€” Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = None
    • 3 โ€” Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
    • 6 โ€” Authentication Algorithm = HMAC-MD5; Integrity Algorithm = None; Confidentiality Algorithm = None
    • 7 โ€” Authentication Algorithm = HMAC-MD5; Integrity Algorithm = HMAC-MD5-128; Confidentiality Algorithm = None
    • 8 โ€” Authentication Algorithm = HMAC-MD5; Integrity Algorithm = HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128
    • 11 โ€” Authentication Algorithm = HMAC-MD5; Integrity Algorithm = MD5-128; Confidentiality Algorithm = None
    • 12 โ€” Authentication Algorithm = HMAC-MD5; Integrity Algorithm = MD5-128; Confidentiality Algorithm = AES-CBC-128
    • 15 โ€” Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = None; Confidentiality Algorithm = None
    • 16 โ€” Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = HMAC_SHA256_128; Confidentiality Algorithm = None
    • 17 โ€” Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = HMAC_SHA256_128; Confidentiality Algorithm = AES-CBC-128

(yes those last two really do use underscores in HMAC_SHA256_128 โ€” she's built different ๐Ÿ˜ญ don't @ me, that's just what the page says ๐Ÿ’€)

  • -l PRIVILEGE-LEVEL, --privilege-level=PRIVILEGE-LEVEL โ€” specify the privilege level to be used. the currently available privilege levels are USER, OPERATOR, and ADMIN. defaults to USER if not specified. glow up to ADMIN when you're ready ๐Ÿ‘‘
  • --config-file=FILE โ€” specify an alternate configuration file. your config, your rules ๐ŸŽ€
  • -W WORKAROUNDS, --workaround-flags=WORKAROUNDS โ€” specify workarounds to vendor compliance issues. multiple workarounds can be specified separated by commas. a special command line flag of "none" will indicate no workarounds (may be useful for overriding configured defaults). see WORKAROUNDS below for a list of available workarounds. we love a flexible queen ๐ŸŒธ
  • --debug โ€” turn on debugging. the tea is piping hot โ˜•
  • -?, --help โ€” output a help list and exit. the built-in bestie ๐Ÿซถ
  • --usage โ€” output a usage message and exit. short and sweet โญ
  • -V, --version โ€” output the program version and exit. identity check ๐Ÿ’–

โœจ BMC-INFO OPTIONS โœจ

these ones are specific to bmc-info, and honestly? they're the whole point. slay ๐Ÿ’…

  • --get-device-id โ€” display only device ID information. just the ID, nothing extra ๐ŸŽฏ
  • --get-device-guid โ€” display only device guid. one guid, all vibes ๐Ÿฆ‹
  • --get-system-guid โ€” display only system guid. system-level uniqueness, iconic ๐ŸŒŸ
  • --get-system-info โ€” display only system info. the whole system's little biography ๐Ÿ“–
  • --get-channel-info โ€” display only channel information. channel content, curated โœจ
  • --interpret-oem-data โ€” attempt to interpret OEM data, such as event data, sensor readings, or general extra info, etc. if an OEM interpretation is not available, the default output will be generated. correctness of OEM interpretations cannot be guaranteed due to potential changes OEM vendors may make in products, firmware, etc. see OEM INTERPRETATION below for confirmed supported motherboard interpretations. we're doing our best and being honest about it ๐Ÿ˜ญ๐Ÿ™ˆ

โœจ HOSTRANGED OPTIONS โœจ

these options manipulate hostranged output. see HOSTRANGED SUPPORT below for additional information on hostranges. it's giving "many hosts, one very organized bestie" ๐Ÿ‘‘

  • -B, --buffer-output โ€” buffer hostranged output. for each node, buffer standard output until the node has completed its IPMI operation. when specifying this option, data may appear to output slower to the user since the the entire IPMI operation must complete before any data can be output. see HOSTRANGED SUPPORT below for additional information. patience is a virtue and also literally required here โณ
  • -C, --consolidate-output โ€” consolidate hostranged output. the complete standard output from every node specified will be consolidated so that nodes with identical output are not output twice. a header will list those nodes with the consolidated output. when this option is specified, no output can be seen until the IPMI operations to all nodes has completed. if the user breaks out of the program early, all currently consolidated output will be dumped. see HOSTRANGED SUPPORT below for additional information. dedupe queen ๐Ÿ™Œ
  • -F NUM, --fanout=NUM โ€” specify multiple host fanout. a "sliding window" (or fanout) algorithm is used for parallel IPMI communication so that slower nodes or timed out nodes will not impede parallel communication. the maximum number of threads available at the same time is limited by the fanout. the default is 64. sixty-four little threads all doing their thing ๐Ÿงต
  • -E, --eliminate โ€” eliminate hosts determined as undetected by ipmidetect. this attempts to remove the common issue of hostranged execution timing out due to several nodes being removed from service in a large cluster. the ipmidetectd daemon must be running on the node executing the command. bye-bye ghost nodes ๐Ÿ‘‹๐Ÿ’€
  • --always-prefix โ€” always prefix output, even if only one host is specified or communicating in-band. this option is primarily useful for scripting purposes. option will be ignored if specified with the -C option. sorry -C, you win this round ๐Ÿ’…

okay that's the first chunk, bestie โ€” there's more coming, don't go anywhere ๐ŸŽ€

๐Ÿ’– HOSTRANGED SUPPORT ๐Ÿ’–

Okay so bestie, here's the tea on feeding this thing multiple hosts at once. You've got two ways: either you write out an explicit comma-separated list of hosts, or you give a range of hostnames in the general form prefix[n-m,l-k,...], where n < m and l < k, etc. ๐ŸŒˆ

โš ๏ธ Do not confuse the range form with regular expression character classes โ€” which, yes, also use []. They are not the same thing, no cap. For example, foo[19] does not represent foo1 or foo9 โ€” it's a degenerate range and it literally just means foo19. ๐Ÿ’€

This range syntax is meant only as a convenience on clusters that follow a prefixNN naming convention, and honestly specifying ranges is never necessary โ€” the list foo1,foo9 can be written as foo1,foo9, or you could write it as the range foo[1,9]. Either slaps. โœจ

Some examples of range usage, for the visual learners:

foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
foo[7,9-10] instead of foo7,foo9,foo10
foo[0-3] instead of foo0,foo1,foo2,foo3

And a lil reminder to the reader (that's you ๐Ÿซถ): some shells will interpret brackets ([ and ]) for pattern matching. Depending on your shell, you may need to enclose ranged lists within quotes. Protect your brackets, they're doing their best. ๐ŸŽ€

When multiple hosts are specified by the user, a thread will be executed for each host in parallel, up to the configured fanout โ€” which you can adjust via the -F option. This lets you talk to large numbers of nodes so much faster than doing it in serial. Main character energy for your cluster. ๐Ÿ‘‘

By default, standard output from each node specified will be output with the hostname prepended to each line. This is readable in many situations, but ngl it can be difficult to read in others โ€” for example, output from multiple nodes may be mixed together. The -B and -C options can be used to change this default. ๐Ÿ™ˆ

In-band IPMI Communication will be used when the host localhost is specified. This allows the user to add the localhost into the hostranged output. Cute, right? ๐ŸŒธ


๐Ÿ”ง GENERAL TROUBLESHOOTING ๐Ÿ”ง

Most often, IPMI problems are due to configuration problems. Like, that's the whole vibe. ๐Ÿ’…

IPMI over LAN problems involve a misconfiguration of the remote machine's BMC. Double check to make sure the following are configured properly in the remote machine's BMC: IP address, MAC address, subnet mask, username, user enablement, user privilege, password, LAN privilege, LAN enablement, and allowed authentication type(s). For IPMI 2.0 connections, double check to make sure the cipher suite privilege(s) and K_g key are configured properly. The ipmi-config(8) tool can be used to check and/or change these configuration settings. It's giving "have you tried turning it off and on again" but for BMCs. โœจ

Inband IPMI problems are typically caused by improperly configured drivers or non-standard BMCs.

In addition to the troubleshooting tips below, please see WORKAROUNDS below to also if there are any vendor specific bugs that have been discovered and worked around. ๐Ÿ‘€

Listed below are many of the common issues for error messages. For additional support, please e-mail the <freeipmi-users@gnu.org> mailing list. They're lovely, fr fr. ๐Ÿ’Œ

"username invalid" โ€” The username entered (or a NULL username if none was entered) is not available on the remote machine. It may also be possible the remote BMC's username configuration is incorrect. ๐Ÿ˜ญ

"password invalid" โ€” The password entered (or a NULL password if none was entered) is not correct. It may also be possible the password for the user is not correctly configured on the remote BMC.

"password verification timeout" โ€” Password verification has timed out. A "password invalid" error (described above) or a generic "session timeout" (described below) occurred. During this point in the protocol it cannot be differentiated which occurred. Rude, honestly. ๐Ÿ˜ค

"k_g invalid" โ€” The K_g key entered (or a NULL K_g key if none was entered) is not correct. It may also be possible the K_g key is not correctly configured on the remote BMC.

"privilege level insufficient" โ€” An IPMI command requires a higher user privilege than the one authenticated with. Please try to authenticate with a higher privilege. This may require authenticating to a different user which has a higher maximum privilege. Level up! ๐ŸŽฎ

"privilege level cannot be obtained for this user" โ€” The privilege level you are attempting to authenticate with is higher than the maximum allowed for this user. Please try again with a lower privilege. It may also be possible the maximum privilege level allowed for a user is not configured properly on the remote BMC.

"authentication type unavailable for attempted privilege level" โ€” The authentication type you wish to authenticate with is not available for this privilege level. Please try again with an alternate authentication type or alternate privilege level. It may also be possible the available authentication types you can authenticate with are not correctly configured on the remote BMC.

"cipher suite id unavailable" โ€” The cipher suite id you wish to authenticate with is not available on the remote BMC. Please try again with an alternate cipher suite id. It may also be possible the available cipher suite ids are not correctly configured on the remote BMC. ๐Ÿ”

"ipmi 2.0 unavailable" โ€” IPMI 2.0 was not discovered on the remote machine. Please try to use IPMI 1.5 instead. Throwback era, but okay. ๐Ÿฆ‹

"connection timeout" โ€” Initial IPMI communication failed. A number of potential errors are possible, including an invalid hostname specified, an IPMI IP address cannot be resolved, IPMI is not enabled on the remote server, the network connection is bad, etc. Please verify configuration and connectivity. The classic "is it plugged in" moment. ๐Ÿ’€

"session timeout" โ€” The IPMI session has timed out. Please reconnect. If this error occurs often, you may wish to increase the retransmission timeout. Some remote BMCs are considerably slower than others. Give them a minute, they're doing their best. ๐Ÿข

"device not found" โ€” The specified device could not be found. Please check configuration or inputs and try again.

"driver timeout" โ€” Communication with the driver or device has timed out. Please try again.

"message timeout" โ€” Communication with the driver or device has timed out. Please try again.

"BMC busy" โ€” The BMC is currently busy. It may be processing information or have too many simultaneous sessions to manage. Please wait and try again. She's booked and busy, respect it. ๐Ÿ’…

"could not find inband device" โ€” An inband device could not be found. Please check configuration or specify specific device or driver on the command line.

"driver timeout" โ€” The inband driver has timed out communicating to the local BMC or service processor. The BMC or service processor may be busy or (worst case) possibly non-functioning. Worst case!! ๐Ÿ˜ญ


๐Ÿ› ๏ธ WORKAROUNDS ๐Ÿ› ๏ธ

Okay bestie, listen โ€” the IPMI world is a whole mess of vendors doing their own thing, and sometimes they implement the protocols wrong. Like, not "oops typo" wrong, but "the spec says this and they shipped that" wrong. The following is the whole menu of workarounds currently available for the compliance issues people have discovered out there in the wild. ๐Ÿ’€

Where we could, the workarounds just happen automatically so they're transparent to you โ€” no action needed, you're welcome. But some of them you gotta ask for yourself, using the -W option. iykyk.

Some real talk about the hardware list below: it might only mean that's the hardware where somebody first found the problem. Newer versions of the same hardware may have already fixed it. Similar machines from the same vendor may or may not have the same issue โ€” it's giving chaos. And plot twist: different vendors sometimes license their firmware from the same IPMI firmware developer, so it's genuinely worth trying the workarounds below even if your motherboard isn't listed. fr fr.

If you think your hardware has another compliance issue that deserves a workaround, please hit up the FreeIPMI maintainers at <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. They wanna hear it. ๐Ÿซถ

  • assumeio โ€” this one assumes the inband interfaces talk to system I/O instead of being memory-mapped. It's the fix for systems that report base addresses that are justโ€ฆ wrong. If you're hitting this you might see "device not supported" or "could not find inband device" errors. Observed on the HP ProLiant DL145 G1. โœจ
  • spinpoll โ€” this tells some inband drivers (most notably the KCS driver) to spin while polling instead of putting the process to sleep. That can significantly improve the wall clock running time of tools, because your operating system scheduler's granularity may be way bigger than the time it takes to do a single IPMI message transaction. But โ€” and this is the tradeoff, bestie โ€” by spinning, your system may be doing less useful work, because it's not contexting the tool out for a more useful task. ๐Ÿ˜ญ
  • authcap โ€” skips the early checks for username capabilities, authentication capabilities, and K_g support, and just lets IPMI authentication succeed. It works around multiple issues where the remote system doesn't properly report username capabilities, authentication capabilities, or K_g status. Hitting this? You might see "username invalid", "authentication type unavailable for attempted privilege level", or "k_g invalid" errors. Observed on Asus P5M2/P5MT-R/RS162-E4/RX4, Intel SR1520ML/X38ML, and Sun Fire 2200/4150/4450 with ELOM. ๐Ÿ’…
  • nochecksumcheck โ€” tells FreeIPMI to not check the checksums returned from IPMI command responses. It works around systems that return invalid checksums because of implementation errors, even though the packet is otherwise valid. > Fair warning though: users are cautioned on the use of this option, because it removes validation of packet integrity in a number of circumstances. That said, it's unlikely to be an issue in most situations. You might see "connection timeout", "session timeout", or "password verification timeout" errors. On IPMI 1.5 connections, the "noauthcodecheck" workaround may also be needed too. Observed on Supermicro X9SCM-iiF, Supermicro X9DRi-F, and Supermicro X9DRFR. ๐Ÿฆ‹
  • idzero โ€” lets the client accept empty session IDs. It works around IPMI sessions that report empty session IDs to the client. You might see "session timeout" errors. Observed on Tyan S2882 with M3289 BMC. ๐ŸŒธ
  • unexpectedauth โ€” allows unexpected non-null authcodes to be checked as though they were expected. It works around an issue where packets contain non-null authentication data when they should be null, because per-message authentication is disabled. You might see "session timeout" errors. Observed on Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware. โœจ
  • forcepermsg โ€” forces per-message authentication to be used no matter what the remote system advertises. It works around an issue where per-message authentication is advertised as disabled on the remote system, but it's actually required for the protocol. Like, pick a lane, babe. You might see "session timeout" errors. Observed on IBM eServer 325. ๐ŸŽ€
  • endianseq โ€” flips the endian of the session sequence numbers so the session can continue properly. It works around IPMI 1.5 session sequence numbers that are the wrong endian. You might see "session timeout" errors. Observed on some Sun ILOM 1.0/2.0 (depends on service processor endian). ๐Ÿ™ˆ
  • noauthcodecheck โ€” tells FreeIPMI to not check the authentication codes returned from IPMI 1.5 command responses. It works around systems that return invalid authentication codes due to hashing or implementation errors. > Users are cautioned on the use of this option, as it removes an authentication check verifying the validity of a packet. However, in most organizations, this is unlikely to be a security issue. You might see "connection timeout", "session timeout", or "password verification timeout" errors. Observed on Xyratex FB-H8-SRAY, Intel Windmill, Quanta Winterfell, and Wiwynn Windmill. ๐Ÿ‘‘
  • intel20 โ€” works around several Intel IPMI 2.0 authentication issues. The issues covered include padding of usernames, and password truncation if the authentication algorithm is HMAC-MD5-128. You might see "username invalid", "password invalid", or "k_g invalid" errors. Observed on Intel SE7520AF2 with Intel Server Management Module (Professional Edition). ๐Ÿ”ฅ
  • supermicro20 โ€” works around several Supermicro IPMI 2.0 authentication issues on motherboards w/ Peppercon IPMI firmware. The issues covered include handling invalid length authentication codes. You might see "password invalid" errors. Observed on Supermicro H8QME with SIMSO daughter card. Confirmed fixed on newerver firmware. ๐Ÿ’œ
  • sun20 โ€” works around several Sun IPMI 2.0 authentication issues. The issues covered include invalid lengthed hash keys, improperly hashed keys, and invalid cipher suite records. You might see "password invalid" or "bmc error" errors. Observed on Sun Fire 4100/4200/4500 with ILOM. Heads up: this workaround automatically includes the "opensesspriv" workaround. ๐ŸŒˆ
  • opensesspriv โ€” slightly alters FreeIPMI's IPMI 2.0 connection protocol to work around an invalid hashing algorithm used by the remote system. The privilege level sent during the Open Session stage of an IPMI 2.0 connection gets used for hashing keys, instead of the privilege level sent during the RAKP1 connection stage. You might see "password invalid", "k_g invalid", "bad rmcpplus status code", or "privilege level cannot be obtained for this user" errors. Observed on Sun Fire 4100/4200/4500 with ILOM, Inventec 5441/Dell Xanadu II, Supermicro X8DTH, Supermicro X8DTG, Intel S5500WBV/Penguin Relion 700, Intel S2600JF/Appro 512X, Quanta QSSC-S4R/Appro GB812X-CN, Dell C5220, and the OpenIPMI software BMC. This workaround is automatically triggered with the "sun20" workaround. โญ
  • integritycheckvalue โ€” works around an invalid integrity check value during an IPMI 2.0 session establishment when using Cipher Suite ID 0. The integrity check value should be 0 length, but the remote motherboard responds with a non-empty field. Rude. You might see "k_g invalid" errors. Observed on Supermicro X8DTG, Supermicro X8DTU, and Intel S5500WBV/Penguin Relion 700, and Intel S2600JF/Appro 512X. ๐Ÿ“
  • guidformat โ€” a number of vendors send the bytes of the GUID (like the GUID in --get-device-guid or --get-system-guid) in an alternate format that aligns incorrectly with IPMI, but correctly with other standards. This workaround flag instructs bmc-info to read the GUID and output the GUID based on this common alternate format. ๐Ÿงš
  • No IPMI 1.5 Support โ€” some motherboards that support IPMI 2.0 have been found to not support IPMI 1.5. Those hitting this issue may see "ipmi 2.0 unavailable" or "connection timeout" errors. You can work around this by using IPMI 2.0 instead of IPMI 1.5 โ€” just specify --driver-type=LAN_2_0. Issue observed on a number of HP and Supermicro motherboards. ๐Ÿ˜ค

๐Ÿ” OEM INTERPRETATION ๐Ÿ”

These motherboards are confirmed to have at least some support by the --interpret-oem-data option. And while it's highly probable the OEM data interpretations would work across other motherboards from the same manufacturer, there are no guarantees. Some of the motherboards below may be rebranded by vendors/distributors. ๐Ÿ’…

  • Dell Poweredge R610
  • Dell Poweredge R710
  • Intel SR870BN4/Tiger4

๐ŸŽ€ EXAMPLES ๐ŸŽ€

# bmc-info

Get BMC information of the local machine. Easy. Local queen behavior. ๐Ÿ‘‘

# bmc-info -h ahost -u myusername -p mypassword

Get BMC information of a remote machine using IPMI over LAN. Remote slay. โœจ

# bmc-info -h mycluster[0-127] -u myusername -p mypassword

Get BMC information across a cluster using IPMI over LAN. Whole-cluster main character energy. ๐Ÿ”ฅ


๐Ÿฉบ DIAGNOSTICS ๐Ÿฉบ

Upon successful execution, exit status is 0. On error, exit status is 1. Simple as that, bestie.

If multiple hosts are specified for communication, the exit status is 0 if and only if all targets successfully execute. Otherwise the exit status is 1. So like, one flop ruins it for everyone. ๐Ÿ˜ญ


๐Ÿ’€ KNOWN ISSUES ๐Ÿ’€

On older operating systems, if you input your username, password, and other potentially security relevant information on the command line, this information may be discovered by other users โ€” like when they use tools such as the ps(1) command or go looking in the /proc file system. Not cute. It's generally more secure to input password information with options like the -P or -K options. Configuring security relevant information in the FreeIPMI configuration file would also be an appropriate way to hide this information. Do that. Please. ๐Ÿ™

And for real, in order to prevent brute force attacks, some BMCs will temporarily "lock up" after a number of remote authentication errors. So you may need to wait awhile for this temporary "lock up" to pass before you may authenticate again. It's not you, it's them. ๐ŸŒธ


๐Ÿ› REPORTING BUGS ๐Ÿ›

Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. They're literally waiting for your emails. ๐Ÿซถ


Copyright ยฉ 2003-2015 FreeIPMI Core Team.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Iconic licensing, no cap. ๐Ÿ‘‘


๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

http://www.gnu.org/software/freeipmi/


And that's a wrap on bmc-info, bestie! ๐Ÿ’– This page is from bmc-info 1.6.20, dated 2026-10-05 โ€” go forth, query your BMCs, and remember: it's not a bug, it's a workaround. Mwah. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from