# HW Watchdog Setup

## UGREEN NAS Hardware Watchdog
Before installing another OS, you'll need to temporarily disable the watchdog in the BIOS. Whichever live disk is being used likely doesn't support it, and the newly installed OS won't support it either until we configure it.

1. Boot the NAS, and right when the `UGREEN` logo shows up, hold `ctrl` and press `F12` a few times to get to the boot menu
2. Choose `setup` (last item in the list)
3. Under the `FAST` tab, change the watchdog unit from `second` to `disabled`

After the watchdog is correctly configured in the new OS, you can reenable the watchdog by reverting step 3.

### `systemd`-based linux systems

Pulling the disk off the NAS, the second partition is the squashfs used as the base for the overlayFS. The watchdog is setup to be fed in systemd, and the config for that is in `/etc/systemd/system.conf`:

```
[Manager]
RuntimeWatchdogSec=120
RuntimeWatchdogPreSec=off
RebootWatchdogSec=2min
KExecWatchdogSec=off
WatchdogDevice=/dev/watchdog
DefaultTimeoutStopSec=30s
```

So for any other OS, we'll need to confirm that the watchdog is found and is at `/dev/watchdog`, then this same config should work.
If the `it87_wdt` module is not automatically loaded, you'll need to install a watchdog daemon, such as `watchdog`, which will detect and load the correct module. If that *still* doesn't automatically load it, you can also add `it87_wdt` to `/etc/modules`.

Reboot and confirm the watchdog is found by checking `dmesg`, or running `wdctl`, you should see `IT87` mentioned somewhere

### Proxmox

Proxmox's high availability services already contain functionality to manage the watchdog.

First, ensure the following services are enabled:

```sh
systemctl enable pve-ha-lrm
systemctl enable pve-ha-crm
systemctl enable corosync
```

These will in turn enable the `watchdog-mux` service, which can be configured to load the correct module.

Edit `/etc/default/pve-ha-manager` to contain the correct module:

```sh
# select watchdog module (default is softdog)
WATCHDOG_MODULE=it87_wdt
```

Reboot and confirm the watchdog is found by checking `dmesg`, or running `wdctl`, you should see `IT87` mentioned somewhere