1bmc-watchdog(8) System Commands bmc-watchdog(8)
2
3
4
6 bmc-watchdog - BMC watchdog timer daemon and control utility
7
9 bmc-watchdog command [OPTION...] [COMMAND_OPTIONS...]
10
12 bmc-watchdog controls a Baseboard Management Controller (BMC) watchdog
13 timer. The bmc-watchdog tool typically executes as a cronjob or daemon
14 to manage the watchdog timer. A user must be root in order to run bmc-
15 watchdog.
16
17 Listed below are bmc-watchdog details, option details, examples, and
18 known issues. For a general introduction to FreeIPMI please see
19 freeipmi(7).
20
21
23 A BMC watchdog timer is part of the Intelligent Platform Management
24 Interface (IPMI) specification and is only available to BMCs that are
25 compliant with IPMI. When a BMC watchdog timer is started, it begins
26 counting down to zero from some positive number of seconds. When the
27 timer hits zero, the timer will execute a pre-configured pre-timeout
28 interrupt and/or timeout action.
29
30 In order to stop the pre-timeout interrupt or timeout action from being
31 executed, the watchdog timer must be periodically reset back to its
32 initial beginning value.
33
34 The BMC watchdog timer automatically stops itself when the machine is
35 rebooted. Therefore, when a machine is brought up, the BMC watchdog
36 timer must be setup again before it can be used.
37
38 Typically, a BMC watchdog timer is used to automatically reset a
39 machine that has crashed. When the operating system first starts up,
40 the BMC timer is set to its initial countdown value. At periodic inter‐
41 vals, when the operating system is functioning properly, the watchdog
42 timer can be reset by the OS or a userspace program. Thus, the timer
43 never counts down to zero. When the system crashes, the timer cannot be
44 reset by the OS or userspace program. Eventually, the timer will count‐
45 down to zero and reset the machine.
46
47 See EXAMPLES below for examples of how bmc-watchdog is commonly used.
48
49
51 The following commands are available to bmc-watchdog.
52
53 -s, --set
54 Set BMC Watchdog Configuration. BMC watchdog timer configuration
55 values can be set using the set command options listed below
56 under SET OPTIONS. If a particular configuration parameter is
57 not specified on the command line, the current configuration of
58 that parameter will not be changed.
59
60 -g, --get
61 Get BMC Watchdog Configuration and State. The current configura‐
62 tion and state is printed to standard output.
63
64 -r, --reset
65 Reset BMC Watchdog Timer.
66
67 -t, --start
68 Start BMC Watchdog Timer. Does nothing if the timer is currently
69 running. Identical to --reset command when the timer is stopped
70 with the exception of the start command options listed below
71 under START OPTIONS.
72
73 -y, --stop
74 Stop BMC Watchdog Timer. Stops the current timer.
75
76 -c, --clear
77 Clear BMC Watchdog Configuration. Clears all configuration val‐
78 ues for the watchdog timer, except for timer use, which is kept
79 at its current value.
80
81 -d, --daemon
82 Run bmc-watchdog as a daemon. Configurable BMC watchdog timer
83 options are listed below under DAEMON OPTIONS. The configuration
84 values are set once, then the daemon will reset the timer at
85 specified periodic intervals. The daemon can be stopped using
86 the --stop command, --clear command, or by setting the
87 stop_timer flag on the --set command.
88
90 The following options are general options for configuring IPMI communi‐
91 cation and executing general tool commands. These options are generic
92 and can be used by any command.
93
94 -D IPMIDRIVER, --driver-type=IPMIDRIVER
95 Specify the driver type to use instead of doing an auto selec‐
96 tion. The currently available inband drivers are KCS, SSIF,
97 OPENIPMI, and SUNBMC.
98
99 --disable-auto-probe
100 Do not probe in-band IPMI devices for default settings.
101
102 --driver-address=DRIVER-ADDRESS
103 Specify the in-band driver address to be used instead of the
104 probed value. DRIVER-ADDRESS should be prefixed with "0x" for a
105 hex value and '0' for an octal value.
106
107 --driver-device=DEVICE
108 Specify the in-band driver device path to be used instead of the
109 probed path.
110
111 --register-spacing=REGISTER-SPACING
112 Specify the in-band driver register spacing instead of the
113 probed value. Argument is in bytes (i.e. 32bit register spacing
114 = 4)
115
116 --target-channel-number=CHANNEL-NUMBER
117 Specify the in-band driver target channel number to send IPMI
118 requests to.
119
120 --target-slave-address=SLAVE-ADDRESS
121 Specify the in-band driver target slave number to send IPMI
122 requests to.
123
124 -v, --verbose-logging
125 Increase verbosity of logging.
126
127 -n, --no-logging
128 Turns off all logging done by bmc-watchdog.
129
130 --config-file=FILE
131 Specify an alternate configuration file.
132
133 -W WORKAROUNDS, --workaround-flags=WORKAROUNDS
134 Specify workarounds to vendor compliance issues. Multiple work‐
135 arounds can be specified separated by commas. A special command
136 line flag of "none", will indicate no workarounds (may be useful
137 for overriding configured defaults). See WORKAROUNDS below for a
138 list of available workarounds.
139
140 --debug
141 Turn on debugging.
142
143 -?, --help
144 Output a help list and exit.
145
146 --usage
147 Output a usage message and exit.
148
149 -V, --version
150 Output the program version and exit.
151
153 The following options can be used by the set command to set or clear
154 various BMC watchdog configuration parameters.
155
156 -u INT, --timer-use=INT
157 Set timer use. The timer use value can be set to one of the fol‐
158 lowing: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5
159 = OEM.
160
161 -m INT, --stop-timer=INT
162 Set Stop Timer Flag. A flag value of 0 stops the current BMC
163 watchdog timer. A value of 1 doesn't turn off the current watch‐
164 dog timer.
165
166 -l INT, --log=INT
167 Set Log Flag. A flag value of 0 turns logging on. A value of 1
168 turns logging off.
169
170 -a INT, --timeout-action=INT
171 Set timeout action. The timeout action can be set to one of the
172 following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 =
173 Power Cycle.
174
175 -p INT, --pre-timeout-interrupt=INT
176 Set pre-timeout interrupt. The pre timeout interrupt can be set
177 to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messag‐
178 ing Interrupt.
179
180 -z SECONDS, --pre-timeout-interval=SECONDS
181 Set pre-timeout interval in seconds.
182
183 -F, --clear-bios-frb2
184 Clear BIOS FRB2 Timer Use Flag.
185
186 -P, --clear-bios-post
187 Clear BIOS POST Timer Use Flag.
188
189 -L, --clear-os-load
190 Clear OS Load Timer Use Flag.
191
192 -S, --clear-sms-os
193 Clear SMS/OS Timer Use Flag.
194
195 -O, --clear-oem
196 Clear OEM Timer Use Flag.
197
198 -i SECONDS, --initial-countdown=SECONDS
199 Set initial countdown in seconds.
200
201 -w, --start-after-set
202 Start timer after set command if timer is stopped. This is typi‐
203 cally used when bmc-watchdog is used as a cronjob. This can be
204 used to automatically start the timer after it has been set the
205 first time.
206
207 -x, --reset-after-set
208 Reset timer after set command if timer is running.
209
210 -j, --start-if-stopped
211 Don't execute set command if timer is stopped, just start timer.
212
213 -k, --reset-if-running
214 Don't execute set command if timer is running, just reset timer.
215 This is typically used when bmc-watchdog is used as a cronjob.
216 This can be used to reset the timer after it has been initially
217 started.
218
220 The following options can be used by the start command.
221
222 -G INT, --gratuitous-arp=INT
223 Suspend or don't suspend gratuitous ARPs while the BMC timer is
224 running. A flag value of 1 suspends gratuitous ARPs. A value of
225 0 will not suspend gratuitous ARPs. If this option is not speci‐
226 fied, gratuitous ARPs will not be suspended.
227
228 -A INT, --arp-response=INT
229 Suspend or don't suspend BMC-generated ARP responses while the
230 BMC timer is running. A flag value of 1 suspends ARP responses.
231 A value of 0 will not suspend ARP responses. If this option is
232 not specified, ARP responses will not be suspended.
233
235 The following options can be used by the daemon command to set the ini‐
236 tial BMC watchdog configuration parameters.
237
238 -u INT, --timer-use=INT
239 Set timer use. The timer use value can be set to one of the fol‐
240 lowing: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5
241 = OEM.
242
243 -l INT, --log=INT
244 Set Log Flag. A flag value of 0 turns logging on. A value of 1
245 turns logging off.
246
247 -a INT, --timeout-action=INT
248 Set timeout action. The timeout action can be set to one of the
249 following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 =
250 Power Cycle.
251
252 -p INT, --pre-timeout-interrupt=INT
253 Set pre-timeout interrupt. The pre timeout interrupt can be set
254 to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messag‐
255 ing Interrupt.
256
257 -z SECONDS, --pre-timeout-interval=SECONDS
258 Set pre-timeout interval in seconds.
259
260 -F, --clear-bios-frb2
261 Clear BIOS FRB2 Timer Use Flag.
262
263 -P, --clear-bios-post
264 Clear BIOS POST Timer Use Flag.
265
266 -L, --clear-os-load
267 Clear OS Load Timer Use Flag.
268
269 -S, --clear-sms-os
270 Clear SMS/OS Timer Use Flag.
271
272 -O, --clear-oem
273 Clear OEM Timer Use Flag.
274
275 -i SECONDS, --initial-countdown=SECONDS
276 Set initial countdown in seconds.
277
278 -G INT, --gratuitous-arp=INT
279 Suspend or don't suspend gratuitous ARPs while the BMC timer is
280 running. A flag value of 1 suspends gratuitous ARPs. A value of
281 0 will not suspend gratuitous ARPs. If this option is not speci‐
282 fied, gratuitous ARPs will not be suspended.
283
284 -A INT, --arp-response=INT
285 Suspend or don't suspend BMC-generated ARP responses while the
286 BMC timer is running. A flag value of 1 suspends ARP responses.
287 A value of 0 will not suspend ARP responses. If this option is
288 not specified, ARP responses will not be suspended.
289
290 -e, --reset-period
291 Time interval to wait before resetting timer. The default is 60
292 seconds.
293
295 Errors are logged to syslog.
296
298 With so many different vendors implementing their own IPMI solutions,
299 different vendors may implement their IPMI protocols incorrectly. The
300 following describes a number of workarounds currently available to han‐
301 dle discovered compliance issues. When possible, workarounds have been
302 implemented so they will be transparent to the user. However, some will
303 require the user to specify a workaround be used via the -W option.
304
305 The hardware listed below may only indicate the hardware that a problem
306 was discovered on. Newer versions of hardware may fix the problems
307 indicated below. Similar machines from vendors may or may not exhibit
308 the same problems. Different vendors may license their firmware from
309 the same IPMI firmware developer, so it may be worthwhile to try work‐
310 arounds listed below even if your motherboard is not listed.
311
312 If you believe your hardware has an additional compliance issue that
313 needs a workaround to be implemented, please contact the FreeIPMI main‐
314 tainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
315
316 assumeio - This workaround flag will assume inband interfaces communi‐
317 cate with system I/O rather than being memory-mapped. This will work
318 around systems that report invalid base addresses. Those hitting this
319 issue may see "device not supported" or "could not find inband device"
320 errors. Issue observed on HP ProLiant DL145 G1.
321
322 spinpoll - This workaround flag will inform some inband drivers (most
323 notably the KCS driver) to spin while polling rather than putting the
324 process to sleep. This may significantly improve the wall clock running
325 time of tools because an operating system scheduler's granularity may
326 be much larger than the time it takes to perform a single IPMI message
327 transaction. However, by spinning, your system may be performing less
328 useful work by not contexting out the tool for a more useful task.
329
330 ignorestateflag - This workaround option will ignore the BMC timer
331 state flag (indicating if the timer is running or stopped) when running
332 in daemon mode. On some BMCs, the flag is broken and will never report
333 that a BMC timer is running, even if it is. The workaround will take
334 notice of changes in the countdown seconds to determine if a timer is
335 running or stopped. With this type of implementation, the reset-period
336 must be large enough to ensure minor fluctuations in the countdown will
337 not affect the workaround. Due to the implementation of this work‐
338 around, if another process stops the watchdog timer, it may be
339 detectable. This option is confirmed to work around compliances issues
340 on Sun x4100, x4200, and x4500.
341
343 Setup a bmc-watchdog daemon that resets the machine after 15 minutes
344 (900 seconds) if the OS has crashed (see default bmc-watchdog rc script
345 /etc/init.d/bmc-watchdog for a more complete example):
346 bmc-watchdog -d -u 4 -p 0 -a 1 -i 900
347
349 Upon successful execution, exit status is 0. On error, exit status is
350 1.
351
353 Bmc-watchdog may fail to reset the watchdog timer if it is not sched‐
354 uled properly. It is always recommended that bmc-watchdog be executed
355 with a high scheduling priority.
356
357 On some machines, the hardware based SMI Handler may disable a proces‐
358 sor after a watchdog timer timeout if the timer use is set to something
359 other than SMS/OS.
360
362 Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.
363
365 Copyright (C) 2007-2012 Lawrence Livermore National Security, LLC.
366 Copyright (C) 2004-2007 The Regents of the University of California.
367
368 This program is free software; you can redistribute it and/or modify it
369 under the terms of the GNU General Public License as published by the
370 Free Software Foundation; either version 3 of the License, or (at your
371 option) any later version.
372
374 freeipmi(7)
375
376 http://www.gnu.org/software/freeipmi/
377
378
379
380bmc-watchdog 1.2.1 2017-03-22 bmc-watchdog(8)