IPMI-FRU(8)
okay bestie, you found ipmi-fru(8) from the System Commands manual and honestly? iconic. ๐ This is the page that shows you FRU info without making you feel like youโre decoding a microwave manual. Letโs get into it.
๐ธ NAME ๐ธ
ipmi-fru โ display FRU information. periodt. ๐
โจ SYNOPSIS โจ
ipmi-fru [OPTION...]
๐ฆ DESCRIPTION ๐ฆ
ipmi-fru displays Field Replaceable Unit (FRU) Information. The FRU may hold a variety of information, such as device information, hardware information, serial numbers, and part numbers. the way that little chip holds lore ๐ญ
Listed below are general IPMI options, tool specific options, trouble shooting information, workaround information, examples, and known issues. For a general introduction to FreeIPMI please see freeipmi(7).
๐ GENERAL OPTIONS ๐
The following options are general options for configuring IPMI communication and executing general tool commands. group-chat setup energy ๐ซถ
-D IPMIDRIVER,--driver-type=IPMIDRIVERโ Specify the driver type to use instead of doing an auto selection. The currently available outofband drivers areLANandLAN_2_0, which perform IPMI 1.5 and IPMI 2.0 respectively. The currently available inband drivers areKCS,SSIF,OPENIPMI,SUNBMC, andINTELDCMI. pick your driver, bestie โจ--disable-auto-probeโ Do not probe in-band IPMI devices for default settings. no-probe zone ๐ซ--driver-address=DRIVER-ADDRESSโ Specify the in-band driver address to be used instead of the probed value.DRIVER-ADDRESSshould be prefixed with0xfor a hex value and0for an octal value.--driver-device=DEVICEโ Specify the in-band driver device path to be used instead of the probed path.--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).--target-channel-number=CHANNEL-NUMBERโ Specify the in-band driver target channel number to send IPMI requests to.--target-slave-address=SLAVE-ADDRESSโ Specify the in-band driver target slave number to send IPMI requests to.-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; seeHOSTRANGED SUPPORTbelow. 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. hostnames, but make it cute ๐ฆ-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 at leastUSERprivileges in order for this tool to operate fully.-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 is16for IPMI 1.5 and20for IPMI 2.0. keep it within limits, bestie ๐-P,--password-promptโ Prompt for password to avoid possibility of listing it in process lists. secretive little icon ๐-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 with0x. E.g., the keyabccan be entered with either the stringabcor the string0x616263. hex key realness โจ-K,--k-g-promptโ Prompt for k-g to avoid possibility of listing it in process lists.--session-timeout=MILLISECONDSโ Specify the session timeout in milliseconds. Defaults to20000milliseconds (20 seconds) if not specified.--retransmission-timeout=MILLISECONDSโ Specify the packet retransmission timeout in milliseconds. Defaults to1000milliseconds (1 second) if not specified. The retransmission timeout cannot be larger than the session timeout. fr fr, it cannot โ ๏ธ-a AUTHENTICATION-TYPE,--authentication-type=AUTHENTICATION-TYPEโ Specify the IPMI 1.5 authentication type to use. The currently available authentication types areNONE,STRAIGHT_PASSWORD_KEY,MD2, andMD5. Defaults toMD5if not specified.-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 ID3if not specified. The following cipher suite ids are currently supported:0โ Authentication Algorithm = None; Integrity Algorithm = None; Confidentiality Algorithm = None1โ Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = None; Confidentiality Algorithm = None2โ Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = None3โ Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-1286โ Authentication Algorithm = HMAC-MD5; Integrity Algorithm = None; Confidentiality Algorithm = None7โ Authentication Algorithm = HMAC-MD5; Integrity Algorithm = HMAC-MD5-128; Confidentiality Algorithm = None8โ Authentication Algorithm = HMAC-MD5; Integrity Algorithm = HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-12811โ Authentication Algorithm = HMAC-MD5; Integrity Algorithm = MD5-128; Confidentiality Algorithm = None12โ Authentication Algorithm = HMAC-MD5; Integrity Algorithm = MD5-128; Confidentiality Algorithm = AES-CBC-12815โ Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = None; Confidentiality Algorithm = None16โ Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = HMAC_SHA256_128; Confidentiality Algorithm = None17โ Authentication Algorithm = HMAC-SHA256; Integrity Algorithm = HMAC_SHA256_128; Confidentiality Algorithm = AES-CBC-128
thatโs the whole cipher suite menu, no cap ๐
-l PRIVILEGE-LEVEL,--privilege-level=PRIVILEGE-LEVELโ Specify the privilege level to be used. The currently available privilege levels areUSER,OPERATOR, andADMIN. Defaults toUSERif not specified. choose your level wisely ๐--config-file=FILEโ Specify an alternate configuration file.-W WORKAROUNDS,--workaround-flags=WORKAROUNDSโ Specify workarounds to vendor compliance issues. Multiple workarounds can be specified separated by commas. A special command line flag ofnonewill indicate no workarounds (may be useful for overriding configured defaults). SeeWORKAROUNDSbelow for a list of available workarounds. vendor chaos workaround era ๐ฅ--debugโ Turn on debugging.-?,--helpโ Output a help list and exit.--usageโ Output a usage message and exit.-V,--versionโ Output the program version and exit.
๐ IPMI-FRU OPTIONS ๐
The following options are specific to ipmi-fru. this is the main character section ๐
-e, --device-id=IDNUMโ Specify a specific FRU device ID.-v, --verboseโ Increase verbosity in output to include additional output. more lore, more words โจ--bridge-fruโ By default, FRU entries on other satellite controllers will not be read by default. Bridging may not work on some interfaces/driver types. not every bridge is gonna slay ๐--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. SeeOEM INTERPRETATIONbelow for confirmed supported motherboard interpretations. OEM data can be a little mysterious, bestie ๐--fru-file=FILENAMEโ Output data from the specified FRU binary file instead of reading FRU data off of a board.
๐ SDR CACHE OPTIONS ๐
This tool requires access to the sensor data repository (SDR) cache for general operation. By default, SDR data will be downloaded and cached on the local machine. The following options apply to the SDR cache. SDR cache is doing a lot of heavy lifting ๐
--flush-cacheโ Flush a cached version of the sensor data repository (SDR) cache. The SDR is typically cached for faster subsequent access. However, it may need to be flushed and re-generated if the SDR has been updated on a system.--quiet-cacheโ Do not output information about cache creation/deletion. May be useful in scripting. shhh, cache business ๐คซ--sdr-cache-recreateโ If the SDR cache is out of date or invalid, automatically recreate the sensor data repository (SDR) cache. This option may be useful for scripting purposes.--sdr-cache-file=FILEโ Specify a specific sensor data repository (SDR) cache file to be stored or read from. If this option is used when multiple hosts are specified, the same SDR cache file will be used for all hosts.--sdr-cache-directory=DIRECTORYโ Specify an alternate directory for sensor data repository (SDR) caches to be stored or read from. Defaults to the home directory if not specified. home directory core ๐--ignore-sdr-cacheโ Ignore SDR cache related processing. May lead to incomplete or less useful information being output, however it will allow functionality for systems without SDRs or when the correct SDR cannot be loaded. could be incomplete, but sometimes you gotta ๐ญ
โฐ TIME OPTIONS โฐ
By IPMI definition, all IPMI times and timestamps are stored in localtime. However, in many situations, the timestamps will not be stored in localtime. Whether or not a system truly stored the timestamps in localtime varies on many factors, such as the vendor, BIOS, and operating system. The following options will allow the user to adjust the interpretation of the stored timestamps and how they should be output. timezone lore is real ๐ฐ๏ธ
--utc-to-localtimeโ Assume all times are reported in UTC time and convert the time to localtime before being output.--localtime-to-utcโ Convert all localtime timestamps to UTC before being output.--utc-offset=SECONDSโ Specify a specific UTC offset in seconds to be added to timestamps. Value can range from-86400to86400seconds. Defaults to0. math but make it timestamp โจ
โจ HOSTRANGED OPTIONS โจ
okay so these next ones are all about how the output gets formatted when you're blasting the same command at a whole pile of hosts at once. lowkey this is the good stuff โ see HOSTRANGED SUPPORT below for the full tea on hostranges. ๐
-B,--buffer-outputโ buffers the hostranged output, bestie. For each node, standard output gets held back until that node has completely finished its IPMI operation. so yeah, when you use this the data might look like it's coming at you slower, because the entire IPMI operation has to wrap up before literally any of it can be printed. it's giving patience. see HOSTRANGED SUPPORT below for more deets. ๐ซถ-C,--consolidate-outputโ consolidates the hostranged output. the complete standard output from every node you specified gets smooshed together so that nodes with identical output don't get printed twice. a header will list which nodes share that consolidated output. heads up though: when you use this, you see nothing until the IPMI operations to all the nodes have completed. absolute silence. and if you break out of the program early, all the currently consolidated output gets dumped. still giving. see HOSTRANGED SUPPORT below. ๐ญ-F NUM,--fanout=NUMโ sets the multiple host fanout. it's a "sliding window" (aka fanout) algorithm used for parallel IPMI communication, so that slower nodes or nodes that time out don't block the parallel communication for everyone else. the max number of threads running at the same time is limited by the fanout. default is64. sixty-four besties at once, iconic. ๐-E,--eliminateโ eliminates hosts thatipmidetecthas determined are undetected. this is here to fix the extremely common vibe-killer where hostranged execution times out because a bunch of nodes got removed from service in a large cluster. theipmidetectddaemon must be running on the node that's executing the command. no daemon, no dice. โญ--always-prefixโ always prefix the output, even if there's only one host specified or you're communicating in-band. this one's mostly for scripting purposes, fr fr. important: this option will be ignored if you specify it with the-Coption. they do not get along. ๐
๐ธ HOSTRANGED SUPPORT ๐ธ
so you can input multiple hosts two ways: as an explicit comma-separated list of hosts, or as a range of hostnames in the general form prefix[n-m,l-k,...], where n < m and l < k, etc. please do not confuse the range form with regular expression character classes (which also use [], iykyk). for example, foo[19] does not mean foo1 or foo9 โ it represents a degenerate range: foo19. not me being surprised by this the first time either. ๐
this range syntax is only meant to be a convenience on clusters that use a prefixNN naming convention, and specifying ranges should not be considered necessary โ the list foo1,foo9 could just be specified as such, or via the range foo[1,9]. either way slays.
some examples of range usage:
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
quick reminder to the reader bestie: some shells will interpret brackets ([ and ]) for pattern matching. depending on your shell, you may need to enclose ranged lists within quotes. don't get caught out. ๐
when multiple hosts are specified, a thread gets executed for each host in parallel up to the configured fanout (which, remember, you can adjust with the -F option). this lets you talk to a huge number of nodes way faster than if you did it all in serial. parallel queen behavior. ๐
by default, standard output from each node gets output with the hostname prepended to each line. this is readable in a lot of situations, but it can get rough in others โ for example, output from multiple nodes may get mixed together into one big soup. the -B and -C options exist to change this default. pick your fighter.
in-band IPMI communication will be used when the host localhost is specified. this lets you add localhost into the hostranged output. cute and convenient. ๐
๐ง GENERAL TROUBLESHOOTING ๐ง
okay so real talk โ most of the time, IPMI problems are due to configuration problems. like, it's almost always config. breathe. let's go through it.
IPMI over LAN problems
IPMI over LAN problems involve a misconfiguration of the remote machine's BMC. double check that 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). that's a lot of checkboxes, bestie, tick them all. for IPMI 2.0 connections, also double check that 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 literally right there, use it. โจ
Inband IPMI problems
Inband IPMI problems are typically caused by improperly configured drivers or non-standard BMCs. that's the whole story on that one.
in addition to the troubleshooting tips below, please also see WORKAROUNDS below to check if there are any vendor specific bugs that have been discovered and worked around. ๐
the error messages, decoded
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 nice, I promise.
- "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 that 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. at this point in the protocol it cannot be differentiated which one happened. the ambiguity is the drama. ๐ - "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 you authenticated with. please try to authenticate with a higher privilege. this may require authenticating to a different user which has a higher maximum privilege. glow up your privilege level. ๐
- "privilege level cannot be obtained for this user" โ the privilege level you're 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 isn't available for this privilege level. please try again with an alternate authentication type or alternate privilege level. it may also be possible that 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. downgrade era, but make it work. ๐ญ
- "connection timeout" โ initial IPMI communication failed. a number of potential errors are possible here, including an invalid hostname specified, an IPMI IP address that cannot be resolved, IPMI not being enabled on the remote server, a bad network connection, etc. please verify configuration and connectivity. ๐ฆ
- "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. not everyone can be fast, ok. ๐
- "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. (yes it's worded the same as the one above, no I'm not kidding, they're two separate things fr fr.)
- "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. ๐
- "could not find inband device" โ an inband device could not be found. please check configuration or specify a 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. ๐ซ
- "internal IPMI error" โ an IPMI error has occurred that FreeIPMI does not know how to handle. please e-mail
freeipmi-users@gnu.orgto report the issue. that one's not on you, bestie, that's on us. ๐
if you're seeing a bunch of these in a row, it's almost always the config, not the tool. double check the BMC settings first before spiraling. ๐
๐ ๏ธ WORKAROUNDS ๐ ๏ธ
okay so here's the tea: every vendor out there is out here implementing their own IPMI solution, and likeโฆ some of them did it wrong. Not being mean, it's just facts. So the following is the whole rundown of workarounds available for the compliance issues people have found. When it's possible, the workarounds are implemented so they're transparent to you โ you won't even notice. But some of them? You gotta specify them yourself via the -W option. iykyk.
The hardware listed below may only indicate the hardware that a problem was discovered on. Newer versions of hardware might have fixed these problems already. Similar machines from the same vendors may or may not have the same problems โ it's giving "your mileage may vary". And bestie, listen: different vendors may license their firmware from the same IPMI firmware developer, so it's genuinely worth trying the workarounds below even if your motherboard isn't on the list. ๐
If you think your hardware has an extra compliance issue that needs a workaround implemented, pls contact the FreeIPMI maintainers at <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. They'd love to hear from you fr.
assumeioโ this workaround flag assumes inband interfaces communicate with system I/O instead of being memory-mapped. It works around systems that report invalid base addresses. If you're hitting this, you might see"device not supported"or"could not find inband device"errors. Issue observed on HP ProLiant DL145 G1.spinpollโ this flag tells some inband drivers (most notably the KCS driver) to spin while polling instead of putting the process to sleep. The way this can significantly improve the wall clock running time of tools ๐ญ because an operating system scheduler's granularity may be much larger than the time it takes to perform a single IPMI message transaction. But heads up: by spinning, your system may be doing less useful work by not contexting out the tool for a more useful task. Tradeoffs, bestie.authcapโ this one skips early checks for username capabilities, authentication capabilities, andK_gsupport, and just lets IPMI authentication succeed. It works around multiple issues where the remote system doesn't properly report username capabilities, authentication capabilities, orK_gstatus. Hitting this? You might see"username invalid","authentication type unavailable for attempted privilege level", or"k_g invalid"errors. Issue observed on Asus P5M2/P5MT-R/RS162-E4/RX4, Intel SR1520ML/X38ML, and Sun Fire 2200/4150/4450 with ELOM.nochecksumcheckโ this flag tells FreeIPMI to not check the checksums returned from IPMI command responses. It works around systems that return invalid checksums due to implementation errors, even though the packet is otherwise valid. > โ ๏ธ 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, so no panic. If you're hitting this, 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. Issue observed on Supermicro X9SCM-iiF, Supermicro X9DRi-F, and Supermicro X9DRFR.idzeroโ allows empty session IDs to be accepted by the client. Works around IPMI sessions that report empty session IDs to the client. Hitting this? You might see"session timeout"errors. Issue 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 when packets contain non-null authentication data when they should be null due to disabled per-message authentication. Hitting this?"session timeout"errors. Issue 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. Works around an issue when per-message authentication is advertised as disabled on the remote system, but it's actually required for the protocol. Hitting this?"session timeout"errors. Issue observed on IBM eServer 325.endianseqโ flips the endian of the session sequence numbers so the session can continue properly. Works around IPMI 1.5 session sequence numbers that are the wrong endian. Hitting this?"session timeout"errors. Issue 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. 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. Hitting this?"connection timeout","session timeout", or"password verification timeout"errors. Issue 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. Hitting this?"username invalid","password invalid", or"k_g invalid"errors. Issue 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. Hitting this?"password invalid"errors. Issue observed on Supermicro H8QME with SIMSO daughter card. Confirmed fixed on newerver firmware. (that's the original spelling, bestie, I don't make the rules ๐)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. Hitting this?"password invalid"or"bmc error"errors. Issue observed on Sun Fire 4100/4200/4500 with ILOM. ๐ก 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 is used for hashing keys instead of the privilege level sent during the RAKP1 connection stage. Hitting this?"password invalid","k_g invalid","bad rmcpplus status code", or"privilege level cannot be obtained for this user"errors. Issue 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, however the remote motherboard responds with a non-empty field. Hitting this?"k_g invalid"errors. Issue observed on Supermicro X8DTG, Supermicro X8DTU, and Intel S5500WBV/Penguin Relion 700, and Intel S2600JF/Appro 512X.assumemaxsdrrecordcountโ informs SDR reading to stop reading after a known maximum number of SDR records have been read. Works around systems that have miss-implemented SDR reading functions. Hitting this?"SDR record count invalid"errors. Issue observed on unspecified Inspur motherboard.skipchecksโ skips FRU checksum checks. Some FRUs have incorrect checksums, but the FRU data is correct. Hitting this?"checksum invalid"errors in your FRU output. > ๐ญ Output may be unknown, pray for the best. This option is confirmed to work around compliance issues on Inventec 5441/Dell Xanadu II, Dell Poweredge R610, and Dell Poweredge R710 motherboards.No IPMI 1.5 Supportโ not a flag, but a whole vibe: some motherboards that support IPMI 2.0 have been found to not support IPMI 1.5. Hitting this?"ipmi 2.0 unavailable"or"connection timeout"errors. You can work around it by using IPMI 2.0 instead of IPMI 1.5, which you do by specifying--driver-type=LAN_2_0. Issue observed on a number of HP and Supermicro motherboards.
๐ฎ OEM INTERPRETATION ๐ฎ
okay so the following motherboards are confirmed to have atleast some support by the --interpret-oem-data option. (yes, "atleast" โ that's the original spelling, we keep it ๐
). While it's highly probable the OEM data interpretations would work across other motherboards by the same manufacturer, there are no guarantees. Also some of the motherboards below may be rebranded by vendors/distributors, so don't come for me if the label looks different.
- Wistron/Dell Poweredge C6220
โจ EXAMPLES โจ
get you a bestie who can do both ๐ โ here's how it actually looks:
# ipmi-fru
Gets the FRU information of the local machine. local queen behavior ๐
# ipmi-fru --verbose
Gets verbose FRU information of the local machine. she's giving detail.
# ipmi-fru -h ahost -u myusername -p mypassword
Gets FRU information of a remote machine using IPMI over LAN. remote but still close to my heart ๐ซถ
# ipmi-fru -h mycluster[0-127] -u myusername -p mypassword
Gets FRU information across a cluster using IPMI over LAN. 128 hosts at once, she ate ๐ฅ
๐ IPMI-FRU KNOWN ISSUES ๐
Not all language codes are supported in ipmi-fru. ๐ญ If you need additional language code support, please contact the FreeIPMI maintainers. They're the ones who can hook you up.
๐ฉบ DIAGNOSTICS ๐ฉบ
Upon successful execution, exit status is 0. On error, exit status is 1. Simple as that, no cap.
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. main character energy but make it a cluster.
โ ๏ธ 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 when using tools like the ps(1) command or looking in the /proc file system. ๐ Not the vibe. 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 instead bestie, please.
In order to prevent brute force attacks, some BMCs will temporarily "lock up" after a number of remote authentication errors. You may need to wait awhile in order for this temporary "lock up" to pass before you may authenticate again. She's just in her timeout era, give her a minute. ๐
๐ REPORTING BUGS ๐
Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. They genuinely wanna know fr fr ๐ซถ
๐ COPYRIGHT ๐
okay so legal stuff, but like, it's important bestie, don't skip it ๐ซถ
Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.Copyright (C) 2007 The Regents of the University of California.
and the license, no cap, quoting the vibe exactly:
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.
like, it's giving "free as in freedom" ๐ญ๐ slay.
๐ SEE ALSO ๐
your little friend group of other man pages, go say hi ๐
freeipmi(7)โ the big-picture overview one, the main character of the family ๐ipmi-config(8)โ for when you wanna configure things instead of just reading FRU stuff
and the official site, the mothership fr fr:
http://www.gnu.org/software/freeipmi/
okay bestie, that's literally the whole page ๐ you now know ipmi-fru better than most people know their own passwords. go read some FRU data and be iconic about it โจ๐๐ฆ
this page is ipmi-fru version 1.6.20, dated 2026-10-05 โ yeah, it's old-school cool, but it still ate ๐
periodt.
๐ฆ where this page comes from
- arch rolling: freeipmi 1.6.20-1 ยท GPL-3.0-or-later
- centos-stream 10: freeipmi 1.6.20-1.el10 ยท GPL-3.0-or-later
- centos-stream 9: freeipmi 1.6.20-1.el9 ยท GPLv3+
- centos-stream 9: freeipmi 1.6.20-1.el9 ยท GPLv3+
- Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC
- Copyright (C) 2007 The Regents of the University of California
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms