/* Copyright (C) 1991‐2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it
and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later ver‐
sion.
The GNU C Library is distributed in the hope that it will be
useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Pub‐
lic
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */ /* This header is separate
from features.h so that the compiler can
include it implicitly at the start of every compilation. It
must
not itself include <features.h> or any other header that in‐
cludes
<features.h> because the implicit include comes before any
feature
test macros that may be defined in a source file before it
first
explicitly includes a system header. GCC knows the name of
this
header in order to preinclude it. */ /* We do support the IEC
559 math functionality, real and complex. */ /* wchar_t uses
ISO/IEC 10646 (2nd ed., published 2011‐03‐15) /
bmc-watchdog(8) System Commands bmc-watchdog(8)
Unicode 6.0. */ /* We do not support C11 <threads.h>. */
NAMEbmc-watchdog - BMC watchdog timer daemon and control utility
SYNOPSISbmc-watchdog command [OPTION...] [COMMAND_OPTIONS...]
DESCRIPTIONbmc-watchdog controls a Baseboard Management Controller (BMC) watchdog
timer. The bmc-watchdog tool typically executes as a cronjob or daemon
to manage the watchdog timer. A user must be root in order to run bmc-
watchdog.
Listed below are bmc-watchdog details, option details, examples, and
known issues. For a general introduction to FreeIPMI please see
freeipmi(7).
BMC WATCHDOG DETAILS
A BMC watchdog timer is part of the Intelligent Platform Management
Interface (IPMI) specification and is only available to BMCs that are
compliant with IPMI. When a BMC watchdog timer is started, it begins
counting down to zero from some positive number of seconds. When the
timer hits zero, the timer will execute a pre-configured pre-timeout
interrupt and/or timeout action.
In order to stop the pre-timeout interrupt or timeout action from being
executed, the watchdog timer must be periodically reset back to its
initial beginning value.
The BMC watchdog timer automatically stops itself when the machine is
rebooted. Therefore, when a machine is brought up, the BMC watchdog
timer must be setup again before it can be used.
Typically, a BMC watchdog timer is used to automatically reset a
machine that has crashed. When the operating system first starts up,
the BMC timer is set to its initial countdown value. At periodic inter‐
vals, when the operating system is functioning properly, the watchdog
timer can be reset by the OS or a userspace program. Thus, the timer
never counts down to zero. When the system crashes, the timer cannot be
reset by the OS or userspace program. Eventually, the timer will count‐
down to zero and reset the machine.
See EXAMPLES below for examples of how bmc-watchdog is commonly used.
COMMANDS
The following commands are available to bmc-watchdog.
-s, --set
Set BMC Watchdog Configuration. BMC watchdog timer configuration
values can be set using the set command options listed below
under SET OPTIONS. If a particular configuration parameter is
not specified on the command line, the current configuration of
that parameter will not be changed.
-g, --get
Get BMC Watchdog Configuration and State. The current configura‐
tion and state is printed to standard output.
-r, --reset
Reset BMC Watchdog Timer.
-t, --start
Start BMC Watchdog Timer. Does nothing if the timer is currently
running. Identical to --reset command when the timer is stopped
with the exception of the start command options listed below
under START OPTIONS.
-y, --stop
Stop BMC Watchdog Timer. Stops the current timer.
-c, --clear
Clear BMC Watchdog Configuration. Clears all configuration val‐
ues for the watchdog timer, except for timer use, which is kept
at its current value.
-d, --daemon
Run bmc-watchdog as a daemon. Configurable BMC watchdog timer
options are listed below under DAEMON OPTIONS. The configuration
values are set once, then the daemon will reset the timer at
specified periodic intervals. The daemon can be stopped using
the --stop command, --clear command, or by setting the
stop_timer flag on the --set command.
GENERAL OPTIONS
The following options are general options for configuring IPMI communi‐
cation and executing general tool commands. These options are generic
and can be used by any command.
-D IPMIDRIVER, --driver-type=IPMIDRIVER
Specify the driver type to use instead of doing an auto selec‐
tion. The currently available inband drivers are KCS, SSIF,
OPENIPMI, and SUNBMC.
--disable-auto-probe
Do not probe in-band IPMI devices for default settings.
--driver-address=DRIVER-ADDRESS
Specify the in-band driver address to be used instead of the
probed value. DRIVER-ADDRESS should be prefixed with "0x" for a
hex value and '0' for an octal value.
--driver-device=DEVICE
Specify the in-band driver device path to be used instead of the
probed path.
--register-spacing=REGISTER-SPACING
Specify the in-band driver register spacing instead of the
probed value. Argument is in bytes (i.e. 32bit register spacing
= 4)
--target-channel-number=CHANNEL-NUMBER
Specify the in-band driver target channel number to send IPMI
requests to.
--target-slave-address=SLAVE-ADDRESS
Specify the in-band driver target slave number to send IPMI
requests to.
-v, --verbose-logging
Increase verbosity of logging.
-n, --no-logging
Turns off all logging done by bmc-watchdog.
--config-file=FILE
Specify an alternate configuration file.
-W WORKAROUNDS, --workaround-flags=WORKAROUNDS
Specify workarounds to vendor compliance issues. Multiple work‐
arounds can be specified separated by commas. A special command
line flag of "none", will indicate no workarounds (may be useful
for overriding configured defaults). See WORKAROUNDS below for a
list of available workarounds.
--debug
Turn on debugging.
-?, --help
Output a help list and exit.
--usage
Output a usage message and exit.
-V, --version
Output the program version and exit.
SET OPTIONS
The following options can be used by the set command to set or clear
various BMC watchdog configuration parameters.
-u INT, --timer-use=INT
Set timer use. The timer use value can be set to one of the fol‐
lowing: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5
= OEM.
-m INT, --stop-timer=INT
Set Stop Timer Flag. A flag value of 0 stops the current BMC
watchdog timer. A value of 1 doesn't turn off the current watch‐
dog timer.
-l INT, --log=INT
Set Log Flag. A flag value of 0 turns logging on. A value of 1
turns logging off.
-a INT, --timeout-action=INT
Set timeout action. The timeout action can be set to one of the
following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 =
Power Cycle.
-p INT, --pre-timeout-interrupt=INT
Set pre-timeout interrupt. The pre timeout interrupt can be set
to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messag‐
ing Interrupt.
-z SECONDS, --pre-timeout-interval=SECONDS
Set pre-timeout interval in seconds.
-F, --clear-bios-frb2
Clear BIOS FRB2 Timer Use Flag.
-P, --clear-bios-post
Clear BIOS POST Timer Use Flag.
-L, --clear-os-load
Clear OS Load Timer Use Flag.
-S, --clear-sms-os
Clear SMS/OS Timer Use Flag.
-O, --clear-oem
Clear OEM Timer Use Flag.
-i SECONDS, --initial-countdown=SECONDS
Set initial countdown in seconds.
-w, --start-after-set
Start timer after set command if timer is stopped. This is typi‐
cally used when bmc-watchdog is used as a cronjob. This can be
used to automatically start the timer after it has been set the
first time.
-x, --reset-after-set
Reset timer after set command if timer is running.
-j, --start-if-stopped
Don't execute set command if timer is stopped, just start timer.
-k, --reset-if-running
Don't execute set command if timer is running, just reset timer.
This is typically used when bmc-watchdog is used as a cronjob.
This can be used to reset the timer after it has been initially
started.
START OPTIONS
The following options can be used by the start command.
-G INT, --gratuitous-arp=INT
Suspend or don't suspend gratuitous ARPs while the BMC timer is
running. A flag value of 1 suspends gratuitous ARPs. A value of
0 will not suspend gratuitous ARPs. If this option is not speci‐
fied, gratuitous ARPs will not be suspended.
-A INT, --arp-response=INT
Suspend or don't suspend BMC-generated ARP responses while the
BMC timer is running. A flag value of 1 suspends ARP responses.
A value of 0 will not suspend ARP responses. If this option is
not specified, ARP responses will not be suspended.
DAEMON OPTIONS
The following options can be used by the daemon command to set the ini‐
tial BMC watchdog configuration parameters.
-u INT, --timer-use=INT
Set timer use. The timer use value can be set to one of the fol‐
lowing: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5
= OEM.
-l INT, --log=INT
Set Log Flag. A flag value of 0 turns logging on. A value of 1
turns logging off.
-a INT, --timeout-action=INT
Set timeout action. The timeout action can be set to one of the
following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 =
Power Cycle.
-p INT, --pre-timeout-interrupt=INT
Set pre-timeout interrupt. The pre timeout interrupt can be set
to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messag‐
ing Interrupt.
-z SECONDS, --pre-timeout-interval=SECONDS
Set pre-timeout interval in seconds.
-F, --clear-bios-frb2
Clear BIOS FRB2 Timer Use Flag.
-P, --clear-bios-post
Clear BIOS POST Timer Use Flag.
-L, --clear-os-load
Clear OS Load Timer Use Flag.
-S, --clear-sms-os
Clear SMS/OS Timer Use Flag.
-O, --clear-oem
Clear OEM Timer Use Flag.
-i SECONDS, --initial-countdown=SECONDS
Set initial countdown in seconds.
-G INT, --gratuitous-arp=INT
Suspend or don't suspend gratuitous ARPs while the BMC timer is
running. A flag value of 1 suspends gratuitous ARPs. A value of
0 will not suspend gratuitous ARPs. If this option is not speci‐
fied, gratuitous ARPs will not be suspended.
-A INT, --arp-response=INT
Suspend or don't suspend BMC-generated ARP responses while the
BMC timer is running. A flag value of 1 suspends ARP responses.
A value of 0 will not suspend ARP responses. If this option is
not specified, ARP responses will not be suspended.
-e, --reset-period
Time interval to wait before resetting timer. The default is 60
seconds.
ERRORS
Errors are logged to syslog.
WORKAROUNDS
With so many different vendors implementing their own IPMI solutions,
different vendors may implement their IPMI protocols incorrectly. The
following describes a number of workarounds currently available to han‐
dle discovered compliance issues. When possible, workarounds have been
implemented so they will be transparent to the user. However, some will
require the user to specify a workaround be used via the -W option.
The hardware listed below may only indicate the hardware that a problem
was discovered on. Newer versions of hardware may fix the problems
indicated below. Similar machines from vendors may or may not exhibit
the same problems. Different vendors may license their firmware from
the same IPMI firmware developer, so it may be worthwhile to try work‐
arounds listed below even if your motherboard is not listed.
If you believe your hardware has an additional compliance issue that
needs a workaround to be implemented, please contact the FreeIPMI main‐
tainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
assumeio - This workaround flag will assume inband interfaces communi‐
cate with system I/O rather than being memory-mapped. This will work
around systems that report invalid base addresses. Those hitting this
issue may see "device not supported" or "could not find inband device"
errors. Issue observed on HP ProLiant DL145 G1.
spinpoll - This workaround flag will inform some inband drivers (most
notably the KCS driver) to spin while polling rather than putting the
process to sleep. This may significantly improve the wall clock running
time of tools because an operating system scheduler's granularity may
be much larger than the time it takes to perform a single IPMI message
transaction. However, by spinning, your system may be performing less
useful work by not contexting out the tool for a more useful task.
ignorestateflag - This workaround option will ignore the BMC timer
state flag (indicating if the timer is running or stopped) when running
in daemon mode. On some BMCs, the flag is broken and will never report
that a BMC timer is running, even if it is. The workaround will take
notice of changes in the countdown seconds to determine if a timer is
running or stopped. With this type of implementation, the reset-period
must be large enough to ensure minor fluctuations in the countdown will
not affect the workaround. Due to the implementation of this work‐
around, if another process stops the watchdog timer, it may be
detectable. This option is confirmed to work around compliances issues
on Sun x4100, x4200, and x4500.
EXAMPLES
Setup a bmc-watchdog daemon that resets the machine after 15 minutes
(900 seconds) if the OS has crashed (see default bmc-watchdog rc script
/etc/init.d/bmc-watchdog for a more complete example):
bmc-watchdog-d -u 4 -p 0 -a 1 -i 900
DIAGNOSTICS
Upon successful execution, exit status is 0. On error, exit status is
1.
KNOWN ISSUES
Bmc-watchdog may fail to reset the watchdog timer if it is not sched‐
uled properly. It is always recommended that bmc-watchdog be executed
with a high scheduling priority.
On some machines, the hardware based SMI Handler may disable a proces‐
sor after a watchdog timer timeout if the timer use is set to something
other than SMS/OS.
REPORTING BUGS
Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
COPYRIGHT
Copyright (C) 2007-2012 Lawrence Livermore National Security, LLC.
Copyright (C) 2004-2007 The Regents of the University of California.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.
SEE ALSOfreeipmi(7)
http://www.gnu.org/software/freeipmi/
bmc-watchdog 1.2.9 2014-05-01 bmc-watchdog(8)