home | help
bmc-watchdog(8) 		 System Commands		 bmc-watchdog(8)

NAME
     bmc-watchdog - BMC watchdog timer daemon and control utility

SYNOPSIS
     bmc-watchdog command [OPTION...] [COMMAND_OPTIONS...]

DESCRIPTION
     Bmc-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-watch-
     dog.

     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 Inter-
     face (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 ex-
     ecuted,  the  watchdog timer must be periodically reset back to its initial
     beginning value.

     The BMC watchdog timer automatically stops itself when the machine  is  re-
     booted.  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 intervals, when the  op-
     erating  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 countdown to zero  and  reset	the  ma-
     chine.

     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 speci-
	    fied on the command line, the current configuration of that  parame-
	    ter will not be changed.

     -g, --get
	    Get  BMC Watchdog Configuration and State. The current configuration
	    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  values
	    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  op-
	    tions  are listed below under DAEMON OPTIONS. The configuration val-
	    ues are set once, then the daemon will reset the timer at  specified
	    periodic  intervals. The daemon can be stopped using the --stop com-
	    mand, --clear command, or by setting  the  stop_timer  flag  on  the
	    --set command.

GENERAL OPTIONS
     The  following  options are general options for configuring IPMI communica-
     tion 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 selection.
	    The currently available inband  drivers  are  KCS,	SSIF,  OPENIPMI,
	    SUNBMC, and INTELDCMI.

     --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 re-
	    quests 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
	    workarounds  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  vari-
     ous BMC watchdog configuration parameters.

     -u INT, --timer-use=INT
	    Set  timer use. The timer use value can be set to one of the follow-
	    ing: 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  watch-
	    dog timer. A value of 1 doesn't turn off the current watchdog 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 fol-
	    lowing: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 = Power Cy-
	    cle.

     -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 = Messaging  In-
	    terrupt.

     -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 typically
	    used when bmc-watchdog is used as a cronjob. This can be used to au-
	    tomatically 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 run-
	    ning.  A flag value of 1 suspends gratuitous ARPs. A value of 0 will
	    not suspend gratuitous ARPs. If this option is not specified, gratu-
	    itous 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  speci-
	    fied, ARP responses will not be suspended.

DAEMON OPTIONS
     The  following options can be used by the daemon command to set the initial
     BMC watchdog configuration parameters.

     -u INT, --timer-use=INT
	    Set timer use. The timer use value can be set to one of the  follow-
	    ing: 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 fol-
	    lowing: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 = Power Cy-
	    cle.

     -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 = Messaging  In-
	    terrupt.

     -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 run-
	    ning.  A flag value of 1 suspends gratuitous ARPs. A value of 0 will
	    not suspend gratuitous ARPs. If this option is not specified, gratu-
	    itous 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  speci-
	    fied, ARP responses will not be suspended.

     -e, --reset-period
	    Time interval to wait before resetting timer. The default is 60 sec-
	    onds.

ERRORS
     Errors are logged to syslog.

WORKAROUNDS
     With  so many different vendors implementing their own IPMI solutions, dif-
     ferent vendors may implement their IPMI protocols incorrectly. The  follow-
     ing describes a number of workarounds currently available to handle discov-
     ered 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 prob-
     lems. Different vendors may license  their  firmware  from  the  same  IPMI
     firmware developer, so it may be worthwhile to try workarounds 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 maintainers  on
     <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.

     assumeio  -  This workaround flag will assume inband interfaces communicate
     with system I/O rather than being memory-mapped. This will work around sys-
     tems that report invalid base addresses. Those hitting this issue	may  see
     "device not supported" or "could not find inband device" errors.  Issue ob-
     served on HP ProLiant DL145 G1.

     spinpoll  -  This workaround flag will inform some inband drivers (most no-
     tably 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 workaround, 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:
	     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  scheduled
     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  processor
     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-2015 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 un-
     der 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 ALSO
     freeipmi(7)

     http://www.gnu.org/software/freeipmi/

bmc-watchdog 1.6.16		   2025-09-15			 bmc-watchdog(8)

home | help