openipmigui − GUI interface to an IPMI system
openipmigui [−−dmsg] [−−drawmsg] [−−glib12] [−−trace] [−−logstderr] [−n] [−p preffile]
openipmigui is a GUI interface using the OpenIPMI library. It provides a tree-structured view of the IPMI domains it connected to.
By default openipmigui starts up with no connections or anything of that nature. You must open connection to domains yourself. However, you may save your current configuration and the current domains and some GUI settings; these will be automatically restored at startup.
The main window has a tree on the left and a log window on the right. The log window captures informational and error logs from OpenIPMI. Note that events are not reported in the log window, you must open an SEL window for a domain to view the events.
−−dmsg |
Turn on message debugging, this will dump all messages to debug log output. |
−−drawmsg
Turn on raw message debugging, this will dump all low-level messages to debug log output. This differes from normal message debugging in that all protocol messages are also dumped, not just IPMI messages.
−−dmem |
Turn on memory debugging, this will cause memory allocation and deallocations to be checked. When the program terminates, it will dump all memory that was not properly freed (leaked), and overruns, writing of freed memory, or other types of memory errors. |
−−logstderr
Send all logs to standard error output as well as the GUI console.
−−trace
Turn on python tracing so that all python procedure calls entered and exited will be printed out.
−n |
Turn off reading of the preferences file at startup. |
−p preffile
Use preffile as the name of the preferences file instead of $HOME/.openipmigui.startup.
The main menu bar contains two pull-down menus: File and View.
The File menu contains Exit, Open Domain, and Save Prefs commands. The Exit command does as described, and it does not prompt to be sure you want to exit. The Open Domain command is how you establish a connection to an IPMI system. The Save Prefs command will store the current domains and the configuration of the main GUI window. These settings will be restored at startup. The settings are stored in $HOME/.openipmigui.startup; this file may be removed to clear all the settings.
The View menu contains commands to expand and contract the entire tree.
The tree window has a top-level list of all the domains for which OpenIPMI has connections (or pending connection). Each domain exapands into domain-specific information and a list of entities and Management Controllers (MCs) for that domain.
Right click drives most of the operations in the tree window. Many tree elements have pull-down menus driven by a right mouse button click. When in doubt, click.
Color is used in the GUI to denote error status, and shading is used to denote availability. If a sensor has an error, the tree entry for that sensor will change colors. Black means no error, yellow means warning, red means critical, and blue means non-recoverable. These errors propigate up, so the entity containing that sensor will be the same color as the most critical error for the sensors underneath it. The same goes for domain, it will be the same color as the most critical error for the entities underneath it. This way, if you watch the domain, you can determine if a system is in trouble with just the top-level view, and you can drill down to find the problem.
If a tree entry is shaded, it means that the entry has information identifying it but does not exist. For instance, a domain with no connection, an entity that is not present, or an MC that is not present.
Note that all information visible in the tree is polled. Only visible information is polled, so if you expose something via expanding a tree element or scrolling, it may be a few seconds before the data is updated.
The domains contain various high-level information and an aggregation of all the System Event Logs (SELs) contained within it. The SEL Rescan Time and IPMB Rescan Time are settable via right-click; these values are remembered when saved and restored. (Note that these values in the MC-specific entries are not saved and restore, only the domain level ones). Right clicking on the domain gives a set of operations, including the ability to view the SEL.
The Entities element under the domain element contains a list of the entities discovered for that domain. This is only the top-level entities (ones not contained in other entities); entities contained in other entities are listed under their parent entity. This keeps the clutter down for very complicated systems, like ATCA.
If the entity is hot-swappable, hot-swap activation and deactivation commands are available via right-click on the entity. If the entity has FRU information, you can view that via a right-click command, too.
The information under an entity also contains a sensors and controls list for the entity.
Sensors are available under the entity they belong to. Sensor information is beyond the scope of this document, as IPMI sensors are very complex. See the IPMI document from OpenIPMI for information about sensors.
As expected, right-clicking on a sensor gives operations available on that sensor.
Controls are available under the entity they belong to. control information is beyond the scope of this document, as IPMI controls are very complex. See the IPMI document from OpenIPMI for information about controls.
As expected, right-clicking on a control gives operations available on that control.
An MC is the intelligent node in an IPMI system. It is not generally required to know about MCs for normal IPMI sensor and control operations. You do need access to MCs, though, for system configuration.
An MC contains a lot of information about itself and its capabilities; this is generally automatically interpreted by OpenIPMI, but the information is available for view. For instance, if an MC contains an SEL device, OpenIPMI will automatically handle getting events from it, but you can also view this setting under the MC information.
A number of operations are available under the right-click menu on the MC; most of these are self-explanatory. The MC is generally configured via the Channel Info command under this.
A set of connections for the domain is listed under the domain. Each connection has one or more ports. The state of these ports may be viewed by color; if a port is yellow (warning), it is down. If a connection is red (severe), then all its ports are down. If all connections are down, the "Connections" tree item turns blue (critical).
If you right click on an MC, it will show a Channel Info entry. This is used to configure the LAN and channel information for the MC. If you select this, it will pull up a list of channels in a tree view. Note that unlike the main tree, this information is not dynamically updated; it will not change if the underlying data changes.
To configure individual channels, expand them. The Info settings are read only and cannot be changed. The User Access settings can be changed by right-clicking on them. Note that the change is not immediate, you must use the Save button at the bottom of the window to save the changes you have made. Also, there are two versions of the User Access settings. One is volatile, and will update the current settings for the MC, but if the MC restart the non-volatile settings will be restored. Setting the non-volatile settings will not cause an immediate change, but those changes will be restored on the next MC restart.
Some channels have user information; you can configure these by selecting that command in the right-click menu of a channel.
LAN channels also have LAN configuration; you can configure these by selecting that command in the right-click menu of a channel.
IPMI systems with remote access have users that can be used to log in. These users are configured by the User Info command in the channel listing. Note that some user setting (the name and password) are global to all channels on the MC.
Due to the IPMI spec and some unfortunate implementation bugs, some wierd issues exist with this information. The user has an Enabled value that tells whether the user is enabled or not. When initially displayed, this field shows as a "?" because this field is not readable. It will displayed as the actual value when it is modified, but will not be changed otherwise.
There is also a session limit field that gives the maximum number of sessions a user is allowed to make. This field is also not readable and displays as a "?" when first displayed. This field is marked as optional in the IPMI spec, which means the field does not have to be supplied. Some implementations, however, require this field to be set. If you get a DataLenInv error back from your system when setting something, you must set the field to something for any value to be set. Generally, setting it to zero disables the field and is the right thing to do.
In the channel display on a 8023_LAN channel, a LANPARM configuration command is available. This pulls up all the parameters for the LAN and allows them to be set. Right-clicking on an item allows it to be changed.
If an MC support PEF, it will have a "PEF Parms" menu item in the pulldown menu for the MC. This pulls up all the parameters for the PEF and allows them to be set. Right-clicking on an item allows it to be changed.
In the channel display on a 8023_LAN channel, a LANPARM configuration command is available if the MC supporte SOL (Serial Over LAN). This pulls up all the parameters for the LAN and allows them to be set. Right-clicking on an item allows it to be changed.
On a connection, an "Open SOL" menu item is present. If the BMC on the far end of the connection has SOL (Serial Over LAN) support, then you can establish a serial connection with the BMC, assuming it is configured properly and you have the proper rights.
When you choose this, you will get a new connection with a VT100/ANSI terminal emulator. The connection will not yet be opened, you must open it (under the "File") to establish the connection. When the status at the bottom right says "connected", you are ready to type. If something goes wrong, the connection may drop and you will have to reopen it. You can also close the connection from the file menu, or quit the emulator.
The
"Controls" menu for the SOL connection contains a
large number of settings for SOL. These allow you to
manipulate various value on the remote side of the
connection. These are:
Accept Input
If disabled, this will cause data from the BMC to be refused, effectively flow-controlling the data (assuming that the BMC actually supports this properly, some don’t)
Use Encryption
Encrypt the data on the LAN using RMCP+ encryption negotiated for the connection. Only available when the connection is closed, this cannot be changed dynamically.
Use Authentication
Authenticate the data on the LAN using RMCP+ authentication negotiated for the connection. Only available when the connection is closed, this cannot be changed dynamically.
Deassert CTS/DCD/DSR on connect
Don’t raise the lines when a connection is made; this allows things like baud rate to be set before the device on the far end of the serial port knows there is a connection.
CTS Assertable
If set, the BMC has control over the CTS line. Otherwise, the CTS line is deasserted.
DCD/DSR Asserted
Set the DCD and DSR lines.
RI Asserted
Assert the Ring Indicator line, can be used for remote wakeup on some systems (though, with IPMI, you have to wonder why you wouldn’t use IPMI for this).
Set Ack Timeout
Sets the timeout waiting for an ACK from the BMC.
Set Ack Retries
Sets the number of times a packet is retried before the connection is closed.
Send Break
Send a 300ms break signal to the remote serial port.
Serial Rate
Sets the bitrate on the serial port. Not all systems support this. Some, in fact, completely ignore this setting and use 19.2K. Note that this is only the volatile rate. The non-volatile rate setting is done with SOLPARM.
Serial Alert Behavior
This sets what to do when an IPMI alert occurs and is going out the serial port somehow. If set to "succeed", the SoL session will be disconnected when an alert comes out.
Queue Flush
Allows various queues to be flushed.
ipmish(1), IPMI document from OpenIPMI
Some of missing functionality. See the list in the swig/python/openipmigui/TODO if you want to work on something.
Corey Minyard <[email protected]>