Karla News

Open Source IPMI Software Summary

Command Line, Kernel, Solaris, Supports

Following up a previous overview of IPMI, the following is a summary of the major open source IPMI projects. There are many other higher level projects, such as monitoring software, that support IPMI. However, most of those projects support IPMI via open source components listed below. Therefore, higher level software will not be discussed.

IPMItool

IPMItool is the most popular open source IPMI project. It is distributed by most major open source Linux distributions, including Redhat and Suse. It also operates under BSD, Solaris, and has been ported to work in Windows under Cygwin, although it cannot work in-band under the later. The in-band IPMI drivers supported by IPMItool are the OpenIPMI driver, Solaris BMC driver, Solaris LIPMI driver, FreeIPMI driver, and Intel IMB driver. IPMItool supports both the IPMI 1.5 and IPMI 2.0 protocols for IPMI over LAN. IPMItool supports all major features of IPMI via a single command line tool. Libraries are not available, so programming through IPMItool is typically done through scripting. IPMItool has been released under a BSD license.

OpenIPMI

There two components to OpenIPMI, both of which are referred to as OpenIPMI. This often confuses those first hearing about this project. There is a kernel driver and a set of userspace libraries and tools in OpenIPMI. For all intents and purposes, they are distributed separately, which leads to the confusion.

The OpenIPMI kernel driver is now distributed as the default Linux kernel IPMI driver, and is often referred to as the OpenIPMI driver. The OpenIPMI kernel driver offers an system device for IPMI software to communicate to the BMC. The OpenIPMI driver is independent of the OpenIPMI libraries and tools. Other software, such as IPMItool, FreeIPMI, and IPMIutil, support the OpenIPMI kernel driver as an interface to perform in-band communication. An OpenIPMI compatible driver also exists for FreeBSD.

See also  Tips for Treating an Incontinent Cat

The OpenIPMI libraries supply a programmable API to do IPMI communication, both in-band and out-of-band. It supports C, Perl, and Python libraries. For local IPMI communication, it only supports the OpenIPMI kernel driver. It supports both IPMI 1.5 and IPMI 2.0 for IPMI over LAN. Along with its userspace package, several tools are supported, such as a command shell and GUI. These tools collectively provide most of the major IPMI features, although not with the breadth of options and features supported by IPMItool, FreeIPMI, and IPMIUtil.

The OpenIPMI kernel driver is distributed by pretty much all Linux distributions, since it is a part of the Linux kernel. The OpenIPMI userspace libraries and tools and distributed by most major Linux distributions as well. OpenIPMI is released under a GPL license for the kernel driver and the LGPL license for the userspace software.

FreeIPMI

FreeIPMI provides both libraries and tools for IPMI communication. For in-band communication, FreeIPMI supports its own KCS driver, its own SSIF driver, the OpenIPMI kernel driver, and the Sun BMC driver. Both IPMI 1.5 and IPMI 2.0 protocols are supported for IPMI over LAN. FreeIPMI is supported under Linux, BSD, Solaris, and Windows under Cygwin. Similar to IPMItool, the in-band communication is not supported under Cygwin. The only major Linux distribution to ship FreeIPMI is Redhat. The collection of command line tools support approximately the same breadth of options and features of IPMItool. A C library is the only library available. FreeIPMI advertises additional support for HPC and cluster environments. FreeIPMI is released under a GPL license.

See also  Why Did Sun Microsystems Fail?

IPMIutil

IPMIutil is similar to FreeIPMI, offering multiple command line tools to perform all major features of IPMI. It supports both IPMI 1.5 and IPMI 2.0 for IPMI over LAN. It supports the largest number of in-band interfaces, including the OpenIPMI driver, Intel IMB driver, FreeIPMI driver, LANDesk ldipmi daemon, VALinux driver, Solaris BMC, Microsoft IPMI driver, and direct userspace I/O via KCS or SSIF/SMBus. It is the only open source project that supports Windows natively, both for in-band and out-of-band communication. The only major Linux distribution to ship IPMIutil is Suse. Similar to IPMItool, there are no libraries available, therefore most script against IPMIutil. IPMIutil has been released under a BSD license.

References

Jacob M. Lee, “IPMI Overview”, Associated Content

“IPMI Overview”, IBM

Andy Cress, “A Comparison of common IPMI Software open-source projects”, IPMIutil

IPMItool

OpenIPMI

FreeIPMI

IPMIutil

Reference: