ipmi_ui(1)
okay bestie, sit down, hydrate, put your phone on do-not-disturb, because we're doing ipmi_ui(1) today β that's the manual page, section 1, and she is so much more fun than she sounds. π
π NAME π
ipmi_ui β a crude interface to an IPMI system.
(Her own words. She calls herself crude. She is humble and also lying, she's iconic, but okay, we're respecting the author's self-description. Periodt.)
β¨ SYNOPSIS β¨
ipmiui [-dmsg] [-dmem] [-c] connection-1[connection-2]
and the connections get specified as either this:
smi smi-num
or this:
lan IP-addr port [IP-addr-2 port-2] auth privilege username password
π¦ DESCRIPTION π¦
okay so ipmi_ui connects to an IPMI system and lets you get at IPMI entities and sensors and OpenIPMI controls. It's rather crude, and it was mainly built for testing OpenIPMI, but it's got some use beyond that too, so it's provided. No cap. π«Ά
Normally ipmi_ui starts up in a full-screen format. Two windows, bestie:
- the left window shows the output of commands
- the right window shows the logs from OpenIPMI
Both windows are scrollable with the page up and page down keys. Press the "F1" key to choose the left window to scroll, and the "F2" key to choose the right window to scroll. iykyk. π
β οΈ You must set your environmentTERMvariable properly for your terminal, oripmi_uiwill display garbage on the screen. Not the cute chaotic garbage either. The bad kind. π
Also: you can put two connection specifications on the command line and ipmi_ui will make two connections. You can only do this if the connections are to the same IPMI domain through different management controllers. And also, each LAN connection may have two IP addresses β those are two different addresses to the same management controller. So the whole vibe is:
- up to 4 IP addresses to an IPMI domain
- 2 management controllers
- 2 IP addresses to each management controller
Slay. πΈ
π OPTIONS π
-dmsgβ Turn on message debugging, which dumps all messages to the log window.-dmemβ Turn on memory debugging, which makes memory allocations and deallocations get checked. When the program terminates, it dumps all the memory that was not properly freed (leaked). Snitching on your leaks, essentially. π-snmpβ Enable the SNMP trap handler.ipmi_uimust be compiled with SNMP code enabled for this option to even be available, so don't come for her if she says no.-cβ Run the program in command-line mode. This is the one for scripting. All output goes to standard output, and there is no windowing at all.smi-numβ The SMI number to connect to, for systems with more than one system interface. Generally, this is'0'.IP-addrβ The IP address of the LAN interface.portβ The UDP port of the LAN interface, generally623.IP-addr-2β Some systems support multiple IP connections; this specifies the second address and it's optional. If you specify it, OpenIPMI will use both IP addresses and fail over to the working one if one of them fails. Resilient queen. πport-2β The port for the second IP connection, generally623.authβ The authorization to use for the connection, either"none","straight","md5", or"md2".privilegeβ The privilege to use for the connection, either"callback","user","operator", or"admin". Heads up: some IPMI operations will fail without the correct privilege.usernameβ The user name to use for the connection. If you're using the anonymous user, this should be the empty string"".passwordβ The password to use for the connection.
π ENTITIES π
Entities get listed by their entity id (that's the type of entity they are) and their entity instance. Entities may be active or inactive in the system, and the standard IPMI algorithm for figuring that out is what's used here.
Commands on entities:
entitiesβ List all the entities in the system. The output is the entity specifier, then an optional entity name in parenthesis, then"present"or"not present".check_presenceβ For the check of presence for all entities.fruentity β List the FRU information associated with the entity.dump_fruis_logical device_address device_id lun private_bus channel β Dump raw information from the specified FRU device.
π SENSORS π
Sensors define input devices that OpenIPMI can monitor.
sensorsentity β List all the sensors that monitor the given entity. The output is the sensor specifier (which is the entity specifier followed by the sensor name, with spaces converted to~), followed by the sensor name.sensorsensor β Pull up the given sensor and display all its information. In full-screen mode, the sensor will be re-queried every second. She's watching. πrearmglobal [assertion-maskdeassertion-mask] β Rearm the given sensor. If global is1, then the whole sensor is rearmed. If global is0, then the assertion-mask and deassertion-mask must be specified, telling which thresholds or states to rearm.events_enableevents scanning assertion-bitmask deassertion-bitmask β Enable or disable events for the given sensor. events turns events on or off from the sensor (0or1). scanning turns scanning on or off for the sensor (0or1). assertion-bitmask specifies the bitmask of thresholds or states that should be enabled or disabled when a threshold or state is asserted β it's a bunch of0's and1's, where the first one is for threshold/state 0, the second for threshold/state 1, etc. deassertion-bitmask specifies the bitmask of thresholds or states that should be enabled or disabled when a threshold or state is deasserted.
π§ CONTROLS π§
Controls are output devices that can control things like LEDs, power, reset lines and such.
controlsentity β List all the controls that control the given entity. The output is the control specifier (the entity specifier followed by the control name, with spaces converted to~), followed by the control name.controlcontrol β Pull up the given control and display its current state.set_controlval1 [val2 ...] β Change the value of a control. Note that for controls with multiple values, every value must be specified. No skipping, bestie.
π EVENTS π
Events are asynchronous messages from sensors that tell the user that a sensor has done something. Events are generally stored in a system event log (SEL), and OpenIPMI will fetch the events from the SELs in the system.
Since multiple SELs may exist, an event is specified by the MC it came from, in the format "(channel addr)", plus a log number. And plot twist: the same log number may exist in multiple MCs. π΅βπ«
Events are displayed in the log window as they come in. If they can be correlated with a sensor, they'll be displayed with as much information as possible.
deleventchannel mc-addr log-num β Delete the given event. Note that many SELs do not support individual deletes, so this may only delete the local copy of the event, not the one in the SEL. In that case, to delete events in the SEL you must delete all the events in the SEL and wait about10seconds for OpenIPMI to do a full SEL clear.clear_selβ Delete all events in the SEL. This process may take some time, so if you do this and quit immediately it may not be complete. Don't rush her. πlist_selβ List all events in the local copy of the SELs. This is only the local copy β if the copies in the actual ones have changed, this won't be reflected.get_sel_timechannel mc-num β Get the time in the SEL for the given MC.
π MANAGMENT CONTROLLERS (MCs) π
(Yes, the heading is spelled that way. We love her exactly as she is. π)
In OpenIPMI, you normally don't deal with management controllers β they're considered internal to the system. But for debugging, information about them is provided. Bestie privileges. β¨
mcsβ List all the MCs in the system and whether they are active. MCs are displayed in the format"(channel address)".mcchannel mc-addr β Display a boatload of information about the MC, mostly coming from theget device idcommand.mccmdchannel mc-addr LUN NetFN Cmd [data ...] β Send an IPMI command to the given MC. The MC must exist and be active to do this.mc_resetchannel mc-addr [warm|cold] β Send a warm or cold reset command to the given MC. The action the MC takes is system-specific, so don't assume.scanchannel mc-addr β Scan for an MC at the given address. If the MC exists but OpenIPMI didn't know about it, it will be added. If the MC no longer exists, then it will be removed.mc_events_enablechannel mc-num enabled β Enable or disable event generation for the given MC.mc_events_enabledchannel mc-num β Prints out if the events are enabled for the given MC.
πΈ LAN Parameter Configuration πΈ
OpenIPMI has functions that make it easier to configure the LAN parameters of a LAN connection. But okay, important thing: the LAN parameters have a lock that OpenIPMI attempts to use. If you read the LAN parameters, they will be locked until you either write them or clear the lock. So don't just read and ghost. π
readlanparmchannel mc-num channel β Read lanparm information from an MC and display it in the display window.viewlanparmβ Show current lanparm information in the display window.writelanparmchannel mc-num channel β Write the current LANPARM information to an MC. Note that this must be the MC that the parameters were read from.clearlanparmlock[channel mc-num channel] β Clear a LANPARM lock. If the MC is given, then the LANPARM lock is directly cleared. If not given, then the LANPARM lock for the current parms is cleared.setlanparmconfig [selector] value β Set the given config item to the value. The optional selector is used for items that take a selector, like"auth"or any of the items in"destination".
<div align="center">β¨ part 1 done, more coming, don't go anywhere β¨</div>
wait no, that's a fake HTML tag, ignore that. okay so anyway β more parts follow, so don't sign off, bestie, we're not done π
π Platform Event Filter (PEF) π
okay bestie so OpenIPMI has these functions that help you manage the PEF settings on a BMC, and it's lowkey important you know this: the PEF parameters have a lock that OpenIPMI tries to use. So if you read the PEF parameters, they're gonna stay locked until you either write them or clear the lock. no cap, that's just how it is π
readpefchannel mc-num β reads the PEF info from an MC. slay.clearpeflock[channel mc-num] β clears a PEF lock. If you give it the MC, then the PEF lock on that MC gets cleared directly. If you don't give an MC, then the lock on the current PEF gets cleared. easy peasy.viewpefβ shows the current pef info in the display window β¨writepefchannel mc-num β writes the current PEF info to an MC.setpefconfig [selector] value β sets the given config item to value. The optional selector is for the items that take one β like anything in the event filters, alert policies, or alert strings, iykyk.petconnection channel ip-addr mac_addr eft-selector policy-num apt-selector lan-dest-selector β sets up the connection so the domain can send PET traps from the given connection to the given IP/MAC address over the given channel. This does all the LAN and PEF configuration you need to configure a system to send event traps. it's giving one-stop shop π«Ά
π CONNECTIONS π
So here's the tea: OpenIPMI can maintain multiple connections to a single domain. It'll generally only use one of them at a time (though the others are constantly under test β the way they're just... sitting there being tested π). That one is the "active" connection, and you can query it and set which one is active.
The connection number is the connection from the command line. You can specify two connections on the command line (that's the part beginning with "lan", "smi", etc.). The first connection you specify is connection zero, the second is connection 1. periodt.
is_con_activeconnection β prints out whether the given connection is active or not πactivate_conconnection β activates the given connection. main character energy, go off π
π OTHER COMMANDS π
msgchannel IPMB-addr LUN NetFN Cmd [data ...] β sends an IPMI command to the given IPMB address. This is here in case the given MC can't be found or enabled. very backup-plan of it πsdrschannel mc-addr do-sensors β dumps all the sdrs from the given MC. If do-sensors is true, then it dumps the device SDR. If it's false, it dumps the main SDR repository on the MC. two moods, pick one π¦scanchannel IPMB-addr β performs an IPMB bus scan for the given IPMB, to try to detect an MC at the given address. Heads up bestie: IPMB bus scanning can be slow, so this can help speed things up if you already know the address. βquitβ leaves the program. bye bestie πreconnectβ attempts to disconnect and reconnect to the IPMI controller. It's primarily for testing, ngl.display_winβ sets the display window (left window) for scrolling, just in case the"F1"key doesn't work. backup queen πlog_winβ sets the log window (right window) for scrolling, just in case the"F2"key doesn't work. matching set πhelpβ dumps some terse help output about all the commands. short but iconic β¨
πΈ ERROR OUTPUT πΈ
All error output goes to the log window. that's it, that's the whole section π
β SEE ALSO β
π KNOWN PROBLEMS π
Our name is legion.
okay so that's ominous but we're moving on π
π AUTHOR π
Corey Minyard <cminyard@mvista.com>
and that's the whole thing bestie, you ate this entire manpage up fr fr π«Άβ¨ this was the OpenIPMI page, dated 05/13/03, and it lives under the ipmi_ui(1) name β go forth and configure some BMCs, mwah ππ
π¦ where this page comes from
- alpine 3.24: openipmi-doc 2.0.36-r1 Β· LGPL-2.0-or-later and GPL-2.0-or-later or BSD-3-Clause
- arch rolling: openipmi 2.0.37-4 Β· LGPL2.1
- debian bookworm: openipmi 2.0.33-1+b1 Β· LGPL
- debian trixie: openipmi 2.0.37-1 Β· LGPL-2.0-only
- nixpkgs unstable: OpenIPMI 2.0.37
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- ubuntu jammy: openipmi 2.0.29-0.1ubuntu6 Β· LGPL
- ubuntu noble: openipmi 2.0.33-1.1build3 Β· LGPL
- ubuntu questing: openipmi 2.0.37-1
- ubuntu resolute: openipmi 2.0.37-1build1 Β· LGPL-2.0-only
- ubuntu stonking: openipmi 2.0.37-1ubuntu3 Β· LGPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms