Linux supports several types of watchdog hardware.
Is there a way to detect the available hardware watchdogs and load the appropriate kernel module (and "softdog" as fallback solution)?
I guess, just trying all available kernel modules is not an optimal solution.
EDIT:
I am surprised that modern systems do not have some kind of watchdog timer built into the CPU (at least no module is loaded for an AMD Athlon II). Are hardware watchdogs rare on consumer/prosumer systems?
Typically, if they are available, the kernel does load all modules that correspond to hardware found in the system during boot-up. If, for some reason, these devices are blacklisted or otherwise ignored during boot-up, you could use the
lspci
/lsusb
utilities to see what hardware is attached to the system and respond accordingly.As far as loading "softdog", that's a matter of some proper scripting around the tools above.