1029 lines
48 KiB
Plaintext
1029 lines
48 KiB
Plaintext
|
This is freeipmi-faq.info, produced by makeinfo version 4.13 from
|
|||
|
freeipmi-faq.texi.
|
|||
|
|
|||
|
This manual is for FreeIPMI (version 1.5.1, 13 November 2015).
|
|||
|
Copyright (C) 2006-2012 FreeIPMI Core Team
|
|||
|
|
|||
|
Permission is granted to copy, distribute and/or modify this
|
|||
|
document under the terms of the GNU Free Documentation License,
|
|||
|
Version 1.2 or any later version published by the Free Software
|
|||
|
Foundation; with no Invariant Sections, no Front-Cover Texts, and
|
|||
|
no Back-Cover Texts.
|
|||
|
|
|||
|
INFO-DIR-SECTION Platform Management
|
|||
|
START-INFO-DIR-ENTRY
|
|||
|
* FreeIPMI FAQ: (freeipmi-faq). FreeIPMI - Frequently Asked Questions
|
|||
|
END-INFO-DIR-ENTRY
|
|||
|
|
|||
|
Copyright (C) 2003-2012 FreeIPMI Core Team.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Top, Next: What is IPMI?, Prev: (dir), Up: (dir)
|
|||
|
|
|||
|
Frequently Asked Questions on *FreeIPMI*
|
|||
|
|
|||
|
This edition of the documentation was last updated on 1 December
|
|||
|
2015 for release 1.5.1 of the FreeIPMI.
|
|||
|
|
|||
|
* Menu:
|
|||
|
|
|||
|
* What is IPMI?::
|
|||
|
* What is FreeIPMI?::
|
|||
|
* How did FreeIPMI start?::
|
|||
|
* What operating systems does FreeIPMI run on?::
|
|||
|
* FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil::
|
|||
|
* What is special about FreeIPMI?::
|
|||
|
* Does my system support IPMI?::
|
|||
|
* How do I compile FreeIPMI?::
|
|||
|
* libgcrypt requirement::
|
|||
|
* x86-64 Compilation::
|
|||
|
* Installing FreeIPMI on FreeBSD::
|
|||
|
* What are some IPMI terminology or acronyms I should be aware of?::
|
|||
|
* What setup is needed for FreeIPMI to communicate over LAN?::
|
|||
|
* What setup is needed for Serial over LAN (SOL) or Ipmiconsole?::
|
|||
|
* Do I need to install or configure a driver to perform IPMI inband?::
|
|||
|
* SSIF Driver Configuration::
|
|||
|
* How do you setup Powerman with ipmipower?::
|
|||
|
* How do you setup Conman with ipmiconsole or libipmiconsole?::
|
|||
|
* How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?::
|
|||
|
* Why are times reported by FreeIPMI tools wrong?::
|
|||
|
* Why is the IPMI kernel driver faster than the KCS driver?::
|
|||
|
* Why is the output from FreeIPMI different than another software?::
|
|||
|
* Why are there so many IPMI compliance bugs?::
|
|||
|
* How do I get around an IPMI compliance bug on my motherboard?::
|
|||
|
* Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?::
|
|||
|
* How do I program with the FreeIPMI libraries?::
|
|||
|
* Where can I get additional help or support?::
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What is IPMI?, Next: What is FreeIPMI?, Prev: Top, Up: Top
|
|||
|
|
|||
|
0.1 What is IPMI?
|
|||
|
=================
|
|||
|
|
|||
|
The IPMI specifications define standardized, abstracted interfaces to
|
|||
|
the platform management subsystem. IPMI includes the definition of
|
|||
|
interfaces for extending platform management between the board within
|
|||
|
the main chassis and between multiple chassis.
|
|||
|
|
|||
|
The term platform management is used to refer to the monitoring and
|
|||
|
control functions that are built in to the platform hardware and
|
|||
|
primarily used for the purpose of monitoring the health of the system
|
|||
|
hardware. This typically includes monitoring elements such as system
|
|||
|
temperatures, voltages, fans, power supplies, bus errors, system
|
|||
|
physical security, etc. It includes automatic and manually driven
|
|||
|
recovery capabilities such as local or remote system resets and power
|
|||
|
on/off operations. It includes the logging of abnormal or out-of-range
|
|||
|
conditions for later examination and alerting where the platform issues
|
|||
|
the alert without aid of run-time software. Lastly it includes
|
|||
|
inventory information that can help identify a failed hardware unit.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What is FreeIPMI?, Next: How did FreeIPMI start?, Prev: What is IPMI?, Up: Top
|
|||
|
|
|||
|
0.2 What is FreeIPMI?
|
|||
|
=====================
|
|||
|
|
|||
|
FreeIPMI is a collection of Intelligent Platform Management IPMI system
|
|||
|
software. It provides in-band and out-of-band software and a
|
|||
|
development library conforming to the Intelligent Platform Management
|
|||
|
Interface (IPMI v1.5 and v2.0) standards. FreeIPMI also supports
|
|||
|
IPMI-related specifications such as the Data Center Management Interface
|
|||
|
(DCMI) and Intel Node Manager.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How did FreeIPMI start?, Next: What operating systems does FreeIPMI run on?, Prev: What is FreeIPMI?, Up: Top
|
|||
|
|
|||
|
0.3 How did FreeIPMI start?
|
|||
|
===========================
|
|||
|
|
|||
|
In October 2003, California Digital Corp. (CDC) was contracted by
|
|||
|
Lawrence Livermore National Laboratory (LLNL) for the assembly of
|
|||
|
Thunder, a 1024 node Itanium2 cluster. This led to software developers
|
|||
|
from CDC and LLNL merging the IPMI software developed by both
|
|||
|
organizations into FreeIPMI.
|
|||
|
|
|||
|
Anand Babu, Balamurugan and Ian Zimmerman at CDC contributed the
|
|||
|
in-band KCS driver, `ipmi-sensors', `ipmi-sel', `bmc-info', core
|
|||
|
portions of `ipmi-config', and portions of libfreeipmi. Albert Chu and
|
|||
|
Jim Garlick at LLNL contributed `ipmipower', `bmc-watchdog',
|
|||
|
`ipmiping', `rmcpping', portions of libfreeipmi, and IPMI support in
|
|||
|
Powerman. In October 2004, FreeIPMI 0.1.0 was officially released.
|
|||
|
|
|||
|
Since the 0.1.0 release, Z Research developers have contributed
|
|||
|
`ipmi-chassis', `ipmi-raw', `ipmi-locate', and PEF portions of
|
|||
|
`ipmi-config'. LLNL has contributed IPMI 2.0 support, hostrange
|
|||
|
support, `ipmiconsole', libipmiconsole, `ipmidetect', `bmc-device',
|
|||
|
`ipmi-oem', `ipmi-dcmi', libipmimonitoring, and the chassis and sensor
|
|||
|
portions of `ipmi-config'.
|
|||
|
|
|||
|
(Note: The original FreeIPMI developers from California Digital
|
|||
|
Corp. are now at Zresearch Inc.)
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What operating systems does FreeIPMI run on?, Next: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, Prev: How did FreeIPMI start?, Up: Top
|
|||
|
|
|||
|
0.4 What operating systems does FreeIPMI run on?
|
|||
|
================================================
|
|||
|
|
|||
|
FreeIPMI was originally developed on GNU/Linux. It has been confirmed
|
|||
|
to be built on most major GNU/Linux distributions such as Redhat,
|
|||
|
Fedora, Suse, and Debian. FreeIPMI has been ported and confirmed to
|
|||
|
work on atleast FreeBSD, OpenBSD, Solaris, OpenSolaris, and Windows via
|
|||
|
Cygwin. We imagine it would build cleanly on other operating systems.
|
|||
|
If it doesn't, it should be easily portable to them. Please contact
|
|||
|
the maintainers on the <freeipmi-devel@gnu.org> mailing lists.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, Next: What is special about FreeIPMI?, Prev: What operating systems does FreeIPMI run on?, Up: Top
|
|||
|
|
|||
|
0.5 FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil
|
|||
|
================================================
|
|||
|
|
|||
|
There are multiple implementations, APIs, interfaces, end user
|
|||
|
requirements, etc. that one can choose when developing IPMI drivers,
|
|||
|
libraries, and tools. FreeIPMI has taken some different approaches
|
|||
|
than other open-source projects.
|
|||
|
|
|||
|
The section below points out a number of the reasons why we feel
|
|||
|
FreeIPMI is particularly special compared to the other projects.
|
|||
|
|
|||
|
The Ipmiutil project has a good chart describing many of the
|
|||
|
differences between the projects:
|
|||
|
`http://ipmiutil.sourceforge.net/docs/ipmisw-compare.htm'.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What is special about FreeIPMI?, Next: Does my system support IPMI?, Prev: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, Up: Top
|
|||
|
|
|||
|
0.6 What is special about FreeIPMI?
|
|||
|
===================================
|
|||
|
|
|||
|
In our eyes, there are several reasons why FreeIPMI is particularly
|
|||
|
special.
|
|||
|
|
|||
|
1. Support for HPC and large data centers
|
|||
|
|
|||
|
A number of features have been added into the tools to support HPC
|
|||
|
and/or large data centers. Much of this original support was
|
|||
|
added to support the large cluster environments at Lawrence
|
|||
|
Livermore National Laboratory (LLNL).
|
|||
|
|
|||
|
Scalable parallel execution of many FreeIPMI tools
|
|||
|
(`ipmi-sensors', `ipmi-sel', `bmc-info', etc.) across a cluster
|
|||
|
is supported through hostranged input and output. For example:
|
|||
|
|
|||
|
# > bmc-info -h "pwopr[0-5]" -u XXX -p XXX --get-device-id -C
|
|||
|
----------------
|
|||
|
pwopr[0-1,5]
|
|||
|
----------------
|
|||
|
Device ID : 34
|
|||
|
Device Revision : 1
|
|||
|
Device SDRs : unsupported
|
|||
|
Firmware Revision : 1.0c
|
|||
|
Device Available : yes (normal operation)
|
|||
|
IPMI Version : 2.0
|
|||
|
Sensor Device : supported
|
|||
|
SDR Repository Device : supported
|
|||
|
SEL Device : supported
|
|||
|
FRU Inventory Device : supported
|
|||
|
IPMB Event Receiver : unsupported
|
|||
|
IPMB Event Generator : unsupported
|
|||
|
Bridge : unsupported
|
|||
|
Chassis Device : supported
|
|||
|
Manufacturer ID : Peppercon AG (10437)
|
|||
|
Product ID : 4
|
|||
|
Auxiliary Firmware Revision Information : 38420000h
|
|||
|
----------------
|
|||
|
pwopr[2-4]
|
|||
|
----------------
|
|||
|
Device ID : 34
|
|||
|
Device Revision : 1
|
|||
|
Device SDRs : unsupported
|
|||
|
Firmware Revision : 1.17
|
|||
|
Device Available : yes (normal operation)
|
|||
|
IPMI Version : 2.0
|
|||
|
Sensor Device : supported
|
|||
|
SDR Repository Device : supported
|
|||
|
SEL Device : supported
|
|||
|
FRU Inventory Device : supported
|
|||
|
IPMB Event Receiver : unsupported
|
|||
|
IPMB Event Generator : unsupported
|
|||
|
Bridge : unsupported
|
|||
|
Chassis Device : supported
|
|||
|
Manufacturer ID : Peppercon AG (10437)
|
|||
|
Product ID : 4
|
|||
|
Auxiliary Firmware Revision Information : 38420000h
|
|||
|
|
|||
|
In the above example, its clear to see that pwopr[2-4] have
|
|||
|
different firmware than pwopr[0-1,5]. More information about
|
|||
|
hostrange support can be found in the document
|
|||
|
`freeipmi-hostrange.txt'
|
|||
|
(`http://www.gnu.org/software/freeipmi/freeipmi-hostrange.txt').
|
|||
|
|
|||
|
`Ipmipower' is capable of scaling to large nodes for cluster
|
|||
|
support and is supported by Powerman
|
|||
|
(`https://github.com/chaos/powerman') for scalable power
|
|||
|
management. At LLNL, in conjunction with Powerman, ipmipower is
|
|||
|
used for power control on clusters ranging from sizes of 4 to
|
|||
|
2000. It has been used to determine power status or power control
|
|||
|
LLNL's largest clusters in under a second.
|
|||
|
|
|||
|
`libipmiconsole' is currently supported by Conman
|
|||
|
(`https://github.com/dun/conman') and Conserver
|
|||
|
(`http://www.conserver.com/') for scalable console management.
|
|||
|
|
|||
|
`Ipmi-sensors' and libipmimonitoring are capable of interpreting
|
|||
|
sensor readings as well as just reporting them. It can be used
|
|||
|
for host monitoring IPMI sensor severity on a cluster. By mapping
|
|||
|
sensor readings into NOMINAL, WARNING, or CRITICAL states, it
|
|||
|
makes monitoring sensors easier across large numbers of nodes.
|
|||
|
Skummee (`http://sourceforge.net/projects/skummee') currently uses
|
|||
|
libipmimonitoring to monitoring sensors on LLNL clusters of up to
|
|||
|
2000 nodes in size. FreeIPMI sensor monitoring plugins for
|
|||
|
Ganglia (`http://ganglia.info/') and Nagios
|
|||
|
(`http://www.nagios.org/') have also been developed and made
|
|||
|
available for download
|
|||
|
(`http://www.gnu.org/software/freeipmi/download.html').
|
|||
|
|
|||
|
`Ipmi-sel' and libipmimonitoring are capable of interpreting
|
|||
|
system event log (SEL) entries as well as just reporting them. It
|
|||
|
can be used for host monitoring IPMI event severity on a cluster.
|
|||
|
By mapping events into NOMINAL, WARNING, or CRITICAL states, it
|
|||
|
makes monitoring system events easier across large numbers of
|
|||
|
nodes. Skummee (`http://sourceforge.net/projects/skummee')
|
|||
|
currently uses libipmimonitoring to monitoring the SEL on LLNL
|
|||
|
clusters of up to 2000 nodes in size.
|
|||
|
|
|||
|
The `ipmi-config' configuration file and command-line interface
|
|||
|
are used to easily copy the BMC configuration from one node to
|
|||
|
every other node in a cluster quickly. It has been used to modify
|
|||
|
the BMC configuration across large LLNL clusters in a few minutes.
|
|||
|
They also have the capability to verify (via the diff option) that
|
|||
|
the desired configuration has been properly stored to firmware.
|
|||
|
|
|||
|
`Ipmidetect' can be used to enhance the efficiency of the
|
|||
|
hostranged input by eliminating those nodes in the cluster that
|
|||
|
have been temporarily removed for servicing.
|
|||
|
|
|||
|
FreeIPMI is supported within Slurm for energy consumption
|
|||
|
monitoring.
|
|||
|
|
|||
|
2. Additional OEM support
|
|||
|
|
|||
|
FreeIPMI contains support for a number of OEM extensions and OEM
|
|||
|
sensors and/or events. `Ipmi-oem' currently supports OEM command
|
|||
|
extensions for motherboards made by Dell, Fujitsu, IBM, Intel,
|
|||
|
Inventec, Quanta, Sun Microsystems, Supermicro, and Wistron.
|
|||
|
`Ipmi-sensors' and `ipmi-sel' support OEM sensors and/or events
|
|||
|
for motherboards made from Dell, Fujitsu, HP, Intel, Inventec,
|
|||
|
Quanta, Sun Microsystems, Supermicro, and Wistron. (Some of the
|
|||
|
motherboards may have been rebranded by vendors, see manpages for
|
|||
|
official list of confirmed supported motherboards.)
|
|||
|
|
|||
|
3. Additional flexibility and features
|
|||
|
|
|||
|
By implementing various IPMI sub-sections into multiple tools,
|
|||
|
each tool is capable of providing the user with more flexibility
|
|||
|
and ultimately more features in addition to those listed above.
|
|||
|
It may not be as easy (or architecturally possible) to do in an
|
|||
|
all-in-one tool.
|
|||
|
|
|||
|
4. Extra IPMI support
|
|||
|
|
|||
|
In addition to the features listed above, FreeIPMI also supports
|
|||
|
specifications related to IPMI. The Data Center Management
|
|||
|
Interface, or DCMI, is supported via the FreeIPMI tool
|
|||
|
`ipmi-dcmi'. Some aspects of the Intel Power Node Manager are
|
|||
|
supported in `ipmi-oem'.
|
|||
|
|
|||
|
5. Easy setup
|
|||
|
|
|||
|
By implementing drivers in userspace libraries, there is no need to
|
|||
|
build/setup/manage any kernel modules/drivers.
|
|||
|
|
|||
|
6. Portability
|
|||
|
|
|||
|
Likewise, by implementing everything in userspace libraries and
|
|||
|
tools, portability to multiple operating systems and architectures
|
|||
|
should be easier.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Does my system support IPMI?, Next: How do I compile FreeIPMI?, Prev: What is special about FreeIPMI?, Up: Top
|
|||
|
|
|||
|
0.7 Does my system support IPMI?
|
|||
|
================================
|
|||
|
|
|||
|
Unfortunately, there are no universally defined mechanisms for
|
|||
|
determining if a system supports IPMI via Inband communication.
|
|||
|
Assuming IPMI is set up correctly for over LAN communication, a fairly
|
|||
|
reliable mechanism exists out-of-band. Here are some suggestions.
|
|||
|
|
|||
|
1. FreeIPMI's `ipmi-locate' can be used to determine if IPMI can be
|
|||
|
found on your system. Users are cautioned though, the failure to
|
|||
|
discover IPMI via `ipmi-locate' is not sufficient to disprove that
|
|||
|
IPMI exists on your system. Your system may not publish such
|
|||
|
information or may expect clients to communicate at default
|
|||
|
locations.
|
|||
|
|
|||
|
2. `dmidecode' may be similarly used to probe for devices that
|
|||
|
support IPMI on your system. You may grep for IPMI or specifying
|
|||
|
the IPMI DMI type on the command line.
|
|||
|
|
|||
|
# > dmidecode --type 38
|
|||
|
# dmidecode 2.10
|
|||
|
SMBIOS 2.5 present.
|
|||
|
|
|||
|
Handle 0x0049, DMI type 38, 18 bytes
|
|||
|
IPMI Device Information
|
|||
|
Interface Type: KCS (Keyboard Control Style)
|
|||
|
Specification Version: 2.0
|
|||
|
I2C Slave Address: 0x10
|
|||
|
NV Storage Device: Not Present
|
|||
|
Base Address: 0x0000000000000CA2 (I/O)
|
|||
|
Register Spacing: Successive Byte Boundaries
|
|||
|
|
|||
|
3. FreeIPMI's `ipmi-ping' can be used to see if a machine has an IPMI
|
|||
|
service at a specific host/IP address. For more wide scale IPMI
|
|||
|
discovery, the `ipmi-detectd' daemon and `ipmi-detect' tool can be
|
|||
|
used.
|
|||
|
|
|||
|
|
|||
|
Again, the failure to find an IPMI supported device is not
|
|||
|
sufficient to show lack of IPMI support.
|
|||
|
|
|||
|
Ultimately, some amount of information from product documents or
|
|||
|
trial and error may be necessary to determine if IPMI is supported on
|
|||
|
your system.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do I compile FreeIPMI?, Next: libgcrypt requirement, Prev: Does my system support IPMI?, Up: Top
|
|||
|
|
|||
|
0.8 How do I compile FreeIPMI?
|
|||
|
==============================
|
|||
|
|
|||
|
Please see the README.build instructions provided with FreeIPMI or on
|
|||
|
the FreeIPMI website's documentation
|
|||
|
(`http://www.gnu.org/software/freeipmi/README.build').
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: libgcrypt requirement, Next: x86-64 Compilation, Prev: How do I compile FreeIPMI?, Up: Top
|
|||
|
|
|||
|
0.9 libgcrypt requirement
|
|||
|
=========================
|
|||
|
|
|||
|
FreeIPMI requires the libgcrypt library to be installed for a variety
|
|||
|
of encryption requirements in IPMI 2.0. If you are building FreeIPMI
|
|||
|
and receive a 'libgcrypt required to build libfreeipmi' error, please
|
|||
|
install libgcrypt. For Linux users, this may require the install of
|
|||
|
the libgcrypt-devel package as well. For those who do not need IPMI
|
|||
|
2.0 encryption, FreeIPMI may be built without it by specifying
|
|||
|
`--without-encryption' when executing configure.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: x86-64 Compilation, Next: Installing FreeIPMI on FreeBSD, Prev: libgcrypt requirement, Up: Top
|
|||
|
|
|||
|
0.10 x86-64 Compilation
|
|||
|
=======================
|
|||
|
|
|||
|
By default, FreeIPMI's build autotools (e.g. configure) should detect
|
|||
|
if you are on a 64 bit system and should build against 64 bit
|
|||
|
libraries. However, some multi-architecture installs (e.g. you have 32
|
|||
|
bit and 64 bit libraries installed) may lead to builds and installs of
|
|||
|
32 bit instead of 64 bit. For those noticing this, pass libdir
|
|||
|
appropriately to the configure script to workaround this problem. (e.g.
|
|||
|
`--libdir=/usr/lib64')
|
|||
|
|
|||
|
Example:
|
|||
|
# ./configure --prefix=/usr --libdir=/usr/lib64
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Installing FreeIPMI on FreeBSD, Next: What are some IPMI terminology or acronyms I should be aware of?, Prev: x86-64 Compilation, Up: Top
|
|||
|
|
|||
|
0.11 Installing FreeIPMI on FreeBSD
|
|||
|
===================================
|
|||
|
|
|||
|
You can install a binary package of freeipmi or use the port, located
|
|||
|
in ports/sysutils/freeipmi, to build it from the source. See ports(7)
|
|||
|
and 'Packages and Ports' section
|
|||
|
(`http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html')
|
|||
|
in The FreeBSD Handbook.
|
|||
|
|
|||
|
Please contact port maintainer (MAINTAINER line in the port's
|
|||
|
Makefile), if you have problems building from the port.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What are some IPMI terminology or acronyms I should be aware of?, Next: What setup is needed for FreeIPMI to communicate over LAN?, Prev: Installing FreeIPMI on FreeBSD, Up: Top
|
|||
|
|
|||
|
0.12 What are some IPMI terminology or acronyms I should be aware of?
|
|||
|
=====================================================================
|
|||
|
|
|||
|
Good question, here are some terms and acronyms with general definition
|
|||
|
you might want to know.
|
|||
|
|
|||
|
*BMC*
|
|||
|
The *Baseboard Management Controller* is the management chip on
|
|||
|
the system that is responsible for IPMI. It is common to refer to
|
|||
|
configuring the "BMC" as synonymous for configuring IPMI.
|
|||
|
|
|||
|
*inband*
|
|||
|
*inband* IPMI communication refers to communication on a system
|
|||
|
locally (i.e. not over a network).
|
|||
|
|
|||
|
*outofband*
|
|||
|
*outofband* and *IPMI over LAN* refer to IPMI communication over a
|
|||
|
network, typically ethernet.
|
|||
|
|
|||
|
*SDR*
|
|||
|
The *Sensor Data Repository* is a database of system information
|
|||
|
that is needed by many other IPMI functions. It is commonly read
|
|||
|
before some IPMI action can be taken. For example, it contains a
|
|||
|
list of all sensors on a system, so it must be downloaded before
|
|||
|
sensors on a system can be read. In FreeIPMI, the SDR is cached
|
|||
|
in a common location and can be used by a number of tools, such as
|
|||
|
`ipmi-sensors', `ipmi-sel', and `ipmi-fru'.
|
|||
|
|
|||
|
*SEL*
|
|||
|
The *System Event Log* is a log of events stored on the system for
|
|||
|
later diagnostics. In FreeIPMI, `ipmi-sel' can be used to read
|
|||
|
the SEL.
|
|||
|
|
|||
|
*FRU*
|
|||
|
The *Field Replaceable Unit* is a general computing term refering
|
|||
|
to a replaceable unit of electronics. In IPMI it is common to
|
|||
|
refer to the "FRU" as the database of all FRU components on a
|
|||
|
system. In FreeIPMI, `ipmi-fru' can be used to read the FRU
|
|||
|
components on a system.
|
|||
|
|
|||
|
*PEF*
|
|||
|
*Platform Event Filtering* refers to the rules that determine when
|
|||
|
PETs are generated and where they are sent. In FreeIPMI, PEF can
|
|||
|
be configured via `ipmi-config'.
|
|||
|
|
|||
|
*PET*
|
|||
|
*Platform Event Trap* refers to a trap that can be sent by a
|
|||
|
system to an SNMP agent to indicate an event has occurred on the
|
|||
|
system. In FreeIPMI, a PET trap can be interpreted via `ipmi-pet'.
|
|||
|
|
|||
|
*DCMI*
|
|||
|
The *Data Center Management Interface* is a management interface
|
|||
|
defined by a group of vendors that use IPMI as the backend for
|
|||
|
their system management definition. In FreeIPMI, `ipmi-dcmi' can
|
|||
|
be used to read/configuring DCMI.
|
|||
|
|
|||
|
*SOL*
|
|||
|
*Serial over LAN* refers to the forwarding of serial system
|
|||
|
traffic over a network, typically an ethernet network. It is
|
|||
|
typically used to access a remote system console. In FreeIPMI,
|
|||
|
ipmiconsole is used to access a remote console via SOL.
|
|||
|
|
|||
|
*RMCP*
|
|||
|
The *Remote Management Control Protocol* protocol is another
|
|||
|
remote management protocol which IPMI is defined within for
|
|||
|
outofband communication. For most IPMI users, you will never need
|
|||
|
to know about RMCP.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What setup is needed for FreeIPMI to communicate over LAN?, Next: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?, Prev: What are some IPMI terminology or acronyms I should be aware of?, Up: Top
|
|||
|
|
|||
|
0.13 What setup is needed for FreeIPMI to communicate over LAN?
|
|||
|
===============================================================
|
|||
|
|
|||
|
Please see the ipmi-config.conf(5) manpage provided with FreeIPMI for
|
|||
|
details, or you can read it on the FreeIPMI website's documentation
|
|||
|
(`http://www.gnu.org/software/freeipmi/manpages/man5/ipmi-config.conf.5.html').
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?, Next: Do I need to install or configure a driver to perform IPMI inband?, Prev: What setup is needed for FreeIPMI to communicate over LAN?, Up: Top
|
|||
|
|
|||
|
0.14 What setup is needed for Serial over LAN (SOL) or Ipmiconsole?
|
|||
|
===================================================================
|
|||
|
|
|||
|
The setup of Serial-over-LAN (SOL) and/or `Ipmiconsole' is highly
|
|||
|
dependent on your system. However, most motherboardss require the
|
|||
|
following:
|
|||
|
|
|||
|
1. Adjust the BIOS COM port for serial redirection over SOL instead
|
|||
|
of the normal serial port and set the appropriate baud rate. If
|
|||
|
you do not know which port is the SOL port, you may need to play
|
|||
|
around and guess. It is likely a non-default setting, since many
|
|||
|
manufacturers may still assume the default redirection is out of
|
|||
|
the normal serial port. If you do not have a serial port on your
|
|||
|
motherboard, this part can probably be skipped.
|
|||
|
|
|||
|
2. Configure IPMI on the motherboard to use SOL. Many motherboards
|
|||
|
may have this enabled by default, however you may wish to verify
|
|||
|
with FreeIPMI's `ipmi-config'. More information can be found in
|
|||
|
the ipmi-config.conf(5) manpage on the settings. However, the key
|
|||
|
settings are to enable SOL on the system, enable SOL for
|
|||
|
individual users, and select the appropriate baud. On many
|
|||
|
motherboards, the selected baud must match what is configured in
|
|||
|
the BIOS.
|
|||
|
|
|||
|
3. Adjust your operating systems serial console settings to use the
|
|||
|
appropriate COM port. For Linux, the following guide
|
|||
|
(`http://www.vanemery.com/Linux/Serial/serial-console.html')
|
|||
|
provides a pretty good overview of setting of a serial console on
|
|||
|
Linux. The only difference for setting up a serial console with
|
|||
|
`Ipmiconsole' or SOL, is the ttySX terminal may need to be changed.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Do I need to install or configure a driver to perform IPMI inband?, Next: SSIF Driver Configuration, Prev: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?, Up: Top
|
|||
|
|
|||
|
0.15 Do I need to install or configure a driver to perform IPMI inband?
|
|||
|
=======================================================================
|
|||
|
|
|||
|
For most people the answer is no.
|
|||
|
|
|||
|
FreeIPMI includes a userspace driver that works on most motherboards
|
|||
|
without any driver installation, loading, or configuration required.
|
|||
|
FreeIPMI also includes support of a Linux SSIF driver through the 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 you communicate through
|
|||
|
one of these mechanisms, the appropriate drivers for them should be
|
|||
|
loaded. Most systems should automatically load the appropriate drivers
|
|||
|
you need.
|
|||
|
|
|||
|
Under most scenarios, the FreeIPMI tools should automatically
|
|||
|
discover which in-band interface to use and the proper settings to use.
|
|||
|
Some motherboards may require you to determine alternate configurations
|
|||
|
for addresses, paths, etc. on your own and pass them as command line
|
|||
|
options to the tools.
|
|||
|
|
|||
|
Every system is different and your situation may differ. Please see
|
|||
|
your manufacturer and operating system instructions.
|
|||
|
|
|||
|
Special note: At the time of this writing the Intel DCMI/MEI Linux
|
|||
|
device drivers are not distributed widely. Please work with your
|
|||
|
vendor to obtain the Intel MEI and DCMI device drivers.
|
|||
|
|
|||
|
There are some additional Linux OpenIPMI kernel driver notes here:
|
|||
|
`http://www.gnu.org/software/freeipmi/README.openipmi'.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: SSIF Driver Configuration, Next: How do you setup Powerman with ipmipower?, Prev: Do I need to install or configure a driver to perform IPMI inband?, Up: Top
|
|||
|
|
|||
|
0.16 SSIF Driver Configuration
|
|||
|
==============================
|
|||
|
|
|||
|
FreeIPMI's SSIF driver works on top of kernel'2 i2c device interface.
|
|||
|
|
|||
|
Under GNU/Linux load these kernel modules: i2c-dev, i2c-i801,
|
|||
|
i2c-core before using FreeIPMI.
|
|||
|
|
|||
|
To identify SSIF device address:
|
|||
|
|
|||
|
Example:
|
|||
|
$> lspci (in the output look for this entry)
|
|||
|
00:1f.3 SMBus: Intel Corp. 6300ESB SMBus Controller (rev 01)
|
|||
|
Subsystem: Intel Corp.: Unknown device 342f
|
|||
|
Flags: medium devsel, IRQ 17
|
|||
|
I/O ports at 0400 [size=32]
|
|||
|
----
|
|||
|
$> cat /proc/bus/i2c
|
|||
|
i2c-0 smbus SMBus I801 adapter at 0400 Non-I2C SMBus adapter
|
|||
|
----
|
|||
|
Make sure the "0400" above matches with the "0400" address under
|
|||
|
proc. Also make sure "i2c-0" is not different. If it appears
|
|||
|
different then grep for "i2c-0" in this code "ipmitool.c" and
|
|||
|
change. "i2c-X" is the label assigned to each slave device attached on
|
|||
|
the i2c bus.
|
|||
|
|
|||
|
BMC address Locator:
|
|||
|
Refer to the SM BIOS IPMI Device Information Record
|
|||
|
Type 38, record 06h and 08h. Use the value of record
|
|||
|
06h as the IPMBAddress and load the SMBus controller
|
|||
|
driver at the address value read from record 08h.
|
|||
|
|
|||
|
Usual values for record 06h -> 0x42
|
|||
|
Usual values for record 08h -> 0x400
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do you setup Powerman with ipmipower?, Next: How do you setup Conman with ipmiconsole or libipmiconsole?, Prev: SSIF Driver Configuration, Up: Top
|
|||
|
|
|||
|
0.17 How do you setup Powerman with ipmipower?
|
|||
|
==============================================
|
|||
|
|
|||
|
There are additional details in the Powerman
|
|||
|
(`https://github.com/chaos/powerman') documentation, however here are
|
|||
|
the basics. In the powerman.conf file, you want to include the
|
|||
|
`ipmipower.dev' device file, setup an ipmipower device in co-process
|
|||
|
mode, then configure hosts to use that device.
|
|||
|
|
|||
|
include "/etc/powerman/ipmipower.dev"
|
|||
|
|
|||
|
device "ipmi0" "ipmipower" "/usr/sbin/ipmipower -h mynodes[0-10] |&"
|
|||
|
|
|||
|
node "mynodes[0-10]" "ipmi0" "mynodes[0-10]"
|
|||
|
|
|||
|
You may wish to add some additional ipmipower configuration on the
|
|||
|
device line:
|
|||
|
|
|||
|
device "ipmi0" "ipmipower" "/usr/sbin/ipmipower --wait-until-on --wait-until-off -h mynodes[0-10] -u username -p password |&"
|
|||
|
|
|||
|
although you will probably want to do some of this configuration
|
|||
|
(especially the username and password) in `freeipmi.conf'.
|
|||
|
|
|||
|
If you use an alternate set of hostnames for IPMI from the primary
|
|||
|
hostname, that can configured like this:
|
|||
|
|
|||
|
device "ipmi0" "ipmipower" "/usr/sbin/ipmipower -h altname[0-10] |&"
|
|||
|
|
|||
|
node "primaryname[0-10]" "ipmi0" "altname[0-10]"
|
|||
|
|
|||
|
Configuration can be trickier if you want to configure Powerman to
|
|||
|
use ipmipower with an OEM extension specified through
|
|||
|
`--oem-power-type'. Many OEM extensions in ipmipower must include
|
|||
|
additional arguments, which can be passed in via the node argument. In
|
|||
|
addition, while `ipmipower' can take a host range as an additional
|
|||
|
argument, Powerman may not.
|
|||
|
|
|||
|
For example, the following would be suitable to configure OEM
|
|||
|
extension support the Dell Poweredge C410x. A specific node identifier
|
|||
|
is used to map to a specific node and additional argument (i.e.
|
|||
|
mynodes0-1 maps to mynodes0+1).
|
|||
|
|
|||
|
include "/etc/powerman/ipmipower.dev"
|
|||
|
|
|||
|
device "ipmi0" "ipmipower" "/usr/sbin/ipmipower -h mynodes[0-10]+[1-16] --oem-power-type=c410x -l admin |&"
|
|||
|
|
|||
|
node "mynodes[0-10]-1" "ipmi0" "mynodes[0-10]+1"
|
|||
|
node "mynodes[0-10]-2" "ipmi0" "mynodes[0-10]+2"
|
|||
|
node "mynodes[0-10]-3" "ipmi0" "mynodes[0-10]+3"
|
|||
|
node "mynodes[0-10]-4" "ipmi0" "mynodes[0-10]+4"
|
|||
|
node "mynodes[0-10]-5" "ipmi0" "mynodes[0-10]+5"
|
|||
|
node "mynodes[0-10]-6" "ipmi0" "mynodes[0-10]+6"
|
|||
|
node "mynodes[0-10]-7" "ipmi0" "mynodes[0-10]+7"
|
|||
|
node "mynodes[0-10]-8" "ipmi0" "mynodes[0-10]+8"
|
|||
|
node "mynodes[0-10]-9" "ipmi0" "mynodes[0-10]+9"
|
|||
|
node "mynodes[0-10]-10" "ipmi0" "mynodes[0-10]+10"
|
|||
|
node "mynodes[0-10]-11" "ipmi0" "mynodes[0-10]+11"
|
|||
|
node "mynodes[0-10]-12" "ipmi0" "mynodes[0-10]+12"
|
|||
|
node "mynodes[0-10]-13" "ipmi0" "mynodes[0-10]+13"
|
|||
|
node "mynodes[0-10]-14" "ipmi0" "mynodes[0-10]+14"
|
|||
|
node "mynodes[0-10]-15" "ipmi0" "mynodes[0-10]+15"
|
|||
|
node "mynodes[0-10]-16" "ipmi0" "mynodes[0-10]+16"
|
|||
|
|
|||
|
As noted in the manpage, the Dell Poweredge C410x appears to have
|
|||
|
difficulty handling new slot power control requests until prior ones
|
|||
|
have completed. Users may wish to configure `ipmipower' with
|
|||
|
`--wait-until-on', `--wait-until-off', and consider using the
|
|||
|
`ipmipower-serial.dev' device file instead of `ipmipower.dev'.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do you setup Conman with ipmiconsole or libipmiconsole?, Next: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?, Prev: How do you setup Powerman with ipmipower?, Up: Top
|
|||
|
|
|||
|
0.18 How do you setup Conman with ipmiconsole or libipmiconsole?
|
|||
|
================================================================
|
|||
|
|
|||
|
There are additional details in the Conman
|
|||
|
(`https://github.com/dun/conman') documentation and manpages, however
|
|||
|
here are some basics.
|
|||
|
|
|||
|
To configure Conman to connect via the ipmiconsole tool, Conman comes
|
|||
|
with an expect script named ipmiconsole.exp, typically installed into
|
|||
|
`/usr/lib/conman/exec/ipmiconsole.exp'. Consoles can be setup by
|
|||
|
adding lines to `conman.conf' like:
|
|||
|
|
|||
|
CONSOLE name="myserver" dev="/usr/lib/conman/exec/ipmiconsole.exp myserver myusername mypassword"
|
|||
|
|
|||
|
One of the useful aspects of using the ipmiconsole.exp script is that
|
|||
|
the same configuration options you may have already configured into
|
|||
|
`freeipmi.conf', may be loaded automatically when ipmiconsole is
|
|||
|
executed via this expect script.
|
|||
|
|
|||
|
However, as can be expected, scalability may be a problem as you must
|
|||
|
launch a process for every node in your cluster.
|
|||
|
|
|||
|
Conman is also capable of connecting to servers natively through the
|
|||
|
libipmiconsole library, so that no additional processes are launched.
|
|||
|
They can be configured as follows:
|
|||
|
|
|||
|
CONSOLE name="myserver" IPMIOPTS="U:myusername,P:mypassword" dev="ipmi:myserver"
|
|||
|
|
|||
|
on some older versions of Conman, you would instead use
|
|||
|
|
|||
|
CONSOLE name="myserver" IPMIOPTS="myusername,mypassword" dev="ipmi:myserver"
|
|||
|
|
|||
|
Please see the Conman documentation for current version options and
|
|||
|
additional configuration options available. Alternate defaults for
|
|||
|
libipmiconsole can also be set via the `libipmiconsole.conf' file.
|
|||
|
|
|||
|
One of the additional advantages of configuring Conman to use the
|
|||
|
libipmiconsole library natively is that Conman is able to detect and
|
|||
|
manage additional IPMI error cases.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?, Next: Why are times reported by FreeIPMI tools wrong?, Prev: How do you setup Conman with ipmiconsole or libipmiconsole?, Up: Top
|
|||
|
|
|||
|
0.19 How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?
|
|||
|
=============================================================================
|
|||
|
|
|||
|
Scripts to monitor IPMI via FreeIPMI in Ganglia and Nagios have been
|
|||
|
developed and are downloadable on the FreeIPMI homepage
|
|||
|
(`http://www.gnu.org/software/freeipmi/download.html'). Instructions
|
|||
|
for setup can be found at the top of the scripts.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Why are times reported by FreeIPMI tools wrong?, Next: Why is the IPMI kernel driver faster than the KCS driver?, Prev: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?, Up: Top
|
|||
|
|
|||
|
0.20 Why are times reported by FreeIPMI tools wrong?
|
|||
|
====================================================
|
|||
|
|
|||
|
Times reported by various FreeIPMI tools (such as `ipmi-sel') are
|
|||
|
reported under the assumption that timestamps are written in localtime.
|
|||
|
This is by definition in the IPMI specification.
|
|||
|
|
|||
|
Whether or not a system truly stored the timestamps in localtime
|
|||
|
varies on many factors, such as the vendor, BIOS, and operating system.
|
|||
|
|
|||
|
If the times reported by the tool are off, there is a strong
|
|||
|
likelihood the time may be stored in GMT/UTC and needs to be converted
|
|||
|
into localtime. In FreeIPMI tools that have time outputs, the
|
|||
|
`--utc-to-localtime' option can be specified or the `utc-to-localtime'
|
|||
|
option can be specified in `freeipmi.conf'.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Why is the IPMI kernel driver faster than the KCS driver?, Next: Why is the output from FreeIPMI different than another software?, Prev: Why are times reported by FreeIPMI tools wrong?, Up: Top
|
|||
|
|
|||
|
0.21 Why is the IPMI kernel driver faster than the KCS driver?
|
|||
|
==============================================================
|
|||
|
|
|||
|
Internally the IPMI kernel driver chooses to spin while polling for a
|
|||
|
response from the base management controller (BMC) while the KCS driver
|
|||
|
elects to sleep between poll attempts. An operating system's scheduler
|
|||
|
granularity may be larger than the time it takes to perform a IPMI
|
|||
|
transaction, thus the wall clock time of the KCS driver is far worse
|
|||
|
than the IPMI kernel driver. FreeIPMI's KCS driver implements the
|
|||
|
sleep between poll attempts because it is believed to provide better
|
|||
|
overall system use. To force the KCS driver to have similar wall clock
|
|||
|
response time to the IPMI kernel driver, users can specify the
|
|||
|
'spinpoll' workaround.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Why is the output from FreeIPMI different than another software?, Next: Why are there so many IPMI compliance bugs?, Prev: Why is the IPMI kernel driver faster than the KCS driver?, Up: Top
|
|||
|
|
|||
|
0.22 Why is the output from FreeIPMI different than another software?
|
|||
|
=====================================================================
|
|||
|
|
|||
|
Due to minor implementation differences and or incorrect IPMI firmware,
|
|||
|
the resulting output from FreeIPMI tools can differ from other
|
|||
|
software. Here are some of the more common inconsistencies that have
|
|||
|
been seen before. More inconsistencies can be seen/fixed by specifying
|
|||
|
a number of the workarounds available to many of the FreeIPMI tools.
|
|||
|
|
|||
|
* In FreeIPMI's `ipmi-sel' and `ipmi-sensors' there are options for
|
|||
|
FreeIPMI to interpret the SEL or sensor readings and give them a
|
|||
|
NOMINAL, WARNING, or CRITICAL status. Other IPMI software may
|
|||
|
have different interpretations for their sensors and/or SEL
|
|||
|
readings that map to NOMINAL, WARNING, or CRITICAL differently.
|
|||
|
These interpretations are configurable in FreeIPMI via the
|
|||
|
`freeipmi_interpret_sel.conf' and `freeipmi_interpret_sensor.conf'
|
|||
|
configuration files.
|
|||
|
|
|||
|
* In some IPMI software, sensor and/or FRU records are bridged by
|
|||
|
default and read off satellite controllers. In FreeIPMI they are
|
|||
|
not due to the discovery that many vendors do not implement their
|
|||
|
bridging correctly or publish invalid slave addresses in the SDR.
|
|||
|
In order to bridge sensors the `--bridge-sensors' option must be
|
|||
|
specified in `ipmi-sensors'. In order to bridge FRU records, the
|
|||
|
`--bridge-fru' must be specified in `ipmi-fru'.
|
|||
|
|
|||
|
* In some IPMI software, shared sensors may be read by default. In
|
|||
|
FreeIPMI's `ipmi-sensors', they are not read by default due to
|
|||
|
discovery that too many systems implement this incorrectly.
|
|||
|
Shared sensors can be read by specifying the `--shared-sensors'
|
|||
|
option.
|
|||
|
|
|||
|
* In vendor provided IPMI software, OEM specific sensors, SEL
|
|||
|
records, or FRU records may be output correctly because the vendor
|
|||
|
is aware of how to properly read/output OEM specific information.
|
|||
|
FreeIPMI may not be able to do this by default. For the
|
|||
|
motherboards in which OEM information is known, it can be output
|
|||
|
using the `--interpret-oem-data'. This option is available in
|
|||
|
`ipmi-sensors', `ipmi-sel', and `ipmi-fru'.
|
|||
|
|
|||
|
* In some vendor IPMI software, sensor "names" are constructured
|
|||
|
through a combination of the multiple data in the SDR, rather than
|
|||
|
just the device name listed in the SDR. This can lead to
|
|||
|
different sensor names listed in tools like `ipmi-sensors' and
|
|||
|
`ipmi-sel'. In both tools, this can be alleviated through the use
|
|||
|
of the `--entity-sensor-names' option.
|
|||
|
|
|||
|
* On several HP systems (observed on HP Proliant DL380 G7 and HP
|
|||
|
ProLiant ML310 G5), the SDR lists sensors using inconsistent
|
|||
|
information. Some analog sensors are listed as discrete sensors
|
|||
|
or vice versa. This inconsistency, and implementation differences
|
|||
|
between `ipmi-sensors' and other IPMI software lead to different
|
|||
|
outputs. For example, this is one such sensor that was seen in
|
|||
|
`ipmi-sensors':
|
|||
|
|
|||
|
2 | Power Supply 1 | Power Supply | N/A | N/A | 'Presence detected'
|
|||
|
|
|||
|
but this same sensor was see in `ipmitool' as
|
|||
|
|
|||
|
Power Supply 1 | 120 Watts | nc
|
|||
|
|
|||
|
In this example, `ipmi-sensors' did not output a Watts reading but
|
|||
|
outputs the proper "Presence Detected" state. `Ipmitool' outputs
|
|||
|
the correct watts reading, but outputs the invalid non-critical
|
|||
|
"nc" state.
|
|||
|
|
|||
|
In FreeIPMI, this problem can be worked around using the
|
|||
|
'discretereading' workaround flag.
|
|||
|
|
|||
|
* In FreeIPMI's `ipmi-fru', all multirecord FRU entries are output
|
|||
|
by default. In `ipmitool' and perhaps other software, they are
|
|||
|
not. The resulting output from `ipmi-fru' is much larger than
|
|||
|
other software. To get similar output in `ipmitool', the `-v'
|
|||
|
option must be set.
|
|||
|
|
|||
|
* In FreeIPMI's `ipmi-fru', FRU record checksums are automatically
|
|||
|
checked and errors are output if a FRU record cannot assumed to be
|
|||
|
valid due to a failed checksum check. Other IPMI software has
|
|||
|
been shown to ignore the checksums and assume records are valid.
|
|||
|
If your system has invalid checksummed FRU entries, the
|
|||
|
'skipchecks' workaround can be used to get around them.
|
|||
|
|
|||
|
* In FreeIPMI's `ipmi-sensors', sensors may output an "OK" if no
|
|||
|
events are set. In other IPMI software (such as `ipmitool' and
|
|||
|
the command "sdr list"), "OK" means that a sensor was simply read
|
|||
|
correctly. The "OK" may not mean that the device behind the
|
|||
|
sensor is actually functioning properly. For example, here is an
|
|||
|
output from an `ipmitool' sdr list entry.
|
|||
|
|
|||
|
PSU 1 Status | 0x0b | ok
|
|||
|
|
|||
|
The 0x0b indicates that the power supply has errors (you normally
|
|||
|
want to see 0x00 or 0x01), however the sensor outputs "ok" because
|
|||
|
the sensor reading was read correctly. When using FreeIPMI's
|
|||
|
`ipmi-sensors', the 0x0b is properly converted into the event
|
|||
|
messages indicating an error.
|
|||
|
|
|||
|
54 | PSU 1 Status | Power Supply | N/A | N/A | 'Presence detected' 'Power Supply Failure detected' 'Power Supply input lost (AC/DC)'
|
|||
|
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Why are there so many IPMI compliance bugs?, Next: How do I get around an IPMI compliance bug on my motherboard?, Prev: Why is the output from FreeIPMI different than another software?, Up: Top
|
|||
|
|
|||
|
0.23 Why are there so many IPMI compliance bugs?
|
|||
|
================================================
|
|||
|
|
|||
|
The IPMI specification is very large. At last check, the IPMI
|
|||
|
specification was 601 pages. This does not count the various side
|
|||
|
specifications related to IPMI, including DCMI, PET, FRU, and the
|
|||
|
various OEM extension specifications (e.g. Intel Node Manager). Many
|
|||
|
sections of text can be ambiguous. Many components of IPMI are optional
|
|||
|
and aren't required to be implemented. There is some leeway for
|
|||
|
implementation interpretation as well. Ultimately, bugs will happen.
|
|||
|
In all fairness, FreeIPMI has had bugs too.
|
|||
|
|
|||
|
A number of the IPMI compliance bugs found by FreeIPMI are documented
|
|||
|
in the freeipmi-bugs-issues-and-workarounds.txt document (you can find
|
|||
|
it on the website here:
|
|||
|
`http://www.gnu.org/software/freeipmi/freeipmi-bugs-issues-and-workarounds.txt').
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do I get around an IPMI compliance bug on my motherboard?, Next: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?, Prev: Why are there so many IPMI compliance bugs?, Up: Top
|
|||
|
|
|||
|
0.24 How do I get around an IPMI compliance bug on my motherboard?
|
|||
|
==================================================================
|
|||
|
|
|||
|
Most of the FreeIPMI tools and libraries have flags to workaround a
|
|||
|
large number of IPMI compliance bugs found on motherboards. Please see
|
|||
|
the appropriate tool manpages or library header files for details on
|
|||
|
the workarounds available and for what motherboards.
|
|||
|
|
|||
|
If you believe there is a compliance issue on your motherboard that
|
|||
|
has not yet been implemented, please contact the maintainers on the
|
|||
|
<freeipmi-devel@gnu.org> mailing list.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?, Next: How do I program with the FreeIPMI libraries?, Prev: How do I get around an IPMI compliance bug on my motherboard?, Up: Top
|
|||
|
|
|||
|
0.25 Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?
|
|||
|
=============================================================================
|
|||
|
|
|||
|
In some Linux distributions (atleast with Redhat Enterprise Linux 6.4 /
|
|||
|
RHEL 6.4 and CentOS 6.4), the distributions began compiling the IPMI
|
|||
|
kernel driver (i.e. ipmi_msghandler and ipmi_si modules) into the
|
|||
|
kernel instead of as loadable modules. This was apparently due to a
|
|||
|
need for the IPMI kernel drivers to work with ACPI.
|
|||
|
|
|||
|
Due to compiling the IPMI kernel driver into the kernel, there is the
|
|||
|
potential for inband IPMI communication to occur in the kernel w/o any
|
|||
|
knowledge of it from outside software in userspace. Normally, the IPMI
|
|||
|
service (i.e. /etc/init.d/ipmi) is started to create a device file
|
|||
|
(i.e. /dev/ipmi0) so that userspace software will know to communicate
|
|||
|
through this device. However, some of these distros disable the ipmi
|
|||
|
service so that a device file is never created.
|
|||
|
|
|||
|
Because of this, multiple IPMI software can communicate inband to the
|
|||
|
BMC simultaneously, subsequently racing with each other. Ultimately,
|
|||
|
this can lead to communication problems. In FreeIPMI, this is most
|
|||
|
commonly seen through 'internal IPMI error' or 'driver busy' messages.
|
|||
|
|
|||
|
There are several possible solutions for this in FreeIPMI. If you
|
|||
|
start the ipmi service (i.e. /etc/init.d/ipmi start), a device file
|
|||
|
will be created which FreeIPMI will recognize. FreeIPMI will
|
|||
|
subsequently communicate via inband IPMI through this device file, thus
|
|||
|
eliminating racing with the IPMI occurring in the kernel.
|
|||
|
|
|||
|
The other option is to disable the IPMI kernel thread so that
|
|||
|
FreeIPMI can perform inband communication with the BMC through its own
|
|||
|
mechanisms. The following is from the Linux kernel documentation.
|
|||
|
|
|||
|
When compiled into the kernel, the parameters can be specified on the
|
|||
|
kernel command line as:
|
|||
|
|
|||
|
ipmi_si.type=<type1>,<type2>...
|
|||
|
ipmi_si.ports=<port1>,<port2>... ipmi_si.addrs=<addr1>,<addr2>...
|
|||
|
ipmi_si.irqs=<irq1>,<irq2>... ipmi_si.trydefaults=[0|1]
|
|||
|
ipmi_si.regspacings=<sp1>,<sp2>,...
|
|||
|
ipmi_si.regsizes=<size1>,<size2>,...
|
|||
|
ipmi_si.regshifts=<shift1>,<shift2>,...
|
|||
|
ipmi_si.slave_addrs=<addr1>,<addr2>,...
|
|||
|
ipmi_si.force_kipmid=<enable1>,<enable2>,...
|
|||
|
ipmi_si.kipmid_max_busy_us=<ustime1>,<ustime2>,...
|
|||
|
|
|||
|
...
|
|||
|
|
|||
|
If your IPMI interface does not support interrupts and is a KCS or
|
|||
|
SMIC interface, the IPMI driver will start a kernel thread for the
|
|||
|
interface to help speed things up. This is a low-priority kernel
|
|||
|
thread that constantly polls the IPMI driver while an IPMI operation
|
|||
|
is in progress. The force_kipmid module parameter will all the user to
|
|||
|
force this thread on or off. If you force it off and don't have
|
|||
|
interrupts, the driver will run VERY slowly.
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: How do I program with the FreeIPMI libraries?, Next: Where can I get additional help or support?, Prev: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?, Up: Top
|
|||
|
|
|||
|
0.26 How do I program with the FreeIPMI libraries?
|
|||
|
==================================================
|
|||
|
|
|||
|
If you are looking for a high level library to do Serial-over-LAN (SOL)
|
|||
|
or IPMI sensor/SEL monitoring, you may wish to look at the
|
|||
|
libipmiconsole and libipmimonitoring libraries. These libraries
|
|||
|
attempt to abstract a large amount of the underlying IPMI detail from
|
|||
|
developers. The majority of the documentation can be found in the
|
|||
|
header files. Some examples can be found in the documentation and the
|
|||
|
FreeIPMI tools that use them.
|
|||
|
|
|||
|
The libfreeipmi library is the core library used by other FreeIPMI
|
|||
|
libraries and tools. However, it is quite detailed in regards to the
|
|||
|
IPMI specification and many components of the library will be quite
|
|||
|
confusing to those unfamiliar with the finer details of the IPMI
|
|||
|
specification. It is recommended most use the higher level libraries
|
|||
|
described above.
|
|||
|
|
|||
|
A more detailed description of the available FreeIPMI libraries can
|
|||
|
be found in the `freeipmi-libraries.txt' document (you can find it on
|
|||
|
the website here:
|
|||
|
`http://www.gnu.org/software/freeipmi/freeipmi-libraries.txt').
|
|||
|
|
|||
|
|
|||
|
File: freeipmi-faq.info, Node: Where can I get additional help or support?, Prev: How do I program with the FreeIPMI libraries?, Up: Top
|
|||
|
|
|||
|
0.27 Where can I get additional help or support?
|
|||
|
================================================
|
|||
|
|
|||
|
For help, please email the <freeipmi-users@gnu.org> mailing list.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Tag Table:
|
|||
|
Node: Top692
|
|||
|
Node: What is IPMI?2252
|
|||
|
Node: What is FreeIPMI?3398
|
|||
|
Node: How did FreeIPMI start?3935
|
|||
|
Node: What operating systems does FreeIPMI run on?5303
|
|||
|
Node: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil6059
|
|||
|
Node: What is special about FreeIPMI?6867
|
|||
|
Node: Does my system support IPMI?13912
|
|||
|
Node: How do I compile FreeIPMI?15913
|
|||
|
Node: libgcrypt requirement16278
|
|||
|
Node: x86-64 Compilation16921
|
|||
|
Node: Installing FreeIPMI on FreeBSD17607
|
|||
|
Node: What are some IPMI terminology or acronyms I should be aware of?18250
|
|||
|
Node: What setup is needed for FreeIPMI to communicate over LAN?21269
|
|||
|
Node: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?21865
|
|||
|
Node: Do I need to install or configure a driver to perform IPMI inband?23779
|
|||
|
Node: SSIF Driver Configuration25492
|
|||
|
Node: How do you setup Powerman with ipmipower?27092
|
|||
|
Node: How do you setup Conman with ipmiconsole or libipmiconsole?30386
|
|||
|
Node: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?32394
|
|||
|
Node: Why are times reported by FreeIPMI tools wrong?33039
|
|||
|
Node: Why is the IPMI kernel driver faster than the KCS driver?34029
|
|||
|
Node: Why is the output from FreeIPMI different than another software?35033
|
|||
|
Node: Why are there so many IPMI compliance bugs?40439
|
|||
|
Node: How do I get around an IPMI compliance bug on my motherboard?41540
|
|||
|
Node: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?42357
|
|||
|
Node: How do I program with the FreeIPMI libraries?45484
|
|||
|
Node: Where can I get additional help or support?46831
|
|||
|
|
|||
|
End Tag Table
|