
                    IPMI UTILITIES AND 
               LINUX PANIC HANDLER ENHANCEMENTS 
                       USER GUIDE 

------------------------
   CONTENTS
------------------------
1.0  Overview
   1.1  Features
2.0  Dependencies
   2.1  Configuration
   2.2  References
3.0  Utility Man Pages
   3.1  IPMIUTIL  (ipmiutil)
   3.2  ALARMS    (ipmiutil alarms)
   3.3  BMCHEALTH (ipmiutil health)
   3.4  FRUCONFIG (ipmiutil fru)
   3.5  GETEVENT  (ipmiutil getevt)
   3.6  HWRESET   (ipmiutil reset)
   3.7  ICMD      (ipmiutil cmd)
   3.8  PEFCONFIG (ipmiutil lan)
   3.9  SENSOR    (ipmiutil_sensor)
   3.10 SHOWSEL   (ipmiutil sel)
   3.11 TMCONFIG  (ipmiutil serial)
   3.12 WDT       (ipmiutil wdt)
   3.13 ISOLCONSOLE (ipmiutil sol)
   3.14 IDISCOVER (ipmiutil discover)
   3.15 EVENTS    (events)
4.0  Use Cases
   4.1  Usage of IPMI utilities for sensor thresholds
   4.2  Usage to configure a system for IPMI LAN
   4.3  Usage of IPMI utilities for Automated IPMI LAN configuration 
   4.4  Usage of IPMI utilities to Set Watchdog timer
   4.5  Usage of kernel panic handler code 
   4.6  Interpreting BMC LAN SNMP Traps from Platform Events 
   4.7  Interpreting newer PECI sensors for CPU Temperature
   4.8  How to configure a system for IPMI Serial-Over-LAN Console
   4.9  Using libipmiutil.a APIs for custom programs
5.0  IPMI Utilities on Windows
6.0  Problems
7.0  Related Information

------------------------
1.0  OVERVIEW
------------------------

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 Baseboard Management Controller (BMC) firmware allows 
OS-independent management. What many integrators need, however, is a set of 
utilities 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 (showsel), or configuring the BMC LAN & PEF features (pefconfig). 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 and ipmiutil compiles under 
Linux (Makefile) and Windows (buildwin.cmd). 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. 

This project includes both IPMI utilities and a kernel patch for 
panic handler enhancements.

The ipmiutil IPMI utilities below allow the user to access the firmware 
System Event Log and configure the Platform Event Filter table for the new 
'OS Critical Stop' records, as well as other common IPMI system management
functions.  

showsel        - show the firmware System Event Log records
sensor         - show all Sensor Data Records, sensor readings, and thresholds
hwreset        - cause the BMC to hard reset or power down the system    
pefconfig      - show and configure the BMC LAN port and Platform Event Filter 
                 table to allow BMC LAN alerts from firmware events and 
                 OS Critical Stop messages,
tmconfig       - show and configure the BMC Serial port for various modes, 
                 such as Terminal Mode.  
fruconfig      - show the FRU chassis, board, and product inventory data, 
                 and optionally write a FRU asset tag.
alarms	       - show and set front panel alarms (LEDs and relays)
wdt	           - show and set watchdog timer parameters
getevent       - receive any IPMI events and display them
bmchealth      - check and report the basic health of the IPMI BMC
icmd           - send specific IPMI commands to the BMC,
                 mainly for testing and debug purposes.
ipmiutil       - a meta-command to invoke all of the above as sub-commands

Other supporting files:
checksel       = cron script using showsel to check the SEL, write new events
                 to the syslog, and clear the SEL if nearly full.
ipmi_port.sh   = init.d script to reserve the RMCP port from portmap, 
		 this also restores saved sensor thresholds, if any.
ipmi_port      = daemon to bind the RMCP port and sleep to prevent 
                 Linux portmap from stealing the RMCP port
ipmi_if.sh     = script using dmidecode to determine the IPMI Interface Type
bmclanpet.mib  = SNMP MIB for BMC LAN Platform Event Traps
bmclanaol.mib  = SNMP MIB for BMC LAN Alert-Over-Lan traps
test/*         = scripts and utilities used in testing ipmiutil/panicsel
kern/*         = kernel patches for panic handling

The kernel panic handler patch (kern/bmcpanic.patch) adds additional 
features to the Linux Panic Handler so that more information can be 
saved and passed along if a Linux panic condition occurs.  
bmc_panic features:

 1. Write an OS Critical Stop event to firmware System Event Log (SEL)
    This is in bmcpanic.patch and in OpenIPMI.
 2. Send SNMP trap via BMC LAN Alerting mechanism
    Accomplished by configuring the BMC with 'pefconfig'.
 3. Turn on the Critical Alarm LED on the Telco Alarms Panel
    This is in bmcpanic.patch, but not in OpenIPMI due to 
    platform-specific issues with the alarms panel.

The kernel portion of this, except item 3, is now included in the OpenIPMI
project with the CONFIG_IPMI_PANIC_EVENT option, and the OpenIPMI
driver has merged into Linux kernel 2.4.21 and beyond.
The latest version of the OpenIPMI driver can be obtained from
http://openipmi.sourceforge.net.

------------------------
1.1  FEATURES
------------------------

These are the key strengths, user features and functions that are 
supported by ipmiutil.

Key Strengths = supports any IPMI server platforms, 
                top-down user-friendly IPMI functions, 
                detection, portability,
                incorporates fixes and new features quickly
Target Market = Administrators, Developers, and OEMs
OS Support    = Linux and Windows
                (supports Windows natively for remote or local interface)
License       = BSD
Drivers       = openipmi, imb, valinux ipmikcs, lan, lanplus,
                freeipmi, landesk, and driverless direct KCS & SSIF.
LEDs          = Show/set ATCA LEDs, set identify LED, Intel OEM LEDs
health        = show overall health and product information
discovery     = find all IPMI LAN servers on a given subnet
fru           = Display all FRU and SPD inventory data, also
                Set some FRU product fields (asset tag, serial number)
sensor        = Show SDRs and sensor readings, also set sensor thresholds
getevent      = Receive any IPMI events and decode them,
                Perform soft-shutdown from remote IPMI LAN hwreset, using imb.
reset         = IPMI local and remote reset/power-control,
                IPMI boot device selection,
                remote IPMI soft-shutdown (with getevent -a)
cmd           = Execute raw IPMI commands locally or remotely
lan           = Show/set IPMI LAN and PEF configuration parameters,
                adds more PEF rules, or can add a custom PEF rule
serial        = Show/set IPMI serial configuration parameters
sel           = Show decoded System Event Log records, clear SEL,
                see checksel script to automate SEL management
sol console   = Start/stop an SOL console session
watchdog      = Show, set, and reset the IPMI watchdog timer and its actions,
                see also wdt.sh script to automate this via cron
events        = Standalone app to decode IPMI or PET event data,
                see also SNMP PET MIB (bmclanpet.mib)
ipmi_port.sh  = Automatically prevent Linux port mapper from stealing 
                the RMCP port used by IPMI.

------------------------
2.0  DEPENDENCIES
------------------------

The IPMI Utilities will run on both Linux and Windows, and should be
portable to other OSs, if an IPMI driver for that OS can be obtained.

The IPMI Utilities and Panic Handler Enhancements currently work with 
platforms that support the IPMI standard.  If the platform does not 
support IPMI, these changes are inert.  The Service Availability Forum 
has developed a Hardware Platform Interface (HPI) specification that 
can be used to group IPMI and other system management interfaces 
together.  A set of comparable HPI utilities is included in the 
ipmiutil project source as hpiutil/*.

The Panic Handler kernel enhancements (via kern/bmcpanic.patch) are now 
included in the OpenIPMI driver via the CONFIG_IPMI_PANIC_EVENT 
and CONFIG_IPMI_PANIC_STRING parameters in the kernel config file 
(/usr/src/linux/.config), assuming kernel 2.4.21 or greater. 

If run locally (as superuser), the ipmiutil utilities above use an 
IPMI Driver, which can be either:  
 . the MontaVista OpenIPMI driver (/dev/ipmi0),
 . the Intel IMB IPMI driver (/dev/imb, via 'ipmidrvr' or 'ipmi_imb'),
 . the valinux IPMI Driver (/dev/ipmikcs), 
 . the LANDesk ldipmi daemon,
 . the GNU FreeIPMI library (libfreeipmi.so),
 . or direct user-space I/Os to the IPMI KCS or SSIF/SMBus interfaces,
   if no other driver is detected.

For Windows, only the imbdrv.sys (Intel IMB) driver is supported.
For Linux, each of the IPMI management utilities will detect which 
IPMI driver is present, and if none are found, it will attempt to use raw 
KCS or SSIF I/Os to communicate with the IPMI BMC. 

If using the IPMI LAN interface, neither the local or remote system requires
any IPMI driver, but the remote target system must have had IPMI LAN enabled,
(e.g. via pefconfig) which is done locally on the target system.
Note that the IPMI LAN session password is sent with either MD5 or MD2 
encryption by default.

See http://openipmi.sourceforge.net for the OpenIPMI driver.
See http://downloadfinder.intel.com/scripts-df/Product_Search.asp?Prod_nm=ipmi*driver*source  for Intel IMB driver
See http://cvs.sf.net/cgi-bin/viewcvs.cgi/ipmitools/ipmitools/kernel/kcs/patches/2.4.x/ for the valinux driver.
See http://www.landesk.com/ or the CD supplied with your server for LANDesk.
See http://www.gnu.org/software/freeipmi/ for GNU FreeIPMI.

List of companies that have adopted IPMI (over 195):
  http://www.intel.com/design/servers/ipmi/adopterlist.htm

Example IPMI Server Platforms tested with ipmiutil:
  Intel RackMount Servers (both 32-bit and 64-bit)
  Intel ATCA 
  SuperMicro (with LMC)
  Dell PowerEdge 2800
  Sun   (product id 0x4701)
  NSC (National SemiConductor)
  NEC
  Tyan
  Tatung

------------------------
2.1  CONFIGURATION
------------------------

To find the base address of the IPMI KCS interface, or to find the IPMI
SMBus slave address, you can use the 'dmidecode' utility provided with
most Linux distributions.  See also http://www.nongnu.org/dmidecode/.
The ipmiutil rpm will run the ipmi_if.sh script to determine the IPMI
Interface Type when the rpm is installed.

For some IPMI systems, a minimum firmware version may be needed to
support the BMC LAN/PEF feature.  On an Intel TSRLT2 system, for instance, 
these are the minimum levels:
  BMC Firmware ver 54 or greater
  SSU ver 2.RC.1 or greater (if DOS SSU is used instead of pefconfig)
Systems with IPMI versions prior to 1.5 do not support BMC LAN or PEF features.

By default, the ipmiutil IPMI utilities rpm does not set the panic timeout.
If a different kernel panic timeout is desired, add 'append="panic=10"' in 
lilo.conf, or do "echo 10 >/proc/sys/kernel/panic" in one of the /etc/init.d 
scripts to set it to 10 seconds, for instance.  

The pefconfig utility can be used instead of DOS utilities like SSU to 
configure the BMC LAN Alerting while the OS is running.  The ipmiutil 
rpm runs pefconfig during the rpm installation, if the BMC LAN has not 
already been configured.
 
The tmconfig utility is intended to configure the EMP serial port on the 
server for shared access between BMC/IPMI functions and BIOS Console 
Redirection.  Some platforms only support only Basic Mode for BMC/IPMI 
functions.  Basic Mode requires a remote client application to utilize it 
(Windows ISC Console/DPC applet, or a special modified Linux telnet).  
There are some platforms which implement Terminal Mode via IPMI v1.5 
Appendix E to make remote management with character commands available
on the serial port without a special remote client application.

Notes about BMC Users:
Most IPMI 1.5 systems support at least 3 users, numbered 1,2,3, where 
user 1 is the default and has a null username.  Users 2 and 3 are 
alternate users whose usernames can be set.  For ipmiutil, these are
currently implemented by default as follows:
user 1: used by default for BMC LAN and Serial (pefconfig & tmconfig)
user 2: set for BMC LAN if pefconfig -u is specified
user 3: set for BMC Serial/EMP if tmconfig -u is specified
Also note that the -q option can be used to set different users by number.

Note that the checksel script will be copied to /etc/cron.daily when 
the Linux rpm is installed, so that showsel will automatically save 
SEL records to syslog and clear the SEL if it gets nearly full.  If 
you do not want this to happen automatically, remove the checksel 
script from the /etc/cron.daily directory.

In order for the showsel -w function to work cleanly on a Windows system,
the showselmsg.dll should be copied to %SystemRoot%\system32, and the 
showsel.reg should be run to set up the corresponding EventLog service 
registry values.

------------------------
2.2  REFERENCES
------------------------

The IPMI 1.5 spec, Table 36-3 defines the sensor types for SEL records,
as used by showsel.
The IPMI 1.5 spec, Table 15-2 defines the Platform Event Filter table
entries, as used by pefconfig.
The IPMI 1.5 spec, Table 19-4 defines the LAN Configuration Parameters,
as used by pefconfig.  

The enterprises.3183 SNMP traps come from the BMC firmware, and are defined in 
bmclan*.mib files in the ipmiutil project.  Details about the format of these
Platform Event Traps are available in section 12.2 through 12.5 of the ISM 
(Intel Server Management) 5.x Technical Product Specification at 
http://www.intel.com/support/motherboards/server/isc/sb/cs-008024.htm

The enterprises.343 SNMP traps come from ISM and are defined in mapbase*.mib 
files on the platform CD.
The enterprises.412 SNMP traps come from ISM/DMTF, defined in dmtf*.mib files 
on the platform CD.

------------------------
3.0  UTILITY MAN PAGES
------------------------

3.1     IPMIUTIL  (ipmiutil)

IPMIUTIL(8)							  IPMIUTIL(8)

NAME
       ipmiutil - a meta-command to invoke various IPMI functions.

SYNOPSIS
       ipmiutil <command> [-x -NUPETVF] [other command options]

DESCRIPTION
       This utility performs various IPMI functions.   Each of the individual
       commands in the ipmiutil project can be invoked via this meta-command.
       The <command> is one of the following:
	  alarms  show/set the front panel alarm LEDs and relays
	  health  check and show the basic health of the IPMI BMC
	  fru	  show FRU inventory data, write asset tag
	  getevt  receive any IPMI events and display them
	  reset	  cause the BMC to reset or power down the system
	  cmd	  send a specified raw IPMI command to the BMC
	  lan	  show/set IPMI LAN parameters and PEF table
	  serial  show/set IPMI Serial & Terminal Mode parameters
	  sensor  show Sensor Data Records, readings, thresholds
	  sel	  show/clear firmware System Event Log records
	  sol	  start/stop an SOL console session
	  wdt	  show/set/reset the watchdog timer
       For help on each command (e.g. ’sel’), enter:
	  ipmiutil sel -?
       For man pages on each command, refer to SEE ALSO below.

       This  utility  can use either the /dev/ipmi0 driver from OpenIPMI, the
       /dev/imb driver from Intel,  the	 /dev/ipmikcs  driver  from  valinux,
       direct user-space IOs, or the IPMI LAN interface if -N.


OPTIONS
       Command options are described in the man page for each command.	Below
       are a few of the common options.

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -U rmt_user
	      Remote username for the nodename given.  The default is a	 null
	      username.

       -P/-R rmt_pswd
	      Remote  password for the nodename given.	The default is a null
	      password.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.

EXAMPLES
       ipmiutil sel
       Shows the IPMI System Event Log entries.

       ipmiutil wdt
       Shows the watchdog timer values.

SEE ALSO
       alarms(8)  bmchealth(8)	fruconfig(8)  getevent(8)  hwreset(8) pefcon-
       fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) icmd(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest  version  of	 icmd
       and any bug fix list.


3.2     ALARMS    (ipmiutil alarms) 

ALARMS(8)							    ALARMS(8)



NAME
       alarms - display and set alarm indicators

SYNOPSIS
       alarms [-abcdimnoprx -N node -U user -P/-R pswd -ETVFY]


DESCRIPTION
       alarms  is  a program that uses IPMI commands to display and set alarm
       indicators, which are usually LEDs on the system chassis front  panel.
       This  utility  can use either the /dev/ipmi0 driver from OpenIPMI, the
       /dev/imb driver from Intel,  the	 /dev/ipmikcs  driver  from  valinux,
       direct  user-space  IOs, or the IPMI LAN interface if -N.  Note that a
       LAN user must have Administrative privileges  to	 read  or  write  the
       alarm LEDs.

       Note that this utility may not be the only logic setting alarm states.
       The BMC firmware, system management software, or cluster fault manager
       may also want to set alarm states.  Intel provides a Telco Alarms Man-
       ager API which presents a consolidated interface for all alarm manage-
       ment applications.


OPTIONS
       Command line options are described below.

       -r     Read-only.   Show the alarms status, but do not set any states.
	      This is also the default mode if no parameters are specified.

       -iN    Sets the Chassis Identify feature, which can be an LED or	 some
	      other  alarm.   If N=0, turn off the Chassis ID, otherwise turn
	      the ID on for N seconds.	N=255 will turn	 on  the  ID  indefi-
	      nitely, if it is IPMI 2.0.

       -aN    Sets  Disk  A Fault LED.	If N=0, turn it off.  If N=1, turn it
	      on.  Used only for TIGPT1U platform.

       -bN    Sets Disk B Fault LED.  If N=0, turn it off.  If N=1,  turn  it
	      on.  Used only for TIGPT1U platform.

       -dXN   Sets  Disk  X Fault LED, where X=0-6.  If N=0, turn it off.  If
	      N=1, turn it on.	Used only for NSC2U platform.

       -cN    Sets the Critical Alarm.	If N=0, turn it off.  If N=1, turn it
	      on.

       -mN    Sets  the	 Major	Alarm.	If N=0, turn it off.  If N=1, turn it
	      on.

       -nN    Sets the Minor Alarm.  If N=0, turn it off.  If  N=1,  turn  it
	      on.

       -pN    Sets  the	 Power	Alarm.	If N=0, turn it off.  If N=1, turn it
	      on.  Note that the Power LED is also wired to the System	Fault
	      LED  in  the  back  of the system, so this state may be off for
	      Power, but the LED could be  lit	for  a	System	Fault  reason
	      instead.	 Refer	to the system Technical Product Specification
	      for System Faults.

       -o     Sets all alarms off, including the Chassis ID.

       -x     Causes extra debug messages to be displayed.


       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  this	 IPMI  LAN Authentication Type: 0=None, 1=MD2, 2=MD5,
	      4=Straight Password, 5=OEM.

       -V     Use this IPMI LAN privilege  level.  1=Callback  level,  2=User
	      level, 3=Operator level, 4=Administrator level (default), 5=OEM
	      level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       bmchealth(8)  fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8) ipmiutil(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of  alarms
       and any bug fix list.


3.3     BMCHEALTH (ipmiutil health) 

BMCHEALTH(8)							 BMCHEALTH(8)



NAME
       bmchealth - show BMC health

SYNOPSIS
       bmchealth [-hx -N node -U user -P/-R pswd -ETVF]


DESCRIPTION
       bmchealth  is  a program that uses IPMI commands to show the health of
       the BMC.	 This utility can  use	either	the  /dev/ipmi0	 driver	 from
       OpenIPMI, the /dev/imb driver from Intel, the /dev/ipmikcs driver from
       valinux, direct user-space IOs, or the IPMI LAN interface if -N.


OPTIONS
       Command line options are described below.


       -h     Check the health of the HotSwap Controller also.

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8)  fruconfig(8)	getevent(8)  hwreset(8)	 icmd(8) pefconfig(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of  alarms
       and any bug fix list.


3.4     FRUCONFIG (ipmiutil fru)

FRUCONFIG(8)							 FRUCONFIG(8)



NAME
       fruconfig - show Field Replacable Unit configuration data

SYNOPSIS
       fruconfig [-abmsx -N node -U user -P/-R pswd -ETVF]


DESCRIPTION
       fruconfig  is a program that uses IPMI commands to show FRU configura-
       tion data and optionally write an asset tag string into the FRU	data.
       Setting the asset tag is a function that can be used to uniquely iden-
       tify the unit, even if the storage devices  are	removed	 or  changed.
       This  utility  can use either the /dev/ipmi0 driver from OpenIPMI, the
       /dev/imb driver from Intel,  the	 /dev/ipmikcs  driver  from  valinux,
       direct user-space IOs, or the IPMI LAN interface if -N.


OPTIONS
       Command line options are described below.

       -a asset_string
	      This  option specifies an asset tag string to be written to the
	      baseboard FRU Product area.  The asset tag length is limited by
	      the  existing FRU Product data, but is usually allowed up to 16
	      characters.

       -b     Only show the Baseboard FRU data.	 The default behavior  is  to
	      also  scan  for any SDR FRU data or DIMM SPD data referenced by
	      the SDRs.

       -m 002000
	      Show FRU for a specific MC (e.g. bus 00, sa 20, lun 00).	 This
	      would be used for PICMG or ATCA blade systems.

       -s serial_num
	      This  option  specifies a serial number string to be written to
	      the baseboard FRU Product area.  The serial number can  be  any
	      string up to 16 characters.

       -x     Causes eXtra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name is specified, IPMI LAN interface is used.   Otherwise  the
	      local system management interface is used.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -E     Use  the	remote	password from Environment variable IPMI_PASS-
	      WORD.

       -F drv_t
	      Force the driver type to one of the followng:  imb,  va,	open,
	      gnu,  landesk,  lan,  lan2,  lan2i,  kcs, smb.  Note that lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use   the	  specified   LanPlus	cipher	suite  (0  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128,  4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use a specified IPMI LAN Authentication  Type:  0=None,  1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use  a  specified	 IPMI  LAN privilege level. 1=Callback level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes,  do	prompt	the  user  for	the IPMI LAN remote password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8) bmchealth(8)  getevent(8)  hwreset(8)	icmd(8)	 pefconfig(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of frucon-
       fig and any bug fix list.


3.5     GETEVENT  (ipmiutil getevt)

GETEVENT(8)							  GETEVENT(8)



NAME
       getevent - wait for IPMI events

SYNOPSIS
       getevent [-abosx -t secs -N node -U user -P/-R pswd -ETVF]


DESCRIPTION
       getevent	 is a program that uses IPMI commands to wait for IPMI events
       sent from the BMC firmware.  These events are also sent	to  the	 IPMI
       System  Event  Log  (SEL).  This utility can use either the /dev/ipmi0
       driver from OpenIPMI, the /dev/imb driver from Intel, the /dev/ipmikcs
       driver  from valinux, direct user-space IOs, or the IPMI LAN interface
       if -N.

       Some server management functions want to	 trigger  custom  actions  or
       alerts  when  IPMI  hardware-related  events occur, but do not want to
       track all events, just newly occurring events.  This utility  waits  a
       specified  timeout period for any events, and returns interpreted out-
       put for each event.  It is designed as a scriptable command-line util-
       ity,  but  if  the timeout is infinite (-t 0), then this code could be
       used for a sample service as well.

       There are several methods to do this which are implemented here.

       The SEL method:
       This method polls the SEL once a second, keeps track of the  last  SEL
       event read, and only new events are processed.  This ensures that in a
       series of rapid events, all events are  received	 in  order,  however,
       some transition-to-OK events may not be configured to write to the SEL
       on certain platforms.  This method is used if getevent  -s  is  speci-
       fied.   This is the only method supported over IPMI LAN, i.e. with -N.

       The ReadEventMessageBuffer method:
       This uses an IPMI Message Buffer in the BMC firmware to read each  new
       event.  This receives any event, but if two events occur nearly simul-
       taneously, only the most recent of the two will be returned with	 this
       method.	 An  example  of  simultaneous	events	might  be,  if	a fan
       stops/fails, both the non-critical and critical fan  threshold  events
       would occur at that time.  This is the default method for getevent.

       The OpenIPMI custom method:
       Different  IPMI	drivers may have varying behavior.  For instance, the
       OpenIPMI driver uses the IPMI GetMessage commands internally and	 does
       not  allow client programs to use those commands.  It has its own cus-
       tom mechanism, see getevent_mv().  This method is used if the OpenIPMI
       driver is detected, and no other method is specified.

       The IMB Async Event method:
       This only gets certain IMB Async events from the BMC to an SMS OS ser-
       vice, like a remote OS shutdown, and get_software_id.  This method  is
       disabled	 by  default  and only turned on if the getevent -a option is
       specified.


OPTIONS
       Command line options are described below.


       -a     Use the Async method with the IMB driver, which receives SMS OS
	      requests	from  the  BMC	using the Intel IMB driver interface.
	      This services remote SMS bridge agent requests, like remote  OS
	      shutdown and get software_id.

       -b     Run  in  Background  as a daemon.	 If this option is specified,
	      normal output will be redirected to  /var/log/ipmiutil_evt.log.
	      The default is to run in foreground.

       -o     Only  run	 one pass to wait for the first event.	Default is to
	      loop for multiple events for the timeout period.

       -s     Use the SEL method to get events.	 This polls the	 SEL  once  a
	      second  for  new	events.	 The last SEL record read is saved in
	      /usr/share/ipmiutil/evt.idx.  Otherwise, the default is to  use
	      the ReadEventMessageBuffer method to get new events.

       -t N   Set  the	timeout period to N seconds.  Default is 120 seconds.
	      A timeout of 0 means an infinite period.

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8)  bmchealth(8)	fruconfig(8)  hwreset(8) icmd(8) pefconfig(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of  alarms
       and any bug fix list.


3.6     HWRESET   (ipmiutil reset)

HWRESET(8)							   HWRESET(8)



NAME
       hwreset - perform a hardware reset on the system

SYNOPSIS
       hwreset [-dcnorsx -N node -U user -P/-R pswd -ETVF]


DESCRIPTION
       hwreset	is  a  program	that uses IPMI commands to perform a hardware
       reset of the chassis, or boot to a specific device.  This utility  can
       use  either  the	 /dev/ipmi0 driver from OpenIPMI, the /dev/imb driver
       from Intel, the /dev/ipmikcs driver from	 valinux,  direct  user-space
       IOs, or the IPMI LAN interface if -N.


OPTIONS
       Command line options are described below.

       -c     Power Cycle the system chassis

       -d     Power Down the system chassis

       -u     Power Up the system chassis

       -n     Send NMI to the system

       -p     Reboots to PXE network boot, for this reboot only.

       -o     Do a soft shutdown of the OS, and then reset.  Note that remote
	      soft shutdown (-o	 -N)  requires	getevent  -a  on  the  target
	      server.

       -D     Do  a  soft shutdown of the OS, and then power down.  Note that
	      remote soft shutdown (-o -N) requires getevent -a on the target
	      server.

       -s     Do  a  hard reset and reboot to the Service Partition, for this
	      reboot only.  Reboots to the default if no service partition is
	      configured.

       -b     Do  a  hard  reset  and reboot to the BIOS Setup menu, for this
	      reboot only.

       -e     Reboots to EFI, if EFI boot is enabled, for this reboot only.

       -f     Reboots to Floppy/Removable, for this reboot only.

       -h     Reboots to a Hard Disk, for this reboot only.

       -m     Reboots to CDROM Media, for this reboot only.

       -p     Reboots to PXE

       -r     Hard Reset the system chassis (default action)

       -s     Reset and boot to the Service Partition

       -w     Wait for BMC ready after a reset before exiting the utility.

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8)  bmchealth(8)	fruconfig(8) getevent(8) icmd(8) pefconfig(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of hwreset
       and any bug fix list.


3.7     ICMD      (ipmiutil cmd)

ICMD(8)								      ICMD(8)



NAME
       icmd - a tool to send specific IPMI commands via the command line.


SYNOPSIS
       icmd [-sx -NUPRETVF] bus rsSa netFn/lun cmd [data bytes]


DESCRIPTION
       This icmd tool sends specific IPMI commands to the firmware.  The com-
       mands are composed as hex values on the command line.  This  tool  was
       written	to  allow  in-band  use to match the DOS CMDTOOL.EXE or IPMI-
       TOOL.EXE program which is distributed with many Intel  servers.	 Cer-
       tain  scripts  or  pre-written commands may have been supplied for the
       DOS tool that can now be used while the system  is  running  Linux  or
       Windows.

       This  utility  can use either the /dev/ipmi0 driver from OpenIPMI, the
       /dev/imb driver from Intel,  the	 /dev/ipmikcs  driver  from  valinux,
       direct user-space IOs, or the IPMI LAN interface if -N.

       This  tool  should  only be used if you are familiar with the IPMI 1.5
       specification, or you have specific pre-written commands to send.



OPTIONS
       Command line options are described below.

       -s     Skips the GetDeviceID command

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -U rmt_user
	      Remote username for the nodename given.  The default is a	 null
	      username.

       -P/-R rmt_pswd
	      Remote  password for the nodename given.	The default is a null
	      password.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.


PARAMETERS
       The  following  parameters are used by icmd.  Each is represented as a
       two-digit hex byte.  The parameters have no default values.


       bus    This byte contains the bus number for this command, usually 00.


       rsSa   This is the resource slave address, usually 0x20 for the BMC.


       netFn/lun
	      This  byte  combines the net Function and Lun.  The 2 low-order
	      bits are the Lun and the 6 high-order bits are  the  net	Func-
	      tion.   This  representation  is	consistent  with the DOS CMD-
	      TOOL/IPMITOOL.


       cmd    This byte contains the IPMI command.


       [data bytes]
	      This is a sequence of zero to  16	 bytes	that  represent	 data
	      bytes specific to this command.


EXAMPLES
       icmd 00 20 18 01
       Sends the GetDevice ID command to the BMC.

       icmd 00 20 28 43 00 00 ff ff 00 ff
       Sends  a Get SEL entry command for the last entry in the firmware log.


SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  pefcon-
       fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See  http://ipmiutil.sourceforge.net/  for  the latest version of icmd
       and any bug fix list.


3.8     PEFCONFIG (ipmiutil lan)

PEFCONFIG(8)							 PEFCONFIG(8)



NAME
       pefconfig  -  show  and	configure BMC LAN parameters and set up a PEF
       entry to send BMC LAN Alerts for OS Critical Stop log events

SYNOPSIS
       pefconfig [-degjklq#rstx -n pefnum -i eth1 -a alertnum ]
		[-I ipadr -M macadr -S subnet -B baud_sol ]
		[-G gwyip -H gwymac -L lan_channel_num ]
		[-A alertip -X alertmac -C community ]
		[-u user_to_set -p password_to_set ]
		[-N nodename  -U rmt_username -Fimb ]
		[-P/-R rmt_node_pswd -E -T1 -V2 ]


DESCRIPTION
       pefconfig is a program that uses an IPMI driver to send IPMI  commands
       which  configure	 a  new	 Platform  Event Filter table entry for an OS
       Critical Stop (0x20) SEL firmware  log  event,  so  that	 it  will  be
       enabled to send a BMC LAN Alert.	 This utility also sets up all of the
       BMC LAN Parameters to enable sending  the  BMC  LAN  Alerts.   The  IP
       address	and MAC address of the local system, the default gateway, and
       the alert destination can be defaulted to those specified in Linux, or
       can be overridden by user parameters.  This utility can use either the
       /dev/ipmi0 driver from OpenIPMI, the /dev/imb driver from  Intel,  the
       /dev/ipmikcs  driver  from valinux, direct user-space IOs, or the IPMI
       LAN interface if -N.  This utility is designed to be used  on  systems
       with IPMI 1.5 or greater in order to support PEF records.


OPTIONS
       Command	line options are described below.  Note that without options,
       pefconfig behaves as if option -r were used.  To configure IPMI LAN  &
       PEF, use option -e.


       -a alertnum
	      Specify  which  PEF  alert number is to be used.	Default is 1.
	      This would only be used if extra	PEF  alert  destinations  had
	      been set.

       -d     This  option disables the BMC LAN and PEF parameters, so as not
	      to allow BMC LAN connections or alerts.

       -e     This option enables the BMC LAN  configuration  and  PEF	event
	      alerts.  The utility will attempt to obtain the default BMC LAN
	      parameters from the OS automatically, or they can be  specified
	      with command options below.

       -i ethif
	      By  default,  the	 eth0  interface  is  used to find IP and MAC
	      addresses.  Sometimes, however, the first ethernet port on  the
	      baseboard	 may be represented by Linux as eth1 or eth2 instead.
	      If so, use this option to indicate the correct ethernet  inter-
	      face  to	use.   By  default,  pefconfig will scan up to 32 eth
	      interfaces for the onboard one that BMC LAN uses.

       -g     This specifies the secondary gateway IP address to use for  the
	      BMC  LAN.	  The  default is to omit this parameter and only use
	      the default gateway.  See also -G.

       -j     This sets a custom PEF rule as the last PEF entry.   The	input
	      is  a  series  of	 10  hex  bytes,  forming the PEF entry.  For
	      example, this sample PEF	entry  would  perform  a  power	 down
	      action if the Baseboard Temp reached its threshold.
		"ipmiutil lan -e -j020110ffff013001950a"

       -k     This  causes  pefconfig to also insert two rules to send alerts
	      for transition-to-OK events, including Power Redundancy OK  and
	      Temperature OK.

       -l     This  option  enables  the  BMC  LAN configuration, but not PEF
	      events.  The utility will attempt to obtain the default BMC LAN
	      parameters  from the OS automatically, or they can be specified
	      with command options below.

       -n num By default, the new PEF entry for OS Critical Stop is  inserted
	      at  offset 12 into the table.  This can be changed to insert it
	      at an offset > 12 if another entry already exists at offset 12.

       -#     Same as -q below.

       -q     Specify  an alternate user number for the LAN username from the
	      -u option.  This is normally user number 2, 3, or 4, where 2 is
	      the default.  The maximum number of users is 15.

       -r     This  option  just  reads the configuration without writing any
	      BMC LAN parameters or writing any new entries to the PEF table.

       -s     This option will also display some of the Serial parameters.

       -t     Test  if the BMC LAN has already been configured.	 Returns 0 if
	      so.

       -x     Causes extra debug messages to be displayed.

       -B baud_sol
	      This specifies the Baud rate for SerialOverLan.	The  possible
	      values are: 9600, 19.2k, 38.4k, 57.6k, and 115.2k.  The default
	      is 19.2k.

       -D     This causes the local IP	address	 to  be	 determined  by	 DHCP
	      instead of a static IP address.

       -I ip_addr
	      This  specifies  the local IP address to use for the BMC LAN on
	      eth0.  The default is to automatically  obtain  this  from  the
	      Linux ifconfig.

       -M mac_addr
	      This  specifies the local MAC address to use for the BMC LAN on
	      eth0.   The  format  can	 be   either   11:22:33:44:55:66   or
	      11-22-33-44-55-66.  The default is to automatically obtain this
	      from the Linux ifconfig.

       -S subnet
	      This specifies the local subnet mask to use for the BMC LAN  on
	      eth0.   The  default  is	to automatically obtain this from the
	      Linux ifconfig.

       -G gwy_ip_addr
	      This specifies the default gateway IP address to	use  for  the
	      BMC  LAN.	 The default is to automatically obtain this from the
	      Linux route table.

       -H gwy_mac_addr
	      This specifies the default gateway’s MAC address to use for the
	      BMC  LAN.	  The  format  can  be	either	11:22:33:44:55:66  or
	      11-22-33-44-55-66.  The default is to automatically obtain this
	      from the Linux arp cache.

       -A alert_ip_addr
	      This specifies the SNMP Alert Destination IP address to use for
	      the BMC LAN.  By default, this utility will attempt  to  obtain
	      this  from  the  /etc/snmp/snmpd.conf  file,  via	 the trapsink
	      parameter.  The alert destination will see the  BMC  LAN	traps
	      with  the	 enterprises.3183.1.1 OID.  If no alert IP address is
	      specified in either snmpd.conf or this parameter, or if that IP
	      address does not respond, the other SNMP parameters for BMC LAN
	      will be skipped.

       -X alert_mac_addr
	      This specifies the SNMP Alert Destinations’s MAC address to use
	      for the BMC LAN.	The format can be either 11:22:33:44:55:66 or
	      11-22-33-44-55-66.  The default is to attempt  to	 obtain	 this
	      from  the	 Linux arp cache.  This parameter is ignored if there
	      is no Alert IP address.

       -C snmp_community
	      This specifies the SNMP Community	 name  to  use	for  BMC  LAN
	      Alerts.  The default community string is "public".  This param-
	      eter is ignored if there is no Alert IP address.

       -u username_to_set
	      This specifies the firmware username to set for BMC LAN access.
	      If  a username is specified, user 3 will be set.	If not speci-
	      fied, the default user 1 will be used.

       -p password_to_set
	      This specifies the firmware password to set for BMC LAN access.
	      If  not specified, the user and password configuration will not
	      be changed.

       -L lan_ch_num
	      This specifies the IPMI LAN channel number used  for  BMC	 LAN.
	      This varies by platform, and can be found in the platform tech-
	      nical specifications.  By default,  pefconfig  scans  all	 IPMI
	      channels to find a LAN channel for BMC LAN.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name is specified, IPMI LAN interface is used.   Otherwise  the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote  password for the nodename given.	The default is a null
	      password.

       -U rmt_user
	      Remote username for the nodename given.  The default is a	 null
	      username.

       -E     Use  the	remote	password from Environment variable IPMI_PASS-
	      WORD.

       -F drv_t
	      Force the driver type to one of the followng:  imb,  va,	open,
	      gnu,  landesk,  lan,  lan2,  lan2i,  kcs, smb.  Note that lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use   the	  specified   LanPlus	cipher	suite  (0  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128,  4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use a specified IPMI LAN Authentication  Type:  0=None,  1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use  a  specified	 IPMI  LAN privilege level. 1=Callback level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes,  do	prompt	the  user  for	the IPMI LAN remote password.
	      Alternatives for the password are -E or -P.


EXAMPLES
       To read existing settings:
       pefconfig -r

       To enable IPMI LAN with default settings detected:
       pefconfig -e

       To set up IPMI LAN for a unique IP address and set PEF SNMP Alerts:
       pefconfig -e -I 192.168.1.1 -A 192.168.1.10

       To set the IPMI LAN password for the default user:
       pefconfig -e -p mypassword

       To disable access to the IPMI LAN channel:
       pefconfig -d


SAMPLE PEF TABLE
       These 11 PEF table entries are configured from the factory for various
       Intel  Sahalee  BMC systems, and will be applied as the defaults for a
       system with an empty PEF table:
       PEF(01): 01 Temperature Sensor event - enabled for alert
       01 c0 01 01 00 ff ff 01 ff 01 95 0a 00 00 00 00 00 00 00 00 00
       PEF(02): 02 Voltage Sensor event - enabled for alert
       02 c0 01 01 00 ff ff 02 ff 01 95 0a 00 00 00 00 00 00 00 00 00
       PEF(03): 04 Fan Failure event - enabled for alert
       03 c0 01 01 00 ff ff 04 ff 01 95 0a 00 00 00 00 00 00 00 00 00
       PEF(04): 05 Chassis Intrusion event - enabled for alert
       04 c0 01 01 00 ff ff 05 05 6f 01 00 00 00 00 00 00 00 00 00 00
       PEF(05): 08 Power Supply Fault event - enabled for alert
       05 c0 01 01 00 ff ff 08 ff 6f 06 00 00 00 00 00 00 00 00 00 00
       PEF(06): 0c Memory ECC Error event - enabled for alert
       06 c0 01 01 00 ff ff 0c 08 6f 02 00 00 00 00 00 00 00 00 00 00
       PEF(07): 0f FRB Failure event - enabled for alert
       07 c0 01 01 00 ff ff 0f 06 6f 01 00 00 00 00 00 00 00 00 00 00
       PEF(08): 07 BIOS POST Error event - enabled for alert
       08 c0 01 01 00 ff ff 07 ff 6f 1c 00 00 00 00 00 00 00 00 00 00
       PEF(09): 13 Fatal NMI event - enabled for alert
       09 c0 01 01 00 ff ff 13 ff 6f 3e 03 00 00 00 00 00 00 00 00 00
       PEF(10): 23 Watchdog Timer Reset event - enabled for alert
       0a c0 01 01 00 ff ff 23 03 6f 0e 00 00 00 00 00 00 00 00 00 00
       PEF(11): 12 System Restart event - enabled for alert
       0b c0 01 01 00 ff ff 12 ff 6f 02 00 00 00 00 00 00 00 00 00 00


SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  icmd(8)
       sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of pefcon-
       fig and any bug fix list.


3.9     SENSOR    (ipmiutil sensor)

SENSOR(8)							    SENSOR(8)



NAME
       sensor - show Sensor Data Records

SYNOPSIS
       sensor [-acmprstuvwx -i id -n snum -h tval -l tval -NUPRETVF]


DESCRIPTION
       sensor  is a program that uses IPMI commands to show and decode Sensor
       Data Records and current sensor readings for all sensors in  the	 sys-
       tem.   The  readings  are  only	retrieved for Full SDR records.	 This
       utility can use	either	the  /dev/ipmi0	 driver	 from  OpenIPMI,  the
       /dev/imb	 driver	 from  Intel,  the  /dev/ipmikcs driver from valinux,
       direct user-space IOs, or the IPMI LAN interface if -N.

       Note that this utility currently only  displays	Sensor	Data  Records
       reported by from the BMC chipset.  Some systems may have other devices
       with sensors that are also available via IPMI.


OPTIONS
       Command line options are described below.

       -a snum
	      ReArms the sensor number for events

       -c     Shows SDRs for the Child MCs on a PICMG or ATCA system.

       -h tval
	      Highest threshold value to set for the specified sensor.	 This
	      tval  can	 be in decimal, or of the form 0x1a, to match the raw
	      reading value shown by sensor following the " = ".   The	value
	      passed  is  set  as  the highest threshold value, with the less
	      critical ones set by the utility as incrementally lower.	 This
	      simplifies  the interface and ensures that the threshold values
	      do not get out of order.	This requires specifying  the  sensor
	      number via -n.

       -i id  Show or set only the sensor Index corresponding to id, where id
	      is the hex ID of the SDR as shown in the	sensor	output	under
	      "_ID_".	This  is  useful  to  repeatedly view just one sensor
	      reading for changes, or to set just one sensor quickly  without
	      reading all of the SDRs.

       -l tval
	      Lowest  threshold	 value to set for the specified sensor.	 This
	      tval can be in decimal, or of the form 0x1a, to match  the  raw
	      reading  value  shown by sensor following the " = ".  The value
	      passed is set as the lowest  threshold  value,  with  the	 less
	      critical ones set by the utility as incrementally higher.	 This
	      simplifies the interface and ensures that the threshold  values
	      do  not  get out of order.  This requires specifying the sensor
	      number via -n.

       -m 002000
	      Show SDRs for a specific MC (e.g. bus 00, sa 20, lun 00).	 This
	      would be used for PICMG or ATCA blade systems.

       -n snum
	      Number of the sensor to set.  This num can be in decimal, or of
	      the form 0x1a, to match the value shown by sensor following the
	      "snum"  tag.   This is required if setting hi/lo thresholds via
	      -h/-l.

       -p     Persist the threshold being set (as specified via	 -l  or	 -h).
	      This   writes   a	  "sensor   -i"	  script  line	to  the	 file
	      /usr/share/ipmiutil/thresholds.sh, which can then	 be  executed
	      at  each	reboot by including it in /etc/init.d for the desired
	      runlevel.	 For Windows, the filename is thresholds.cmd.

       -r     Show Raw SDR bytes also.

       -s     Show sensor list in  a  simpler  format  without	uninterpreted
	      binary  values.	Only  the  user-friendly  interpreted  sensor
	      information is shown.

       -t     Show any Thresholds for each sensor also.

       -u     Set unique threshold values.  The values	are  specified	in  a
	      string of threshold values.  It can be in raw hex characters or
	      in float values.	All 6 possible thresholds must be  specified,
	      but  only	 the  ones  that  are  valid  for this sensor will be
	      applied. These values are validated for ordering.	 For example:
		-u 6:5:4:60:65:69 (float) or
		-u 0x0605043c4145 (raw hex)
	       would   mean  0x06=noncrit_lo,  0x05=crit_lo,  0x04=nonrec_lo,
	      0x3c=noncrit_hi, 0x41=crit_hi, 0x45=nonrec_hi.

       -v     Show Verbose output, including volatile thresholds, SDR thresh-
	      olds, max/min, hysteresis, and BMC_TAM decoding.

       -w     Wrap the threshold data onto the same line as the sensor.	 This
	      may be convenient for scripting.

       -x     Causes eXtra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8)  bmchealth(8)	fruconfig(8)  getevent(8)  hwreset(8) icmd(8)
       pefconfig(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of  sensor
       and any bug fix list.


3.10    SHOWSEL   (ipmiutil sel)

SHOWSEL(8)							   SHOWSEL(8)



NAME
       showsel - show firmware System Event Log records

SYNOPSIS
       showsel [-clswvx -N node -P/-R pswd -U user -ETVF]


DESCRIPTION
       showsel	is  a  program that uses IPMI commands to to read and display
       the System Event Log (SEL) which is stored by the BMC firmware.	 IPMI
       commands	 are issued to read each record, and, if specified, incremen-
       tally write records that have not previously been read into the	Linux
       syslog	(/var/log/messages).	This   utility	can  use  either  the
       /dev/ipmi0 driver from OpenIPMI, the /dev/imb driver from  Intel,  the
       /dev/ipmikcs  driver  from valinux, direct user-space IOs, or the IPMI
       LAN interface if -N.


OPTIONS
       Command line options are described below.

       -c     Clears the SEL of all records.  If the SEL becomes  full	(free
	      space = 0), it no longer accepts new records, so the SEL should
	      be cleared periodically.

       -l N   Show last N SEL records, in reverse order (newest first).

       -r     Show the 16 raw hex bytes for each SEL entry.  The  default  is
	      to  display interpreted entries, and include relevant hex event
	      bytes.

       -s     By default, all SEL records are displayed.  This option  causes
	      only  the records with sensor_type = 0x20 (OS Critical Stop) to
	      be displayed.

       -v     Only show the version information.  This	shows:	 the  showsel
	      utility  version,	 the  BMC  version, the IPMI version, the SEL
	      version, and the amount of free space in the SEL.

       -w     This   option  writes  SEL  records   to	 the   Linux   syslog
	      (/var/log/messages) or Windows Application Log.  It only writes
	      SEL records that have timestamps newer  than  the	 last  record
	      written  to  syslog.   It	 saves the last timestamp in an index
	      file named /usr/share/ipmiutil/sel.idx (.\sel.idx in  Windows).

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name is specified, IPMI LAN interface is used.   Otherwise  the
	      local system management interface is used.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -E     Use  the	remote	password from Environment variable IPMI_PASS-
	      WORD.

       -F drv_t
	      Force the driver type to one of the followng:  imb,  va,	open,
	      gnu,  landesk,  lan,  lan2,  lan2i,  kcs, smb.  Note that lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use   the	  specified   LanPlus	cipher	suite  (0  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128,  4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use a specified IPMI LAN Authentication  Type:  0=None,  1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use  a  specified	 IPMI  LAN privilege level. 1=Callback level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes,  do	prompt	the  user  for	the IPMI LAN remote password.
	      Alternatives for the password are -E or -P.


SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  icmd(8)
       pefconfig(8) sensor(8) tmconfig(8) wdt(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of showsel
       and any bug fix list.


3.11    TMCONFIG  (ipmiutil serial)

TMCONFIG(8)							  TMCONFIG(8)



NAME
       tmconfig	 -  configure  a  system for Serial/EMP management functions,
       such as Terminal Mode, and optionally share the port with  the  Serial
       Console.

SYNOPSIS
       tmconfig	  [-bcdflq#rsxB	 -m0  -m1  -n  ser_chan	 -u  user  -p  passwd
       -NUPRETVF]


DESCRIPTION
       tmconfig is a program that uses an IPMI driver to send  IPMI  commands
       which configure a system to enable EMP/serial Terminal Mode management
       functions within the firmware, so that an administrator can  use	 com-
       mand-line  character  commands  via the serial port to power cycle the
       system and perform other functions, even if the system is not  running
       an OS.  This level of access needs to be protected by a username/pass-
       word login, which can be specified with this  utility.	This  utility
       can  use	 either	 the  /dev/ipmi0  driver  from OpenIPMI, the /dev/imb
       driver from Intel, the /dev/ipmikcs driver from valinux, direct	user-
       space IOs, or the IPMI LAN interface if -N.


OPTIONS
       Command line options are described below.

       -b     Set up and enable the Serial Port EMP parameters for Basic Mode
	      management functions.  This does not set a  username  or	pass-
	      word.

       -c     Configure	 and enable the Serial Port EMP parameters for Termi-
	      nal Mode management functions, shared with BIOS  Console	Redi-
	      rection.	This sets a new username and password.

       -d     Disable  the  serial port access for IPMI commands.  The serial
	      port is then only available for BIOS console and OS  functions.
	      A	 side-effect  of this option is that it sets the default user
	      (1) back to admin access.

       -f     Specifies the Flow Control for the Serial EMP.  0 means no flow
	      control, and 1 means RTS/CTS flow control (default).  This must
	      match the BIOS Serial Console setting.

       -l     Show LAN Parameters. This option reads  and  displays  the  LAN
	      Parameter configuration also.

       -m0    Switch the Serial Port MUX to Baseboard/BIOS Console operation.
	      Set no other configuration parameters.

       -m1    Switch the Serial Port MUX to Terminal Mode management.  Set no
	      other configuration parameters.

       -n ser_chan
	      Sets  the	 IPMI  channel	number	for the EMP serial port.  The
	      default for this channel number is 1.

       -#     Same as -q below.

       -q     Specify an alternate user number for the EMP Username from  the
	      -u option.  This is normally user number 2, 3, or 4, where 3 is
	      the default.  The maximum number of users is 15.

       -r     Read Only.  This option just reads the Serial Parameter config-
	      uration without writing any values.

       -s     Set  up  and  enable  the Serial Port EMP parameters for Shared
	      operation between Basic Mode management functions and Baseboard
	      (BIOS)  Remote  Console.	 This option switches the Serial Port
	      MUX to Baseboard Console operation.

       -t     Configure and enable the Serial Port EMP parameters for  Termi-
	      nal  Mode	 management functions, shared with BIOS Console Redi-
	      rection.	Same as -c, but easier to remember.

       -u username
	      This specifies a username for the EMP Terminal Mode login.   It
	      can be any string, up to 15 characters.  If -u is not used, the
	      default user 1 (null) will be assumed.  The username, if speci-
	      fied, will be set for user 3, unless option -q is specified.

       -p password
	      This  specifies a password for the EMP Terminal Mode login.  It
	      can be any string, up to 15 characters.	A  null	 password  is
	      used  if none is specified.  This password applies to user 3 if
	      -u is used, to user 1 otherwise.

       -x     Causes extra debug messages to be displayed.

       -B     Set the Baud rate of the serial port to one of  the  following:
	      9600,  19,2K,  38.4K,  57.6K,  or 115.2K.	 The default is 19.2K
	      bps.


       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name  is	specified, IPMI LAN interface is used.	Otherwise the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -E     Use the remote password from  Environment	 variable  IPMI_PASS-
	      WORD.

       -F drv_t
	      Force  the  driver  type to one of the followng: imb, va, open,
	      gnu, landesk, lan, lan2, lan2i,  kcs,  smb.   Note  that	lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use  the	specified  LanPlus  cipher   suite   (0	  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128,	 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use  a  specified	 IPMI LAN Authentication Type: 0=None, 1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use a specified IPMI LAN	privilege  level.  1=Callback  level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes, do prompt the user  for  the	 IPMI  LAN  remote  password.
	      Alternatives for the password are -E or -P.


EXAMPLES
       tmconfig -t (or -c)
	      Enables  Terminal	 Mode  management functions, shared with BIOS
	      Serial Console redirection.  The user can switch between serial
	      console  operations  and	IPMI Terminal Mode commands by typing
	      ESC ’)’ and ESC ’Q’.


       tmconfig -s
	      Enables Basic Mode management functions shared with BIOS Serial
	      Console  redirection.   The user can switch between serial con-
	      sole operations and IPMI Basic Mode management programs on  the
	      same serial port.


       tmconfig -d
	      Disables	the  serial port management functions.	This would be
	      used if only the BIOS Serial  Console  were  used	 and  no  BMC
	      serial management functions.


       How to login to a Terminal Mode console:
       ESC (		       (switch to Terminal mode)
       [SYS PWD -N ]	       (login for default user, null psw)
       [SYS PWD -U ROOT -N PASSWORD]  (syntax example for user 3)
       [SYS 000157 ACTIVATE]   (activate advanced commands)
       [SYS HEALTH QUERY]
       [SYS HELP]
       [SYS PWD]	       (logoff)
       ESC Q		       (switch to BIOS console)
       See IPMI 1.5 Spec, Appendix E, and Intel TIGPR2U TPS for more informa-
       tion.


DEPENDENCIES
       The tmconfig utility is intended to configure the EMP serial  port  on
       the  server for shared access between BMC/IPMI functions and BIOS Con-
       sole Redirection.  Some platforms only support  only  Basic  Mode  for
       BMC/IPMI	 functions.   Basic Mode requires a remote client application
       to utilize it (Windows ISC Console/DPC, or a  special  modified	Linux
       telnet).	  There	 are some platforms which implement Terminal Mode via
       IPMI v1.5 Appendix E to make remote management with character commands
       available  on the serial port without a special remote client applica-
       tion.

       For example, Intel TSRLT2 systems would use "tmconfig  -s"  for	Basic
       Mode  shared  functions, but Intel TIGPR2U systems could use "tmconfig
       -c" to configure Terminal Mode functions.  On your system, run "tmcon-
       fig  -r"	 to check whether Serial Param(29): "Terminal Mode Config" is
       supported.  If not, configure Basic Mode via "tmconfig -s".



PLATFORM SERIAL PORT CONFIGURATION EXAMPLES
       First, enter BIOS Setup for  Serial  Console  Redirection  parameters:
       (these vary by platform)
	 Console Redirection = Serial Port B
	 ACPI Redirection = Disabled
	 Baud Rate = 115.2K
	 Flow Control = CTS/RTS
	 Terminal Type = VT100
	 Legacy Redirection = Enabled
       Note  that  the Baud Rate can vary, but it must match in all locations
       where it is used (BIOS, IPMI, and Linux).
       For some non-Intel platforms, the serial console would be COM1 instead
       of COM2, but should be enabled in BIOS.
       From  Linux, run "tmconfig -c" for Terminal Mode shared configuration.
       Or, on older Intel TSRLT2 platforms: From Linux, run "tmconfig -s" for
       Basic Mode Shared configuration.


LINUX CONFIGURATION FOR SERIAL CONSOLE
       If using lilo, in /etc/lilo.conf, add
	 append="console=ttyS1,19200n8 console=tty0"
       (and comment out the "message=" line because it includes graphics)
       Note  that  the	append	line  can be placed in the global section and
       removed from each kernel section if there are no other differences.


       Or, if using grub, edit /boot/grub/grub.conf as follows:
	 #Omit the splashimage or gfxmenu
	 # splashimage=(hd0,0)/grub/splash.xpm.gz
	 #The serial and terminal lines are not usually needed
	 # serial --unit=1 --speed=19200 --word=8 --parity=no --stop=1
	 # terminal --timeout=10 serial console
	 #Add the console=ttyS* parameter to the kernel line
	   kernel (hd0,0) /vmlinuz root=/dev/sda2 console=ttyS1,19200n8


       Add this line to /etc/initab, if ttyS1 is not already there:
	 co:2345:respawn:/sbin/agetty ttyS1 19200 vt100

       Add this line to /etc/securetty, if ttyS1 is not already there:
	 ttyS1


SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  icmd(8)
       pefconfig(8) sensor(8) showsel(8) wdt(8)


WARNINGS
       See  http://ipmiutil.sourceforge.net/ for the latest version of tmcon-
       fig and any bug fix list.


3.12    WDT       (ipmiutil wdt)

WDT(8)								       WDT(8)



NAME
       wdt - display and set WatchDog Timer parameters

SYNOPSIS
       wdt [-adelrtx -N node -P/-R pswd -U user -ETVF]


DESCRIPTION
       wdt  is	a program that uses IPMI commands to display and set WatchDog
       Timer parameters.

       This utility can use either the /dev/ipmi0 driver from  OpenIPMI,  the
       /dev/imb	 driver	 from  Intel,  the  /dev/ipmikcs driver from valinux,
       direct user-space IOs, or the IPMI LAN interface if -N.

       Note that the device-independent way to manipulate watchdog timers  in
       Linux is to use the /dev/watchdog interface.  This utility is an exam-
       ple of how to access the IPMI watchdog parameters directly.


OPTIONS
       Command line options are described below.

       -a N   Set watchdog event Action to N. Values: 0 = No action, 1 = Hard
	      Reset(default), 2 = Power down, 3 = Power cycle.

       -d     Disables the watchdog timer.

       -e     Enables the watchdog timer.  The timer is not actually started,
	      however, until the timer is reset.  The pre-timeout  action  is
	      not enabled.

       -l     Set  the watchdog dontLog bit to not log watchdog events in the
	      SEL.

       -r     Resets the watchdog timer.  This should be done every N seconds
	      if the timer is running to prevent the watchdog action (usually
	      a system reset) from occurring.

       -tN    Set the watchdog Timeout to N seconds.  The default is 120 sec-
	      onds (2 minutes).

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name is specified, IPMI LAN interface is used.   Otherwise  the
	      local system management interface is used.

       -P/-R rmt_pswd
	      Remote  password for the nodename given.	The default is a null
	      password.

       -U rmt_user
	      Remote username for the nodename given.  The default is a	 null
	      username.

       -E     Use  the	remote	password from Environment variable IPMI_PASS-
	      WORD.

       -F drv_t
	      Force the driver type to one of the followng:  imb,  va,	open,
	      gnu,  landesk,  lan,  lan2,  lan2i,  kcs, smb.  Note that lan2i
	      means lan2 with intelplus.  The default is to detect any avail-
	      able driver type and use it.

       -J     Use   the	  specified   LanPlus	cipher	suite  (0  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128,  4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use a specified IPMI LAN Authentication  Type:  0=None,  1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use  a  specified	 IPMI  LAN privilege level. 1=Callback level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes,  do	prompt	the  user  for	the IPMI LAN remote password.
	      Alternatives for the password are -E or -P.



SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  icmd(8)
       pefconfig(8) sensor(8) showsel(8) tmconfig(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of wdt and
       any bug fix list.


3.13    ISOLCONSOLE (ipmiutil sol)

ISOLCONSOLE(8)						       ISOLCONSOLE(8)



NAME
       isolconsole - an IPMI Serial-Over-LAN Console application


SYNOPSIS
       isolconsole [-a -d -e -l -r -x -NUPETVF]


DESCRIPTION
       This  utility  starts  an  IPMI	Serial-Over-LAN	 console  session.  A
       Serial-over-LAN console allows the client to see and modify  functions
       before the OS boots, such as BIOS setup, grub, etc.  This utility uses
       either the IPMI LAN 1.5 or 2.0 SOL interface.  The 1.5  SOL  interface
       is  specific  to Intel BMCs, while any IPMI 2.0 BMC should support 2.0
       SOL.  The target system/node must first have these parameters  config-
       ured before SOL sessions can be started:
       - BIOS serial console redirection parameters,
       - IPMI serial (tmconfig) and lan (pefconfig) parameters, and
       - For Linux, the grub.conf, inittab, and securetty parameters
       Be  sure	 that  the baud rate matches in all of the above places.  See
       the ipmiutil UserGuide section 4.8 for details.


OPTIONS
       -a     Activate the SOL Console session, and enter console mode.	  Use
	      the escape character (’~’) to exit the session.

       -d     Deactivate  the  SOL Console session.  Use this if the previous
	      session was aborted abnormally and starting a new session gives
	      an error.

       -e     Turn  Encryption	off in negotiation when activating a session.
	      By default, encryption is on for Serial-Over-LAN	console	 ses-
	      sions.

       -l     Use  Legacy  BIOS mapping for Enter key (CR+LF) instead of just
	      LF.  This is needed for BIOS Setup menus and DOS, but causes an
	      extra  LF to occur in Linux.  So, only use this option if doing
	      BIOS or DOS changes.

       -r     (Windows only) Use Raw terminal I/O instead of custom VT100  to
	      ANSI  translation.  Use this option if the server is configured
	      in BIOS and BMC for ANSI and the utility is being invoked	 from
	      Windows.

       -x     Causes extra debug messages to be displayed.

       -N nodename
	      Nodename or IP address of the remote target system.  If a node-
	      name is specified, IPMI LAN interface is used.   Otherwise  the
	      local system management interface is used.

       -U rmt_user
	      Remote  username for the nodename given.	The default is a null
	      username.

       -P/-R rmt_pswd
	      Remote password for the nodename given.  The default is a	 null
	      password.

       -E     Use  the	remote	password from Environment variable IPMI_PASS-
	      WORD.

       -F drv_t
	      Force the driver type to one of the followng:  imb,  va,	open,
	      gnu,  landesk,  lan,  lan2,  lan2i,  kcs, smb.  Note that lan2i
	      means lan2 with intelplus.  The default is to detect  any	 sup-
	      ported driver type and use it.

       -J     Use   the	  specified   LanPlus	cipher	suite  (0  thru	 14):
	      0=none/none/none,	     1=sha1/none/none,	    2=sha1/sha1/none,
	      3=sha1/sha1/cbc128,  4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40,
	      6=md5/none/none, ... 14=md5/md5/xrc4_40.	Default is 3.

       -T     Use a specified IPMI LAN Authentication  Type:  0=None,  1=MD2,
	      2=MD5, 4=Straight Password, 5=OEM.

       -V     Use  a  specified	 IPMI  LAN privilege level. 1=Callback level,
	      2=User   level,	3=Operator   level,   4=Administrator	level
	      (default), 5=OEM level.

       -Y     Yes,  do	prompt	the  user  for	the IPMI LAN remote password.
	      Alternatives for the password are -E or -P.


EXAMPLES
       isolconsole -a -N nodename -U username -P password
       Starts an SOL console session to the nodename.  Detect the lan  proto-
       col.

       isolconsole -a -N nodename -U username -P password  -Flan2
       Starts  an SOL console session to the nodename.	Force lan protocol to
       2.0.



SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  pefcon-
       fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) icmd(8) ipmiutil(8)


WARNINGS
       See  http://ipmiutil.sourceforge.net/  for  the latest version of icmd
       and any bug fix list.


3.14    IDISCOVER (ipmiutil discover)

IDISCOVER(8)							 IDISCOVER(8)


NAME
       idiscover - discover IPMI LAN-enabled nodes

SYNOPSIS
       idiscover [-abegisx]


DESCRIPTION
       idiscover  is  a	 program  that uses IPMI LAN commands to discover any
       nodes on the LAN that are available, by probing the RMCP	 port  (623.)
       on  those  nodes.   This utility uses IPMI LAN, so no IPMI drivers are
       needed.	There are three methods that can be used:
       -a   = broadcast RMCP ping method
       -g   = GetChannelAuthCap command method
       else = specific RMCP ping method

       For all methods, a beginning IP address must be specified with -b.  An
       ending IP can be specified for non-broadcast methods.


OPTIONS
       Command line options are described below.

       -a     All nodes, use the broadcast ping method

       -b <ip>
	      Beginning	 IP  address,  required.   This	 would be a broadcast
	      address, ending in 255, if the broadcast method is used.

       -e <ip>
	      Endign IP address of the range.  Not used for broadcast method.
	      If  this	is  not specified, a range of one IP address matching
	      the beginning IP is assumed.

       -g     Use  the	GetChannelAuthenticationCapabilities  command  method
	      over  IPMI  LAN  instead of the RMCP ping.  Not compatible with
	      broadcast.  This may be useful if the vendor BMC does not	 sup-
	      port RMCP ping for some reason.

       -i eth0
	      The interface name to use when sending the probes.  The default
	      is eth0.

       -x     Causes extra debug messages to be displayed.


EXAMPLES
	   idiscover -a -b 192.168.1.255
       Sends a broadcast RMCP ping to discover IPMI LAN nodes on  the  speci-
       fied subnet.

	   idiscover -b 192.168.1.100 -e 192.168.1.254
       Sends RMCP pings to a range of IP addresses.

	   idiscover -g -b 192.168.1.100 -e 192.168.1.254
       Sends GetChannelAuthCap commands to a range of IP addresses.


SEE ALSO
       alarms(8)  bmchealth(8)	fruconfig(8)  getevent(8)  hwreset(8) icmd(8)
       pefconfig(8) sensor(8) showsel(8) tmconfig(8) ipmiutil(8)


WARNINGS
       See http://ipmiutil.sourceforge.net/ for the latest version of wdt and
       any bug fix list.


3.15    EVENTS    (events)

EVENTS(8)							    EVENTS(8)

NAME
       events - decode IPMI and PET event data

SYNOPSIS
       events [-fpsx] 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10

DESCRIPTION
       events  is  a  standalone  utility used to interpret raw hex data from
       IPMI events or from IPMI PET SNMP  trap	varbind	 data.	 Its  default
       location	 is  /usr/share/ipmiutil/events.   This utility uses the same
       interpretation logic as	is  used  by  "ipmiutil	 sel"  (showsel)  and
       "ipmiutil getevt" (getevents).

       The data bytes in the input are always assumed to be in hex form.

       This  could be useful if a utility other than "ipmiutil sel" were used
       to obtain IPMI SEL records or events and interpretation is needed.

       This would also be needed  at  an  enterprise  management  station  to
       interpret  the  PET  SNMP  trap hex data into human-readable form, see
       option -p.

OPTIONS
       -f     Interpret a file containing raw SEL data captured with ipmiutil
	      sel  -r, or some other similar utility.  Otherwise, the default
	      is to use the 16 bytes taken from the command-line arguments.

       -p     Decode as PET event bytes, where the input is 34 PET  hex	 data
	      bytes,  skipping	the  first  8  of  the 47-byte PET data.  The
	      default assumes that the input is a 16-byte IPMI event.

       -s     Sensor file with the output of "ipmiutil sensor", used  to  get
	      the  PET	sensor_type  from  the	sensor_num.   The  default is
	      /usr/share/ipmiutil/sensor_out.txt  as  generated	 during	  the
	      ipmiutil	rpm installation.  This is not needed except with PET
	      interpretation (-p).

       -x     show eXtra debug messages


SEE ALSO
       alarms(8) bmchealth(8)  fruconfig(8)  getevent(8)  hwreset(8)  icmd(8)
       pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8)


WARNINGS
       See  http://ipmiutil.sourceforge.net/ for the latest version of ipmiu-
       til and any bug fix list.



--------------------------
4.0  USE CASES
--------------------------

----------------------------------------------------------------
4.1 Usage of IPMI utilities for sensor thresholds
----------------------------------------------------------------

Get and set the Baseboard Temperature sensor threshold with 
the 'sensor' utility like this:
# sensor -t
[...]
000e SDR Full 01 39 20 sensnum 30 Baseboard Temp   = 1d OK   29.00 degrees C
        hi-crit 65.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit  5.00
[...]
Using sensor number 30, index 000e, and the hex raw reading (1d) as a 
baseline from above, we can set the lower threshold above the current 
reading, i.e. 0x1e or 30 C.

# sensor -i 0e -t -n 0x30 -l 30
sensor: version 1.39
idx = 0e
-- BMC version 0.48, IPMI version 1.5
_ID_ SDR_Type_xx Sz Own Typ S_Num Sens_Description   Hex & Interp Reading
000e SDR Full 01 39 20 sensnum 30 Baseboard Temp   = 1d OK   29.00 degrees C
        hi-crit 65.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit  5.00
        Setting SDR 000e sensor 30 to lo=1e hi=ff
GetThreshold[30]: 30 1b 0a 05 00 3c 41 00
SetThreshold[30]: 30 03 20 1f 1e 00 00 00
SetSensorThreshold[30] to lo=1e(30.000) hi=ff(0.000), ret = 0
# 
This sets the lower non-crit to 1e (30 C), and lower crit to 1f (31 C), and
would cause a sensor threshold event.  Note that this utility takes the
raw threshold value and increments it sequentially for each of the severities.
Now we should set the lower threshold back to a more normal value of 5 C.
# sensor -i 0e -t -n 0x30 -l 5
sensor: version 1.39
idx = 0e
-- BMC version 0.48, IPMI version 1.5
_ID_ SDR_Type_xx Sz Own Typ S_Num Sens_Description   Hex & Interp Reading
000e SDR Full 01 39 20 a 01 snum 30 Baseboard Temp   = 1b Crit-lo 27.00 degrees
C
        hi-crit 66.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit  5.00
        Setting SDR 000e sensor 30 to lo=05 hi=ff
GetThreshold[30]: 30 1b 20 1f 00 3c 42 00
SetThreshold[30]: 30 03 07 06 05 00 00 00
SetSensorThreshold[30] to lo=05(5.000) hi=ff(0.000), ret = 0
# 
The threshold events can be displayed via showsel.
# showsel -l4 
4b18 07/17/06 14:33:14 BMC  01 Temperature 30 LoC thresh OK now act=1b thr=06
4b04 07/17/06 14:33:14 BMC  01 Temperature 30 LoN thresh OK now act=1b thr=07
4af0 07/17/06 14:26:38 BMC  01 Temperature 30 Lo Crit thresh act=1b thr=1f
4adc 07/17/06 14:26:38 BMC  01 Temperature 30 Lo Noncrit thresh act=1b thr=20
#

----------------------------------------------------------------
4.2  How to configure a system for IPMI LAN
----------------------------------------------------------------

Below is a sample IPMI LAN configuration with IPMI LAN enabled, 
PEF Alerts enabled, and 2 users configured for IPMI LAN.  

The key unique LAN parameters that must be configured for basic
IPMI LAN functionality are: 3,4,5,6,12,13, plus the
Channel Access Mode and User Access.  
Additional parameters for PEF and SOL are shown below also.

Defaults for required parameters are detected by ipmiutil lan, except 
for the username, password, and the BMC LAN IP if it is not shared.  
The detection uses the OS LAN configuration to find the gateway IP,
MAC addresses, mask, etc.  

# ipmiutil -e -u user2 -p password2 [-I 192.168.1.1 ]
Running "ipmiutil -e -u user2 -p password2" would set up all required
IPMI LAN parameters if the OS and BMC share an IP address.  If not,
the -I parameter should be added to specify the BMC IP.  Note that -e 
also sets up the PEF table for events, but the channel is not enabled 
for PEF events unless an Alert destination is specified, either in 
snmpd.conf or via -A.  You can use -l instead of -e if you want to
set up the LAN but not the PEF table.

Note that the BMC LAN protocol works only from remote systems. 
The BMC LAN cannot recognize LAN commands from the local system
because those requests never really go onto the physical network.
Use the non-LAN form of a given ipmiutil command (without -N) to run locally.
Below is sample output from a system after being configured for IPMI LAN.

# ipmiutil lan -r
ipmiutil ver 1.8
pefconfig ver 1.64 
-- BMC version 0.53, IPMI version 2.0 

pefconfig: GetPefEntry ...
PEFilter(01): 01 Temperature Sensor event - enabled for alert
PEFilter(02): 02 Voltage Sensor event - enabled for alert
PEFilter(03): 04 Fan Failure event - enabled for alert
PEFilter(04): 05 Chassis Intrusion event - enabled for alert
PEFilter(05): 08 Power Supply Fault event - enabled for alert
PEFilter(06): 0c Memory ECC Error event - enabled for alert
PEFilter(07): 0f FRB Failure event - enabled for alert
PEFilter(08): 07 BIOS POST Error event - enabled for alert
PEFilter(09): 13 Fatal NMI event - enabled for alert
PEFilter(10): 23 Watchdog Timer Reset event - enabled for alert
PEFilter(11): 12 System Restart event - enabled for alert
PEFilter(12): 20 OS Critical Stop event - enabled for alert
PEFilter(13): 02 Power Redundancy Lost event - enabled for alert
PEF Control: 01 PEFenable 
PEF Actions: 2f Alert PwrDn Reset PwrCyc DiagInt 
PEF Startup Delay: 60 sec
PEF Alert Startup Delay: 60 sec
PEF Alert Policy[1]: 01 18 11 00 Chan[1] Dest[1] Enabled 
PEF Alert Policy[2]: 02 00 00 00 Disabled 
PEF Alert Policy[3]: 03 00 00 00 Disabled 
PEF Alert Policy[4]: 04 00 00 00 Disabled 

pefconfig: GetLanEntry for channel 1 ...
Lan Param(0) Set in progress: 00 
Lan Param(1) Auth type support: 17 None MD2 MD5 Pswd  
Lan Param(2) Auth type enables: 16 16 16 16 00 
Lan Param(3) IP address: 10 243 42 229 
Lan Param(4) IP addr src: 01 Static 
Lan Param(5) MAC addr: 00 04 23 bc ac 12 
Lan Param(6) Subnet mask: 255 255 255 0 
Lan Param(7) IPv4 header: 40 40 10 
Lan Param(10) BMC grat ARP : 01 
Lan Param(11) grat ARP interval: 04 
Lan Param(12) Def gateway IP: 10 243 42 251 
Lan Param(13) Def gateway MAC: 00 d0 06 21 eb fc 
Lan Param(14) Sec gateway IP: 0 0 0 0 
Lan Param(15) Sec gateway MAC: 00 00 00 00 00 00 
Lan Param(16) Community string: public 
Lan Param(17) Num dest: 04 
Lan Param(18) Dest type: 01 00 01 00 00 
Lan Param(18) Dest type: 02 00 01 00 00 
Lan Param(18) Dest type: 03 00 00 00 00 
Lan Param(18) Dest type: 04 00 00 00 00 
Lan Param(19) Dest address: 01 00 00 [10 243 42 217] 00 07 e9 06 15 80 
Lan Param(19) Dest address: 02 00 00 [0 0 0 0] 00 00 00 00 00 00 
Lan Param(19) Dest address: 03 00 00 [0 0 0 0] 00 00 00 00 00 00 
Lan Param(19) Dest address: 04 00 00 [0 0 0 0] 00 00 00 00 00 00 
Lan Param(192) DHCP Server IP: 0 0 0 0 
Lan Param(193) DHCP MAC Address: 00 00 00 00 00 00 
Lan Param(194) DHCP Enable: 00 
GetChanAcc(lan), ret = 0, new value = 02
  Access = Always Avail, PEF Alerts Enabled
Channel Access Mode(Lan): 02 04 
GetSOL for channel 1 ...
SOL Enable: 01 enabled
SOL Auth: 02 User  
SOL Accum Interval: 04 32  20 msec
SOL Retry Interval: 06 14  200 msec
SOL nvol Baud Rate: 07 19.2k
SOL vol Baud Rate: 00 nobaud
SOL Payload Access(1,1): 02 00 00 00 enabled
SOL Payload Support(1): 03 00 15 00 00 00 00 00 
Get User Access(1): 04 02 01 14 IPMI, Admin  ()
Get User Access(2): 04 02 01 14 IPMI, Admin  (root)
Get User Access(3): 04 02 01 02 User   (test)
Get User Access(4): 04 02 01 02 User   ()
pefconfig: completed successfully


----------------------------------------------------------------
4.3 Usage of IPMI utilities for Automatic IPMI LAN configuration
----------------------------------------------------------------

Suppose there are a number of IPMI servers that need to have their
BMC LAN interface configured.  Shell access to the servers 
(via ssh or similar) is assumed.  

BMC LAN, Simple case, password is not changed:
[ssh connection]
# pefconfig -e
[ssh exit]

BMC LAN, Complex case, assuming that a password needs to be set and
that the session text (or script) must encrypt the password.  
So, using the gnupg.org utilities with public/private keys 
would look something like this:
[ Set up list (or db) of encrypted passwords & key by nodename.
  Note that the list and keyfile could reside locally, building
  the ssh script syntax, so that only the encrypted password is 
  exposed remotely. ]
[ssh connection]
# gpg --import mykey.file
# mynode=`uname -n`
# my_enc_psw=`grep $mynode mylist.file |cut -f2`
# pefconfig -e -p `gpg --decrypt $my_enc_psw`
[ssh exit]

----------------------------------------------------------------
4.4 Usage of IPMI Utilities to Set Watchdog timer
----------------------------------------------------------------

There is an init script provided with ipmiutil to automate this task.
# cp /usr/share/ipmiutil/wdt.sh  /etc/init.d/wdt
# chkconfig --add wdt      (skip this if no chkconfig)
# /etc/init.d/wdt start
This sets the watchdog timer to reset the system if the wdt is not 
restarted within 90 seconds.  It creates a /etc/cron.d/wdt file to 
restart wdt every 60 seconds.

You will also want to set the BIOS FRB/Watchdog timer in BIOS Setup 
for coverage during POST.

Alternatively, you could build a custom kernel with embedded watchdog
support by changing the IPMI_* parameters to =y in the Linux .config
and building the kernel.  Then edit grub.conf to start the watchdog
with the kernel parameter ipmi_watchdog_start_now=1.

----------------------------------------------------------------
4.5 Usage of kernel panic handler code (now CONFIG_IPMI_PANIC_EVENT):
----------------------------------------------------------------

If a Linux panic occurs, the bmc_panic module will automatically save 
the date/time of the panic, and minimal information about the panic.
This information will also be sent via SNMP to the remote management console,
and (if bmcpanic.patch) the Alarms panel LED will be turned on.  
If lkcd is also configured, a full crash-dump of the panic will be saved
for later analysis.
After this, the system will automatically reboot.
This provides instant notification to the administrator, and significantly
improved post-mortem diagnosis.

Without these features, the administrator may never have any indication that
the system had crashed, and no way to know how to diagnose and fix the problem.

To enable this, set CONFIG_IPMI_PANIC_EVENT=y and CONFIG_IPMI_PANIC_STRING=y
in the kernel .config file.  

You can also run pefconfig to enable sending an SNMP trap for a kernel 
panic as an "OS Critical Stop" event.

Make sure that the panic timeout is not zero (infinite), by using 
echo "5" > /proc/sys/kernel/panic
or by adding 'append="panic=5"' to the lilo or grub configuration.

After a panic occurs, you can then use showsel to view the firmware SEL 
for that event.  It should look something like this:
# showsel
[...]
2d04 07/21/04 07:54:22 SMI  20 OS Critical Stop 46 (Fat) 6f [a1 61 74]
2d18 OEM Event 20 00 Fatal excep
2d2c OEM Event 20 01 tion
[...]


----------------------------------------------------------------
4.6 Interpreting BMC LAN SNMP Traps from Platform Events.
----------------------------------------------------------------

There are MIB files provided for BMC LAN SNMP traps with this project.
They are installed into /usr/share/ipmiutil/bmclan*.mib, and sym-linked 
into /usr/share/snmp/mibs/.
The Platform Event Traps (enterprises.3183) are defined in bmclanpet.mib.
The Alert-on-LAN traps (enterprises.3183) are defined in bmclanaol.mib.

Note that Plaform Event Traps also have a 46-byte binary variable bindings 
field included with the trap.  
See Section 12.5 and 12.6 from the Intel ISM 5.x TPS for background.

Actual PET Trap Data from a System Restart Event trap: 

snmputil: trap generic=6 specific=1208065
  from -> 10.243.42.197
Variable = .iso.org.dod.internet.private.enterprises.3183.1.1.1
Value    = String <0xa4><0x12><0x00><0x5f><0x62><0xa1><0xd5><0x11><0x00><0x80><0x60><0xff><0x94><0x47><0x03><0x00><0x21><0x19><0x0c><0x7f><0x3b><0x12><0xff><0xff><0x20><0x20><0x00><0x01><0x83><0x00><0x00><0x01><0xff><0xff><0x00><0x00><0x00><0x00><0x00><0x19><0x00><0x00>
<0x01><0x57><0x00><0x0c><0xc1>

Byte Mapping 
Bytes of the trap variable binding data are mapped.  
An extra byte of data is at the end (47).

Byte Data    Meaning
1   0xa4    System GUID (16 bytes)
2   0x12    
3   0x00    
4   0x5f    
5   0x62    
6   0xa1    
7   0xd5    
8   0x11    
9   0x00    
10  0x80    
11  0x60    
12  0xff    
13  0x94    
14  0x47    
15  0x03    
16  0x00    
17  0x21    Sequence Number/Cookie (2 bytes)
18  0x19    
19  0x0c    Local Timestamp (4 bytes)
20  0x7f    
21  0x3b    
22  0x12    
23  0xff    UTC Offset (2 bytes)
24  0xff    
25  0x20    Trap Source Type
26  0x20    Event Source Type
27  0x00    Event Severity
28  0x01    Sensor Device
29  0x83    Sensor Number
30  0x00    Entity
31  0x00    Entity Instance
32  0x01    Event Data (8 bytes max, 3 bytes used)
33  0xff    
34  0xff    
35  0x00    
36  0x00    
37  0x00    
38  0x00    
39  0x00    
40  0x19    filler byte
41  0x00    Manufacturer ID (4 bytes, 000157=Intel)
42  0x00    
43  0x01    
44  0x57    
45  0x00    Product ID   (2 bytes)
46  0x0c
47  0xc1    extra byte

Also, there is an optional "Extended Platform Event Trap" format defined
for IPMI which breaks up the 46-byte binary varbind into separate 
varbinds for easier parsing.


----------------------------------------------------------------
4.7  Interpreting newer PECI sensors for CPU Temperature
----------------------------------------------------------------

The newer CPUs do more monitoring internally rather that using absolute 
temperature thresholds from the BMC.  The CPU knows best what its 
thresholds  should be, and the thresholds may be different for different 
CPUs.  So, there are several IPMI sensors that expose the state of the 
CPU temperature via the newer PECI interface. 

1) Thermal Margin - A negative value indicating margin to throttling point.  
   Once margin reaches 0, throttling begins
2) Therm Control % - Reports the percentage of time within a 5.8 second 
   sliding window during which the processor was throttling
3) VRD Hot - Discrete sensor indicating one of the phases of the processor 
   VRD circuit on the baseboard has exceeded it's limit.  This is not 
   indicative of CPU - just the VR circuit on the baseboard.  

Therm Margin is the one to watch if you want max performance without 
throttling.  If it reaches 0, you will start losing performance to throttling.


----------------------------------------------------------------
4.8  How to configure a system for IPMI Serial-Over-LAN Console
----------------------------------------------------------------

The Serial-Over-LAN (SOL) console configuration requires 
configuring BIOS, BMC/IPMI, and OS parameters.

Enter BIOS Setup for Serial Console Redirection parameters:
(these vary by platform)
  Console Redirection = Serial Port B
  ACPI Redirection = Disabled
  Baud Rate = 115.2K
  Flow Control = CTS/RTS
  Terminal Type = VT100
  Legacy Redirection = Enabled
Note that the Baud Rate can vary, but it must match in all
locations where it is used (BIOS, IPMI, and Linux).
 
Run this for IPMI serial configuration:  (sample)
  ipmiutil serial -c -q2 -u user2 -p password2 [-B 115.2k]
The Baud rate defaults to 19.2k if not specified.
 
Run this for IPMI LAN & SOL configuration:  (sample)
  ipmiutil lan -e -u user2 -p password2 [-B 115.2k] [-I 192.168.1.1] 
Use the -I portion if your BMC does not share a MAC address
with the OS.  If not specified, the baud rate defaults to that
previously set with "ipmiutil serial".
 
---- FOR LINUX SERIAL CONSOLE -----
Edit /boot/grub/grub.conf to:
    add "console=ttyS1,115200n8" on the end of the kernel line,
    and comment out the "splashimage=" line
Edit /etc/inittab to add:
    co:2345:respawn:/sbin/agetty ttyS1 115200 vt100
Edit /etc/securetty to add:
    ttyS1
 
---- FOR WINDOWS SERIAL CONSOLE -----
To configure Windows for Serial (System Admin Console),
these BOOTCFG.EXE commands manipulate the BOOT.INI for SAC:
BOOTCFG /EMS ON /PORT BIOSSET /ID 1  (Enables SAC)
BOOTCFG /EMS OFF /ID 1              (Disables SAC)

----------------------------------------------------------------
4.9  Using libipmiutil.a APIs for custom programs
----------------------------------------------------------------

The various driver modules and LAN interfaces are included in
libipmiutil.a which is build by "cd util; make libipmiutil.a".

This library provides a common interface to use IPMI commands.
For instance, as shown in ipmicmd.h, a raw IPMI command can be
called with the ipmi_cmdraw subroutine.
/*
 * ipmi_cmdraw
 * uchar cmd     (input): IPMI Command
 * uchar netfn   (input): IPMI NetFunction
 * uchar sa      (input): IPMI Slave Address of the MC
 * uchar bus     (input): BUS  of the MC
 * uchar lun     (input): IPMI LUN
 * uchar *pdata  (input): pointer to ipmi data
 * uchar sdata   (input): size of ipmi data
 * uchar *presp (output): pointer to response data buffer
 * int *sresp   (input/output): on input, size of response buffer,
 *                              on output, length of response data
 * uchar *cc    (output): completion code
 * char fdebugcmd(input): flag =1 if debug output desired
 *
 * This routine will use IPMI LAN if a remote node is specified with the 
 * globals 'gnode','guser','gpswd', else it will detect whether the following 
 * local IPMI * drivers are available:  OpenIPMI, Intel imb, valinux ipmikcs, 
 * and optionally LANDesk or FreeIPMI.  If none of these drivers are detected, 
 * direct user-space IOs will be used for either KCS or SSIF access to the 
 * IPMI MC.  
 */
int ipmi_cmdraw(uchar cmd, uchar netfn, uchar sa, uchar bus, uchar lun,
                uchar *pdata, uchar sdata, uchar *presp,
                int *sresp, uchar *pcc, char fdebugcmd);

If you would prefer not to use the globals like 'gnode', you can explicitly
call ipmi_open_lan() with the node, user, password parameters before the 
ipmi_cmdraw() call.  

----------------------------------
5.0  IPMI UTILITIES ON WINDOWS 
----------------------------------

Files contained in the ipmiutil win32 zip file:
  README.txt    - this file
  UserGuide.txt - the ipmiutil User Guide
  LICENSE.txt   - the BSD License
  ipmiutil.exe  - a meta-command for all of the functions
  alarms.exe
  bmchealth.exe
  fruconfig.exe
  getevent.exe
  hwreset.exe
  icmd.exe
  isolconsole.exe
  pefconfig.exe
  sensor.exe
  showsel.exe
  showselmsg.dll
  showsel.reg
  tmconfig.exe
  wdt.exe
  libeay32.dll  - from openssl crypto
  ssleay32.dll  - from openssl crypto

The install and build instructions are below, all other information
in the UserGuide.txt is the same for Windows and Linux.

----------------------------------
5.1  WINDOWS INSTALL INSTRUCTIONS
----------------------------------

The showselmsg.dll needs to be copied into the %SystemRoot%\System32
directory and then run showsel.reg, so that the Windows EventLog service
can find information about the showsel events.  

Note that the openssl crypto libraries (libeay32.dll and ssleay32.dll) 
should be copied to %SystemRoot%\System32 also to provide crypto functions
for the lanplus logic, if they are not already present.

The utilities can be run separately, or an ipmiutil directory can be 
added into the %PATH%.

A sample install batch file:
> set MYBIN=c:\bin
> copy libeay32.dll    %SystemRoot%\system32
> copy ssleay32.dll    %SystemRoot%\system32
> copy showselmsg.dll  %SystemRoot%\system32
> start showsel.reg
> mkdir  %MYBIN%
> copy *.exe  %MYBIN%

The usage of the utilities is the same as in Linux OS, with one caveat:
 * The only IPMI driver supported is the Intel IMB driver (imbdrv.sys), 
   which can be obtained from the Intel Resource CD for your system, 
   from the ISM CD, or from http://www.intel.com by searching downloads 
   for IMB driver.
   http://downloadfinder.intel.com/scripts-df-external/Product_Search.aspx?Prod_nm=imb+driver

How to install the Windows IPMI driver (from Intel Resource CD):
> cd c:\temp
> copy d:\ism\software\win32\pi\common\imb*.*
> copy d:\ism\software\win32\pi\common\win2k*.exe
> ren imbdrv2k.sys imbdrv.sys
> copy imbapi.dll %SystemRoot%\system32
> win2kinstall c:\temp\imbdrv.inf *IMBDRV
> driverquery   (shows the drivers currently installed/running)

----------------------------------
5.2  WINDOWS BUILD INSTRUCTIONS
----------------------------------

To build the ipmiutil EXEs for Windows from source,
the WIN32 compile flag is used.  
The ipmiutil buildwin.cmd shows how to compile and link 
the lib and exe files, although many people prefer to do 
builds with the Microsoft VisualStudio project GUI.  
The build environment assumes that VisualStudio 6.0 VC98 or
later is installed. 

Before running buildwin.cmd, first download the contributed
files for Windows (includes getopt.c and openssl).
A copy of these files is available from 
   http://ipmiutil.sf.net/FILES/ipmiutil-contrib.zip
See getopt.c from one of these
   BSD getopt.c:
     http://www.openmash.org/lxr/source/src/getopt.c?c=gsm
   public domain getopt.c:
     http://www.koders.com/c/fid034963469B932D9D87F91C86680EB08DB4DE9AA3.aspx
   GNU LGPL getopt.c:
     http://svn.xiph.org/trunk/ogg-tools/oggsplit/
See openssl from 
     http://www.openssl.org/source/openssl-0.9.7l.tar.gz.

Below are sample directories where ipmiutil*.tar.gz was unpacked, 
and where the openssl*.tar.gz was unpacked.
> set ipmiutil_dir=c:\dev\ipmiutil
> set openssl_dir=c:\dev\openssl

First, copy the getopt.c & getopt.h into the util directory.  
From the directory where ipmiutil-contrib.zip was unpacked, 
> copy getopt.*      %ipmiutil_dir%\util
The iphlpapi.lib comes from VS 2003 .Net or Win2003 DDK.
> copy iphlpapi.lib  %ipmiutil_dir%\lib
> copy iphlpapi.h    %ipmiutil_dir%\util  
If you do not have the iphlpapi.* files, you can build without it
by copying the *-nohlp files.
> copy %ipmiutil_dir%\util\pefconfig.c-nohlp  %ipmiutil_dir%\util\pefconfig.c
> copy %ipmiutil_dir%\util\ipmiutil.mak-nohlp %ipmiutil_dir%\util\ipmiutil.mak

You then need to build a copy of openssl for Windows, and copy the 
built openssl files to lib & inc.
Follow the openssl build instructions from INSTALL.W32 for VC++, then:
> copy %openssl_dir%\out32dll\libeay32.lib  %ipmiutil_dir%\lib
> copy %openssl_dir%\out32dll\ssleay32.lib  %ipmiutil_dir%\lib
> copy %openssl_dir%\out32dll\libeay32.dll  %ipmiutil_dir%\util
> copy %openssl_dir%\out32dll\ssleay32.dll  %ipmiutil_dir%\util
> mkdir %ipmiutil_dir%\lib\lanplus\inc\openssl
> copy %openssl_dir%\inc32\openssl\*.h %ipmiutil_dir%\lib\lanplus\inc\openssl


--------------------------
6.0  PROBLEMS
--------------------------
Note that each tool has an option for additional debug output (-x).

Contact maintainer for best-effort support:  arcress@users.sourceforge.net
or use the ipmiutil-developer mailing list:
       http://lists.sourceforge.net/lists/listinfo/ipmiutil-developers 

Return code = 0 means success, negative numbers indicate failure, and a
positive return code represents a completion code.
Completion Codes are defined in IPMI 1.5, Table 5-2, and are also included 
below in both hex and decimal format:

Note: completion codes 0x80-0x9f may vary depending on the command 

Code  Dec  Description
----  ---  -----------------------------------------
0x00,   0, "Command completed successfully",
0x80, 128, "Invalid Session Handle or Empty Buffer",
0x81, 129, "Lost Arbitration",
0x82, 130, "Bus Error",
0x83, 131, "NAK on Write - busy",
0x84, 132, "Truncated Read",
0xC0, 192, "Node Busy",
0xC1, 193, "Invalid Command",
0xC2, 194, "Command invalid for given LUN",
0xC3, 195, "Timeout while processing command",
0xC4, 196, "Out of space",
0xC5, 197, "Invalid Reservation ID, or cancelled",
0xC6, 198, "Request data truncated",
0xC7, 199, "Request data length invalid",
0xC8, 200, "Request data field length limit exceeded",
0xC9, 201, "Parameter out of range",
0xCA, 202, "Cannot return requested number of data bytes",
0xCB, 203, "Requested sensor, data, or record not present",
0xCC, 204, "Invalid data field in request",
0xCD, 205, "Command illegal for this sensor/record type",
0xCE, 206, "Command response could not be provided",
0xCF, 207, "Cannot execute duplicated request",
0xD0, 208, "SDR Repository in update mode, no response",
0xD1, 209, "Device in firmware update mode, no response",
0xD2, 210, "BMC initialization in progress, no response",
0xD3, 211, "Destination unavailable",
0xD4, 212, "Cannot execute command. Insufficient privilege level",
0xD5, 213, "Cannot execute command. Request parameters not supported",
0xFF, 255, "Unspecified error"

--------------------------
7.0  RELATED INFORMATION
--------------------------
History of ipmiutil:
This project started in October 2001 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. 
This code was first included in MontaVista CGE Linux 2.1 in July 2002. 
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. Compile flags for Windows 2000 & 2003 support were added in 
Jan 2004. 
In August 2004, 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 November 2004, support for the FreeIPMI library was added. 
A Linux rpm and a Windows setup package for ipmiutil is included on the 
Resource CD with Intel carrier-grade servers. 
The ipmiutil (or panicsel) rpm is known to be included in the following 
distributions: MontaVista CGE 2.1/3.0/3.1/4.0, SuSE SLES9, RedFlag 5.0 

Links with information related to the IPMI Management Utilities project.

ipmiutil project, sourceforge http://ipmiutil.sourceforge.net
panicsel project, sourceforge http://panicsel.sourceforge.net
IPMI Specification            http://www.intel.com/design/servers/ipmi/index.htm
OSDL Carrier Grade Linux      http://www.osdl.org/lab_activities/carrier_grade_linux/
Intel imb driver source       http://downloadfinder.intel.com/scripts-df-external/Product_Search.asp?Prod_nm=ipmi*driver*source
Intel imb driver for Windows  http://downloadfinder.intel.com/scripts-df-external/Product_Search.aspx?Prod_nm=imb+driver
OpenIPMI project              http://sourceforge.net/projects/openipmi/
  by Corey Minyard of MontaVista     (home= http://openipmi.sourceforge.net)
ipmitools project by San Mehat http://sourceforge.net/projects/ipmitools/
   valinux IPMI driver        http://cvs.sf.net/cgi-bin/viewcvs.cgi/ipmitools/ipmitools/kernel/kcs/patches/2.4.x/ 
GNU FreeIPMI library project  http://www.gnu.org/software/freeipmi/
LANDesk IPMI driver/daemon    http://www.landesk.com/Support/ (or see
                              Intel System Resource CD for Intel servers)
lm-sensors project            http://secure.netroedge.com/~lm78/
dmidecode project             http://www.nongnu.org/dmidecode/
IPMI vendor/mfg IDs           http://www.iana.org/assignments/enterprise-numbers

