Recipe: Free hardware watchdog by enabling iTCO on Intel chipsets

Most or all of the Intel boards we’re likely to use for HiveOS have a hardware watchdog built in, called iTCO. A little bit of research shows that some of these work correctly, and some of them do not.

It works for me on a BTC-S37.

To test if it works on your system (as root):

modprobe iTCO_wdt
cat >> /dev/watchdog

And press enter – twice. Do nothing else; just leave cat running. Within a minute or two, the machine should do a hard reset.

If it does reset properly, and it comes back up and starts mining, then you have a board that works. Cool beans.

Here’s how to enable the watchdog at boot in HiveOS:

  1. To load the module at boot, just uncomment the line that says iTCO_wdt in /etc/modprobe.d/blacklist-watchdog.conf

  2. systemd has a built-in watchdog poker. To turn it on, edit /etc/systemd/system.conf and uncomment the line that says RuntimeWatchdogSec= and put a value there, like 10, to tell systemd to poke /dev/watchdog every 10 seconds. eg:

    RuntimeWatchdogSec=10

There is no step 3. That’s all there is to do.

These changes will take effect on the next system startup.

If you want to test it after rebooting, you can cause a deliberate kernel panic and system hang like this:

sudo echo c > /proc/sysrq-trigger

If both parts (the iTCO module and the systemd watchdog poker) are working, the hardware watchdog will reset the system within a couple of minutes. Just as it will from then on if the system crashes for some reason.

Enjoy.

1 Like