Does the Raspberry Pi 4 have a hardware watchdog timer like the RPi3 does? If it does, which kernel module should I load in order to use it?

I'm running Raspbian Buster, kernel 4.19.93-v7l+


  • 1
    What kernel module do you load on the Pi 3 to enable the watchdog?
    – Botspot
    Commented Feb 5, 2020 at 20:20
  • Hi @tiqmj, Yes, Rpi4B has hardware watchdog preinstalled: "Rpi3B+ / Rpi4B Watchdog and LM2956 / LM2941 PSU Remote Control Problem" - raspberrypi.stackexchange.com/questions/99584/…. Good luck and cheers.
    – tlfong01
    Commented Feb 6, 2020 at 1:30
  • @Botspot according to this, bcm2835_wdt. Altough maybe the preferred way is to use /boot/config.txt like @Milliways sugests.
    – tlqmj
    Commented Feb 6, 2020 at 12:21

4 Answers 4


To check if the watchdog is available, you can run wdctl which gives you a bit more info than just looking at /dev/watchdog.

To start using the watchdog, you can still use the old watchdog daemon mentioned in the other answers, but since 2012 systemd has had built in support for watchdogs that doesn't require installing anything else and offers better compatibility with the shutdown/reboot process.

To use this, edit /etc/systemd/system.conf and set these values as required:

  • RuntimeWatchdogSec - reboot the system if nothing contacts the watchdog within this time (specify the value like 2min, 10s, etc.) This defaults to off, meaning the system will never reboot when it freezes. For Raspberry Pi, this value must be shorter than 15s to avoid a reboot loop in present kernels (driver patch in progress - Dec 2023).
  • RebootWatchdogSec - different timeout used when rebooting, in case you need more (or less) time. Defaults to 10min. Note that this only applies during the last phase of the reboot, once all running programs have been terminated. If your programs take too long to shut down, this value won't help (see below).
  • ShutdownWatchdogSec - this is no longer used, it was renamed to RebootWatchdogSec in July 2019.
  • KExecWatchdogSec - ignore this unless you know what kexec is and you know you are using it. (It's used when faking a reset by just restarting the kernel - the lack of a hardware reset means the watchdog is still running and may expire before everything has finished loading again).
  • WatchdogDevice - this can be ignored as the default of /dev/watchdog is fine.
  • DefaultTimeoutStopSec - how long to wait for each program to exit when shutting down or rebooting. Defaults to 90s but I am impatient so I set this to 10s as anything on my system that takes longer than five seconds is broken, so a 10 second timeout is just fine.

If you are using a Pi 2 or older, set dtparam=watchdog=on in /boot/config.txt and reboot. This is enabled by default from the Raspberry Pi 3 onwards, so you can skip this step with recent models.

You don't need to run systemctl enable watchdog (that's for the old method mentioned above) but you will need to run systemctl daemon-reload (or reboot) after making these changes before they will take effect.

  • 1
    Thanks for this write up. How can one verify that the watchdog is working? I've read you can do a fork-bomb or a NULL pointer de-reference in the other answer. Would that be sufficient?
    – ScottN
    Commented Jul 13, 2020 at 23:47
  • 1
    Well I kinda got my answer, because I did the steps provided, but you said just a reboot or systemctl daemon-reload would work, the system was rebooting because no watchdog was being updated. I looked further and there is no watchdog service/unit file as the system complains when running systemctl status watchdog gives Unit watchdog.service could not be found. Are you sure something isn't supposed to be installed? Or do you have an example Unit file that can be created for the watchdog service?
    – ScottN
    Commented Jul 13, 2020 at 23:56
  • It sounds like it's working (the fact that it reboots suggests it's picking it up the watchdog) so if you're still having problems it'd probably be best to ask over at the Raspberry Pi forums as there will probably be a bit of back-and-forth trying to nut out the problem, which isn't really suited for squishing into the comments section on a Q&A site like here!
    – Malvineous
    Commented Jul 14, 2020 at 7:47
  • 1
    I get a reboot loop with this on a Pi 4. I set RuntimeWatchdogSec to 60s? Commented Feb 7, 2023 at 1:04

For the RaspberryPi4 it's more straightforward than for earlier software as much of the configuration scaffolding is already in place.

Edit /etc/systemd/system.conf adding the line


then reload systemd's configuration with the command sudo systemctl daemon-reload.

Do not use values greater than 15 seconds, as that's the limit for the RPi4's countdown timer.

Optionally, if you want the watchdog timer to also detect systemd crashing then edit /boot/cmdline.txt to add to the existing line the new kernel parameter


then reboot the system with the command sudo systemctl reboot.

  • very good point on nowayout
    – kaptan
    Commented Dec 14, 2023 at 23:25

Do NOT attempt to load ANY modules.

Add dtparam=watchdog=on to config.txt and Device Tree will load the module.

NOTE you also need to enable the watchdog service. See https://raspberrypi.stackexchange.com/a/68332/8697

  • 1
    Is it smart, in general, to never load any modules? What's wrong/dangerous about it?
    – Botspot
    Commented Feb 6, 2020 at 12:54
  • You only have to edit config.txt on a Pi 2 and earlier. It is on by default since the Pi 3. There is nothing wrong with loading any modules. If the hardware is not present the module will just return an error. However most modules will load automatically, so if you do feel the need to load them yourself, you are probably heading down the wrong track.
    – Malvineous
    Commented Jun 6, 2020 at 11:33

Ok, after some testing it seems like the watchdog module is loaded by default. To check for yourself, see if /dev/watchdog exists.

This is the guide what worked for me.

  • In 2021, I found this the simplest, shortest and easiest way to get the watchdog up and running on a Pi 4: diode.io/raspberry%20pi/…
    – Adam Reis
    Commented May 29, 2021 at 0:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.