\input texinfo @c -*-texinfo-*-
@c This file uses the @command command introduced in Texinfo 4.0.
@c %**start of header
@setfilename freeipmi-faq.info
@settitle FreeIPMI - Frequently Asked Questions
@finalout
@c %**end of header

@include version-faq.texi

@copying
This manual is for FreeIPMI (version @value{VERSION}, @value{UPDATED}).
Copyright @copyright{} 2006-2008 FreeIPMI Core Team

@quotation
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, with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.  A copy of the license
is included in the section entitled ``GNU Free Documentation
License.''

(a) The FSF's Back-Cover Text is: ``You have freedom to copy and
modify this GNU Manual, like GNU software.  Copies published by the
Free Software Foundation raise funds for GNU development.''
@end quotation
@end copying

@dircategory Platform Management
@direntry
* FreeIPMI FAQ: (freeipmi-faq).  FreeIPMI - Frequently Asked Questions
@end direntry

@ifinfo
Copyright @copyright{} 2003-2008 FreeIPMI Core Team.


@end ifinfo

@titlepage
@title FreeIPMI Frequently Asked Questions
@subtitle Free Intelligent Platform Management System
@subtitle Version @value{VERSION} updated on @today{}
@author by Albert Chu @email{chu11@@llnl.gov}
@c @author by Anand Babu @email{ab@@gnu.org.in}

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2003-2008 FreeIPMI Core Team

@insertcopying
@end titlepage


@node Top, What is IPMI, (dir), (dir)
@ifinfo
Frequently Asked Questions on @strong{FreeIPMI}

This edition of the documentation was last updated on @today{} for
release @value{VERSION} of the FreeIPMI.
@end ifinfo

@menu
* What is IPMI::                
* What is FreeIPMI?::       
* How did it start?::           
* Who maintains FreeIPMI?::
* FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil::  
* What is special about FreeIPMI::  
* SSIF Driver Configuration::   
* x86-64 Compilation::          
* SUNBMC Driver Compilation::
* Installing FreeIPMI on FreeBSD::
@end menu

@c Output the table of contents at the beginning.
@contents

@node What is IPMI, What is FreeIPMI?, Top, Top
@section @acronym{IPMI} - Platform Management Standard

The @acronym{IPMI} specifications define standardized, abstracted interfaces to
the platform management subsystem.  @acronym{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.

@node What is FreeIPMI?, How did it start?, What is IPMI, Top
@section What is FreeIPMI?

FreeIPMI is a collection of Intelligent Platform Management
@acronym{IPMI} system software.  It provides in-band and out-of-band
software and a development library conforming to the Intelligent
Platform Management Interface (@acronym{IPMI} v1.5 and v2.0)
standards.

@node How did it start?, Who maintains FreeIPMI?, What is FreeIPMI?, Top
@section How did it 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, bmc-config, ipmi-sel, bmc-info, 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 portions of pef-config.  LLNL
has contributed IPMI 2.0 support, hostrange support, ipmiconsole,
ipmimonitoring, ipmidetect, ipmi-sensors-config, ipmi-chassis-config,
bmc-device, ipmi-oem, and portions of pef-config.

(Note: The original FreeIPMI developers from California Digital
Corp. are now at Zresearch Inc.)

@node Who maintains FreeIPMI?, FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, How did it start?, Top
@section Who maintains FreeIPMI?

Primary maintenance of FreeIPMI is currently managed by Lawrence
Livermore National Laboratory (LLNL).  Overall maintenance of FreeIPMI
has been handled by staff at CDC, Zresearch, and LLNL during the
lifetime of FreeIPMI.

@node FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, What is special about FreeIPMI, Who maintains FreeIPMI?, Top
@section What is the relationship between FreeIPMI, OpenIPMI, Ipmitool, and 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.

@node What is special about FreeIPMI, SSIF Driver Configuration, FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil, Top
@section What is special about FreeIPMI compared to other open source IPMI projects?

In our eyes, there are several reasons why FreeIPMI is particularly special.

1) Support for HPC

A number of HPC aspects have been added to the tools and/or are
supported by other HPC software due to the need for FreeIPMI to work
on LLNL's Linux clusters.

Ipmipower is capable of scaling to large nodes for cluster support.
It is supported by Powerman (@uref{http://sourceforge.net/projects/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 1152.  It is capable of power controlling all of the nodes in the
largest clusters in under a second.

Ipmiconsole is currently supported by Conman
(@uref{http://home.gna.org/conman/}) for scalable console management.

Scalable parallel execution of many FreeIPMI tools (i.e. ipmi-sensors,
ipmi-sel, bmc-info, ipmimonitoring, etc.) across a cluster is
supported through hostranged input and output.  For example:

@example
# > bmc-info -h "pwopr[0-5]" -u XXX -p XXX -C
----------------
pwopr[0-1,5]
----------------
Device ID:         22
Device Revision:   1
Firmware Revision: 1.12
                   [Device Available (normal operation)]
IPMI Version:      2.0
Additional Device Support:
                   [Sensor Device]
                   [SDR Repository Device]
                   [SEL Device]
                   [FRU Inventory Device]
                   [Chassis Device]
Manufacturer ID:   28C5h
Product ID:        4h
Aux Firmware Revision Info: 38420000h
Channel Information:
       Channel No: 1
      Medium Type: 802.3 LAN
    Protocol Type: IPMB-1.0
       Channel No: 5
      Medium Type: Asynch. Serial/Modem (RS-232)
    Protocol Type: IPMB-1.0
----------------
pwopr[2-4]
----------------
Device ID:         22
Device Revision:   1
Firmware Revision: 1.23
                   [Device Available (normal operation)]
IPMI Version:      2.0
Additional Device Support:
                   [Sensor Device]
                   [SDR Repository Device]
                   [SEL Device]
                   [FRU Inventory Device]
                   [Chassis Device]
Manufacturer ID:   28C5h
Product ID:        4h
Aux Firmware Revision Info: 38420000h
Channel Information:
       Channel No: 1
      Medium Type: 802.3 LAN
    Protocol Type: IPMB-1.0
       Channel No: 5
      Medium Type: Asynch. Serial/Modem (RS-232)
    Protocol Type: IPMB-1.0
@end example

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.

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.

Ipmimonitoring interprets sensor readings as well as just reporting
them.  It can be used for host monitoring IPMI on a cluster.  By
mapping sensor readings into NOMINAL, WARNING, or CRITICAL states, it
makes monitoring sensors easier across large numbers of nodes.
Skummee
(@uref{http://sourceforge.net/projects/skummee}) 
uses libipmimonitoring on LLNL clusters up to 1152 nodes in size.  
FreeIPMI monitoring plugins
for Ganglia 
(@uref{http://ganglia.info/}) 
and Nagios 
(@uref{http://www.nagios.org/}) 
have also been developed and made available for download
(@uref{http://www.gnu.org/software/freeipmi/download.html}).

The bmc-config, pef-config, ipmi-sensors-config, and
ipmi-chassis-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.

2) Easy setup

By implementing drivers in userspace libraries, there is no need to
build/setup/manage any kernel modules/drivers.

3) Portability

Likewise, by implementing everything in userspace libraries and tools,
portability to multiple operating systems and architectures should be
easier.

@node SSIF Driver Configuration, x86-64 Compilation, What is special about FreeIPMI, Top
@section 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:
@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
@end example

@node x86-64 Compilation, SUNBMC Driver Compilation, SSIF Driver Configuration, Top
@section x86-64 Compilation

Under some x86-64 platforms such as SUSE GNU/Linux, native 64
bit libraries reside under lib64 and 32 bit libs under lib. Autotools
by default installs libfreeipmi.so under /usr/lib, instead of
/usr/lib64 causing dynamic linking errors.  Pass libdir appropriately
to configure script to workaround this
problem. (i.e. --libdir=/usr/lib64)

Example:
@example
  # ./configure  --prefix=/usr --libdir=/usr/lib64
@end example

@node SUNBMC Driver Compilation, Installing FreeIPMI on FreeBSD, x86-64 Compilation, Top
@section SUNBMC Driver Compilation

In order to compile the sunbmc driver, the bmc_intf.h header file must
be in your include path.  This can be added by to the include search
path by adding the path to the CPPFLAGS environment variable.  i.e.

in bash

@example
export CPPFLAGS=''-I/my/bmc_intf_path/''
@end example

in csh/tcsh

@example
setenv CPPFLAGS ``-I/my/bmc_intf_path/''
@end example

If the file is not on your system, the bmc_intf.h file may simply be
downloaded from 
(@uref{http://opensolaris.org/}) 
and installed into any location.

@node Installing FreeIPMI on FreeBSD, , SUNBMC Driver Compilation, Top
@section 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
(@uref{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.

@bye
