IGETEVENT(8) | System Manager's Manual | IGETEVENT(8) |
ipmiutil_getevt - wait for IPMI events
ipmiutil getevt [-abosx -t secs -N node -U user -P/-R pswd -EFJTVY]
ipmiutil getevt 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 output for each event. It is designed as a scriptable command-line utility, 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 specified. 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 simultaneously, 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 custom mechanism, see
getevent_mv(). This method is used if the OpenIPMI driver is detected, and
no other method is specified.
The Async Event method:
This only gets certain Asynchronous requests from the BMC to an SMS OS
service, 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. This method is only supported via the Intel IMB and OpenIPMI
driver interfaces. There is an init script provided with ipmiutil to
automate the task of starting this async event daemon.
# chkconfig --add ipmiutil_asy (skip this if no chkconfig)
# /etc/init.d/ipmiutil_asy start
This listens for IPMI LAN requests for soft-shutdown, and logs the output to
/var/log/ipmiutil_asy.log
Command line options are described below.
ipmiutil(8) ialarms(8) iconfig(8) icmd(8) idiscover(8) ievents(8) ifru(8) ihealth(8) ilan(8) ireset(8) isel(8) isensor(8) iserial(8) isol(8) iwdt(8)
See http://ipmiutil.sourceforge.net/ for the latest version of ipmiutil and any bug fix list.
Copyright (C) 2009 Kontron America, Inc.
See the file COPYING in the distribution for more details regarding redistribution.
This utility is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
Andy Cress <arcress at users.sourceforge.net>
Version 1.2: 17 Feb 2010 |