The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/
>. */
/* This header is separate from features.h so that the compiler can
include it implicitly at the start of every compilation. It must
not itself include <features.h> or any other header that includes
<features.h> because the implicit include comes before any feature
test macros that may be defined in a source file before it first
explicitly includes a system header. GCC knows the name of this
header in order to preinclude it. */
/* glibc’s intent is to support the IEC 559 math functionality, real
and complex. If the GCC (4.9 and later) predefined macros
specifying compiler intent are available, use them to determine
whether the overall intent is to support these features; otherwise,
presume an older compiler has intent to support these features and
define these macros by default. */
/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) / Unicode
6.0. */
/* We do not support C11 <threads.h>. */
Most FreeIPMI tools can operate in-band by using one of the in-band drivers included. These in-band drivers include a direct KCS interface driver, a Linux SSIF driver through the SSIF device (i.e. /dev/i2c-0), the OpenIPMI Linux kernel driver (i.e. /dev/ipmi0), and the Sun/Solaris BMC driver (i.e. /dev/bmc). 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 bmc-config(8) . Additional information on how to configure with bmc-config(8) can be found in the bmc-config.conf(5) manpage. Some vendors may pre-configure their motherboards with default values so that bmc-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.
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.
Bmc-info
A tool to read information about a BMC such as device version numbers, device support, and globally unique IDs (guids).
Bmc-config
A tool to configure general BMC and IPMI information. Supports configuration of usernames, passwords, networking information, security, Serial-over-LAN (SOL), and other core fields.
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-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-chassis-config
A tool to configure IPMI chassis information. Supports configuration of boot device, power restore policy, and other chassis related fields.
Ipmi-pef-config
A tool to configure Platform Event Filtering (PEF) information.
Ipmi-pet
A tool to parse and interpret Platform Event Traps (PET).
Ipmi-sensors-config
A tool to configure IPMI sensors. Supports configuration of sensor thresholds, sensor events, and other sensor related fields.
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.
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.
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.
http://www.gnu.org/software/freeipmi/