IPMIUTIL performs a series of common IPMI server management functions to allow
administrators to perform management functions without a learning curve.
It can gather FRU inventory data, SEL firmware log, sensors, watchdog, power
control, health, monitoring, and has an SOL console. It can write sensor
thresholds, FRU asset tags, and supports a full IPMI configuration save/restore.
Ease-of-use examples with IPMIUTIL:
Native builds on many OSs: Linux, Windows, BSD, Solaris, MacOSX, HPUX
The only IPMI project natively supporting Windows drivers
IPMIUTIL supports any IPMI-compliant vendor firmware
IPMIUTIL detects and handles OEM-specific IPMI firmware variants
IPMIUTIL interprets various vendor OEM-specific sensor values automatically.
Any IPMI values not yet recognized at least return the values,
rather than just 'na' or Unknown.
Shared library for custom applications, sample source included
IPMIUTIL BSD license is compatible with open-source or commercial use
Linux driverless support is ideal for boot media or embedded
Configuring the IPMI LAN requires just a single command
The decoding of IPMI SEL events includes a severity.
A soft-reboot can be easily performed instead of a hard reboot by
using ipmiutil_asy, even if the platform does not support ACPI.
IPMI SEL management is automated via checksel.
Watchdog management is automated via ipmiutil_wdt.
The IPMI Specification provides a standard way to do both simple and
complex server management functions. Everything from remote
reset/power-off to sending an SNMP alert from a sensor event even if the
OS is down. Being able to
perform these tasks in IPMI firmware on the Baseboard Management
Controller
(BMC) allows OS-independent management.
What many administrators and integrators need, however, is a set of
utilities, libraries, and/or sample code to perform these functions
within their enterprise management subsystem without a learning curve.
The IPMI Management Utilities project provides a series of utilities that
perform common IPMI server management functions, such as viewing the firmware
log (ipmiutil sel), or configuring the IPMI LAN & PEF features (ipmiutil lan).
The utilities are designed for end-users, so that they should not require
intimate knowledge of how to build IPMI commands.
Each of the utilities detects or reasonably assigns default
values so that a working configuration can be easily obtained.
More detailed options allow changes to these default values.
These utilities can be used separately, or merged with a larger server
management subsystem. The source license is BSD, which allows for this
code to be re-used in open-source or proprietary software.
These utilities support any IPMI 1.0, 1.5 or IPMI 2.0 compliant platform.
The ipmiutil software compiles under
Linux (Makefile), Windows (buildwin.cmd),
Solaris (Makefile), and
Mac OSX (Makefile), and
FreeBSD (Makefile).
See descriptions of each utility function below.
ipmiutil - a meta-command to invoke each of the functions below
hpiutil/* - a set of parallel HPI utilities,
conforming to the SA Forum Hardware Platform Interface,
also the basis of the openhpi/clients/.
bmc_panic
- a kernel patch to save information if the system panics. Included in
the OpenIPMI driver in kernels 2.6 and greater. Included in the Intel
IMB driver in v28 and greater.
There are also corresponding standard HPI utilities that run with two
different HPI implementations, including OpenHPI. These were the basis
of the current openhpi/clients.
IPMI interfaces are available on the local system, or remotely with the IPMI
LAN interface. If you are using the IPMI LAN interface with ipmiutil utilities
(-N option), neither the local or remote system requires any IPMI driver.
Note that the IPMI LAN session password is sent with either MD5 or MD2
encryption by default.
If run locally (as superuser), the ipmiutil utilities will use any
one of the supported drivers which it detects.
The supported IPMI drivers in Linux are:
the MontaVista OpenIPMI driver (/dev/ipmi0 or /dev/ipmi/0),
the Intel IMB IPMI driver (/dev/imb, via ipmidrvr rpm or 'ipmi_imb'),
the GNU FreeIPMI library (libfreeipmi.so, disabled by default),
the LANDesk ldipmi daemon (disabled by default),
the valinux IPMI Driver (/dev/ipmikcs, disabled by default), or
direct user-space I/Os to the IPMI KCS or SSIF/SMBus interfaces.
(included with ipmiutil-1.7.5 and later)
The utilities are built to detect which IPMI driver is available and use it,
or, if no driver is detected, will use direct user-space I/Os to the IPMI BMC
for either the KCS or SSIF/SMBus interface.
The supported IPMI drivers in Windows are:
the Intel IMB IPMI driver (imbdrv.sys) for any Windows Server OS,
the Microsoft IPMI driver (ipmidrv.sys) for Win2003R2 or Win2008.
The supported IPMI drivers in Solaris are:
the Sun BMC IPMI driver (/dev/bmc) for Solaris 10, etc.
The supported IPMI drivers in FreeBSD are:
the FreeBSD 7.x OpenIPMI driver port (/dev/ipmi0),
direct user-space I/Os to the IPMI KCS or SSIF/SMBus interfaces.
ipmiutil Project History
In October 2001, this project started as part of the Carrier Grade Linux effort.
It was then known as 'panicsel' and included a kernel patch to write a Linux panic event to the IPMI firmware log, as well as utilities.
In Dec 2001 (1.0.0), released with Intel Telecom Linux Technology project
In Jul 2002 (1.2.1), this code was first included in MontaVista CGE
Linux 2.1.
The panicsel functionality was included in OSDL CGL 1.0 and 2.0
requirements.
The kernel panic functionality was included in the OpenIPMI driver for
2.6 Linux kernels, and in the Intel IMB Linux driver v28 and greater.
In Jan 2004 (1.4.1), added support for Windows 2000 & 2003
In Aug 2004 (1.4.8), the project was moved from panicsel.sf.net to
ipmiutil.sf.net. The new name more clearly reflects the purpose of the
project in its current state.
In Nov 2004 (1.5.0), support for IPMI LAN was added using FreeIPMI.
In May 2006 (1.7.0), built-in IPMI LAN support was added.
In Aug 2006 (1.7.5), driverless direct I/O support was added
In Jan 2007 (1.8.0), added ipmiutil meta-command, IPMI LAN 2.0 (lanplus) support
In Feb 2007 (1.9.2), added Linux Serial-Over-Lan console feature
In Oct 2007 (2.0.0), added Windows SOL console and remote soft-shutdown features
In Mar 2008 (2.1.0), the Windows SOL client application was completed.
In Aug 2008 (2.2.0), iconfig function was added to save/restore the BMC configuration parameters
In Sep 2008 (2.2.1), support for the Microsoft IPMI driver was added.
In Nov 2008 (2.3.0), support for the Sun Solaris bmc driver was added.
In Mar 2009 (2.3.5), support for the FreeBSD OS was added.
In Oct 2009 (2.5.0), added ANSI VT100 emulation for Windows SOL console
In Feb 2010 (2.6.0), new subcommand naming scheme (i+subcmd)
In Apr 2010 (2.6.2), ifruset was added to set all FRU Product Area fields
In Jun 2010 (2.6.5), added picmg and firewall functionality
In Aug 2010 (2.6.8), Fedora 14 version of ipmiutil submitted
In Sep 2010 (2.6.9), added fwum/hpm functionality, and OEM Fujitsu sensor/sel
In Sep 2010 (2.7.0), added sunoen, ekanalyzer, fru_picmg, oem_kontron
In Sep 2010 (2.7.1), added ppc64, mips64, sparc arch support
In Nov 2010 (2.7.2), added Debian package support
In Nov 2010 Fedora 14 released with ipmiutil-2.6.8
In Dec 2010 (2.7.3), added SuperMicro OEM functions
In Mar 2011 OpenSuSE 11.4 released with ipmiutil-2.7.2
In May 2011 (2.7.6), added VLAN support and WIN64 fixes
In Sep 2011 (2.7.8), added IPv6, systemd, Dell OEM functions, PICMG 2.3, tsol
In Oct 2011 (2.7.9), support Wind River and ARM cross-compile, Intel S2600
In Dec 2011 (2.8.0), added DCMI 1.1 commands, devel pkg, MSI package
In Feb 2012 (2.8.1), added Quanta S99Q functions, Dell fixes, Intel ME fixes
In Mar 2012 (2.8.2), added Intel Romley OEM support
In Jun 2012 (2.8.4), added support for HP-UX builds and DCMI 1.1 commands
In Oct 2012 (2.8.6), added pre-built Windows DLL for sample development apps
In Feb 2013 (2.8.8), added much more SuperMicro OEM support
In Apr 2013 (2.9.0), added iseltime to sync sys/RTC/SEL times
In May 2013 (2.9.1), added support for MacOSX client
In Dec 2016 (3.0.1), added support for Lenovo OEM sensors
In Feb 2017 (3.0.1), added support for ASUS OEM sensors
In Mar 2017 (3.0.3), added iuser to consolidate user functions
A Linux rpm and a Windows setup package for ipmiutil is included on
the platform CD with Intel and Kontron carrier-grade servers.
The ipmiutil (or panicsel) rpm is known to be included in the following
Linux distributions:
Fedora 15 and later, SuSE SLES9, SLES10, OpenSuSE 11.4,
MontaVista CGE 2.1, 3.0, 3.1, 4.0, Gentoo, RedFlag 5.0
Mailing List Discussion
This a community-based effort to add to existing efforts to improve or
enhance the IPMI Utilities in Linux.
If you are interested in participating in or contributing to this project,
please send mail to the mailing list found
here