NAME¶
FreeIPMI - FreeIPMI overview
Introduction¶
FreeIPMI provides in-band and out-of-band IPMI software based on the IPMI
v1.5/2.0 specification.
What is IPMI?¶
The IPMI specification defines a set of interfaces for platform management and
is implemented by a number vendors for system management. The features of IPMI
that most users will be interested in are sensor monitoring, system event
monitoring, power control, and serial-over-LAN (SOL). The FreeIPMI tools and
libraries listed below should provide users with the ability to access and
utilize these and many other features of IPMI.
Getting Started with IPMI¶
IPMI can be used in-band (i.e. running on a machine locally) or out-of-band
(i.e. connecting remotely).
Most FreeIPMI tools can operate in-band by using one of the in-band drivers
included. These in-band drivers include a userspace KCS interface driver, a
SSIF driver through the Linux SSIF device (i.e. /dev/i2c-0), the OpenIPMI
Linux kernel driver (i.e. /dev/ipmi0), the Sun/Solaris BMC driver (i.e.
/dev/bmc), and the Intel DCMI/MEI driver (i.e. /dev/dcmi). If your system
requires the use of installed drivers, those appropriate modules must be
installed ahead of time. However, most systems should automatically load these
drivers when appropriate.
Under most scenarios, the FreeIPMI tools should automatically discover which
in-band interface to use and the proper settings to use. Users may execute the
tools on the command line to begin using them. Some motherboards may require
you to determine driver type, addresses, paths, etc. on your own and pass them
as command line options to the tools. You may use
ipmi-locate(8) to
help determine this information. Other tools such as
dmidecode(8) may
also provide this information.
To use IPMI out-of-band with tools such as
ipmipower(8) or
ipmi-sensors(8), the remote machine's BMC must first be configured for
out of band communication. Typically, this involves setting a username,
password, IP address, MAC address, and a few other parameters. This can be
done using the tool
ipmi-config(8). Additional information on how to
configure with
ipmi-config(8) can be found in the
ipmi-config.conf(5) manpage. Some vendors may pre-configure their
motherboards with default values so that
ipmi-config(8) can be used
remotely to configure the machine. However, most of the time, the BMC must be
configured in-band before out-of-band access can be allowed (for example, the
correct IP address and MAC address must be configured).
In order to remotely connect to a machine, you typically must specify the host,
username, and password for the tool in order to connect. Depending on
configuration settings, a K_g key, privilege level, authentication type,
cipher suite id, or protocol version may need to be specified.
Some vendors may have not implemented IPMI properly and a workaround must be
specified into FreeIPMI to ensure the tool can execute properly. For example,
a fair number of vendors have populated their FRU records with invalid
checksums. To properly ignore these set of checksums a
skipchecks
workaround has been added to
ipmi-fru(8). Please see each of the tool
manpages to see a list of available workarounds.
Additional information, examples, and general trouble-shooting can be found in
each of the tool manpages.
General Use¶
The primary tools that most users of FreeIPMI will be interested in for system
management are the following:
Ipmi-sensors
A tool to read IPMI sensor readings to aid in system monitoring.
Ipmi-sel
A tool to read and manage IPMI System Event Log (SEL) records to aid in system
debugging.
Ipmipower
A tool for remote power control.
Ipmiconsole
A tool for Serial-over-Lan (SOL) console access.
Many other tools and libraries are listed below that cover additional features
and areas of IPMI.
Additional information, examples, and general trouble-shooting can be found in
each of the tool manpages.
Configuration¶
In order to avoid typing in a long list of command line options to specify IPMI
communication requirements everytime a command is executed (e.g. driver paths,
usernames, passwords, etc.), an alternate set of default values can be set for
most FreeIPMI tools in the FreeIPMI configuration file. See
freeipmi.conf(5) for more information.
HPC Support¶
Much of FreeIPMI was written with HPC support in mind.
Ipmi-config(8)
comes with file input/output support so that configuration can be copied and
verified across nodes in a cluster. Most tools (like
ipmipower(8) and
ipmi-sensors(8) ) come with hostrange support so multiple hosts can be
specified on the command line at the same time and IPMI can be executed
against the hosts in parallel. See tool manpages for more information. Also
see the document
freeipmi-hostrange.txt for detailed usage and
explanation.
Ipmi-sensors(8) and the
libipmimonitoring(3)
library support the ability to interpret sensor readings as well as just
reporting them. By mapping sensor readings into NOMINAL, WARNING, or CRITICAL
states, it makes monitoring sensors easier across large numbers of nodes.
Development¶
For information on the libraries that can be used to program IPMI applications
with, please see
libfreeipmi(3), libipmiconsole(3),
libipmimonitoring(3), and libipmidetect(3). Or see the document
freeipmi-libraries.txt.
The following tools are distributed and supported by FreeIPMI.
Bmc-info
A tool to read information about a BMC such as device version numbers, device
support, and globally unique IDs (guids).
Bmc-watchdog
A tool/daemon to manage a BMC Watchdog. This tool is typically used for system
timeout management and automatic system restarts in the event of a system
crash.
Ipmi-chassis
A tool to manage/monitor a chassis, such as chassis power, identification (i.e.
LED control), and status.
Ipmi-fru
A tool to read field replaceable unit (FRU) information from a
motherboard/machine.
Ipmi-sel
A tool to read and manage IPMI System Event Log (SEL) records. SEL records store
system event information and may be useful for debugging problems.
Ipmi-sensors
A tool to read IPMI sensor readings and sensor data repository (SDR)
information.
Ipmipower
A tool for remote power control.
Ipmiconsole
A tool for Serial-over-Lan (SOL) console access.
Ipmi-config
A tool to configure BMC and IPMI information. In can be used to configured
usernames, passwords, networking information, security, Serial-over-LAN (SOL),
Platform Event Filtering (PEF), boot devices, power restoration policy, sensor
thresholds, sensor events, and many more configuration options.
Ipmi-raw
A tool that provides hex input/output of IPMI commands.
Ipmi-locate
A tool that can probe for information about the location of a BMC device, such
as device addresses.
Ipmi-pet
A tool to parse and interpret Platform Event Traps (PET).
Ipmi-dcmi
A tool to perform Data Center Manageability Interface (DCMI) IPMI extension
commands. Supports extensions for asset management and power usage management.
Bmc-device
A tool to perform advanced BMC commands, such as resetting the BMC, configuring
ACPI, configuring SDR/SEL time, manually generating events, re-arming sensors,
and configuring manufacturer settings.
Ipmiping
An IPMI ping tool for debugging.
Rmcpping
A RMCP ping tool for debugging.
Ipmi-oem
An IPMI tool for OEM specific commands.
Ipmidetect/Ipmidetectd
A tool and daemon for IPMI node detection.
Ipmiseld
A daemon that regularly polls the SEL and stores the events to the local syslog.
Additional information, examples, and general trouble-shooting can be found in
each of the tool manpages.
Project Libraries¶
The following libraries are distributed and supported by FreeIPMI.
Libfreeipmi
A C library that includes KCS, SSIF, OpenIPMI Linux, and Solaris BMC drivers,
IPMI 1.5 and IPMI 2.0 LAN communication interfaces, IPMI packet building
utilities, IPMI command utilities, and utilities for
reading/interpreting/managing IPMI.
Libipmiconsole
A library for Serial-over-Lan (SOL) console access. SOL console access is
abstracted into a file descriptor interface, so users may read and write
console data through a file descriptor.
Libipmimonitoring
A library for sensor monitoring that abstracts away most IPMI details.
Libipmidetect
A library for IPMI node detection.
REPORTING BUGS¶
Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
COPYRIGHT¶
Copyright © 2003-2014 FreeIPMI Core Team.
FreeIPMI 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.
SEE ALSO¶
libfreeipmi(3),
libipmiconsole(3),
libipmidetect(3),
libipmimonitoring(3),
freeipmi.conf(5),
bmc-device(8),
bmc-info(8),
bmc-watchdog(8),
ipmi-chassis(8),
ipmi-config(8),
ipmi-fru(8),
ipmi-locate(8),
ipmi-oem(8),
ipmi-pet(8),
ipmi-raw(8),
ipmi-sel(8),
ipmi-sensors(8),
ipmiconsole(8),
ipmidetect(8),
ipmiping(8),
ipmipower(8),
rmcpping(8)
http://www.gnu.org/software/freeipmi/