# Watchdog Timer on Jetson TX1 : How can I change the timeout value and kick WDT?

**URL:** <https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059>\
**Category:** Jetson TX1\
**Created:** [November 10, 2016, 6:12am UTC](https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059 "2016-11-10T06:12:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ktrn23](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@ktrn23](https://forums.developer.nvidia.com/u/ktrn23)\
**Post date:** [November 10, 2016, 6:12am UTC](https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059/1 "2016-11-10T06:12:24Z")

</div>

Hi.

I am trying to use watchdog timer on Jetson TX1.

Firstly, I tried following sample code after setup TX1 by JetPack for L4T 2.1, but it did not work.

```auto
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <linux/watchdog.h>

int main (void) {
	int fd, ret;
	int timeout = 0;
 
	/* open WDT0 device (WDT0 enables itself automatically) */
	fd = open("/dev/watchdog0", O_RDWR);
	if(fd < 0) {
		fprintf(stderr, "Open watchdog device failed!\n");
		return -1;
	}
	/* WDT0 is counting now,check the default timeout value */
	ret = ioctl(fd, WDIOC_GETTIMEOUT, &timeout);
	if(ret) {
		fprintf(stderr, "Get watchdog timeout value failed!\n");
		return -1;
	}
	fprintf(stdout, "Watchdog timeout value: %d\n", timeout);
 
	/* set new timeout value 60s */
	/* Note the value should be within [5, 1000] */
	timeout = 60;
	ret = ioctl(fd, WDIOC_SETTIMEOUT, &timeout);
	if(ret) {
		fprintf(stderr, "Set watchdog timeout value failed!\n");
		return -1;
	}
	fprintf(stdout, "New watchdog timeout value: %d\n", timeout);
 
	/*Kick WDT0, this should be running periodically */
	ret = ioctl(fd, WDIOC_KEEPALIVE, NULL);
	if(ret) {
		fprintf(stderr, "Kick watchdog failed!\n");
		return -1;
	}
}

```

Then, setup TX1 again by building the NVIDIA kernel according to “Tegra Linux Driver Package Development Guide”.  
I set kernel configuration as follows:

```auto
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_SOFT_PLATFORM_WATCHDOG=y
CONFIG_TEGRA_WATCHDOG=y
CONFIG_MAX77620_WATCHDOG=y
# CONFIG_ALIM7101_WDT is not set
# CONFIG_I6300ESB_WDT is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set

```

But, “WDIOC\_GETTIMEOUT” and “WDIOC\_SETTIMEOUT” shows error “operation not supported”.  
And it seems that “WDIOC\_KEEPALIVE” does not work, so TX1 reboot after 120 seconds.

I have tried changing kernel source (tegra\_wdt.c) as follows:

```auto
-static int heartbeat = 120;
+static int heartbeat = 10;

```

The timout value does not change, either.

How can I change the timeout value and kick WDT?

The kernel version is 3.10.67, and it is able to kick and close WDT by the following way.

```auto
# tail -f /dev/watchdog0 // open wdt
# echo 1 > /dev/watchdog0 // kick wdt
# echo V > /dev/watchdog0 // close wdt

```

Can anyone help me?

Thanks.

---

<div class="post-metadata">

**Author:** ![VickNV](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/vicknv/32/14043_2.png) [@VickNV](https://forums.developer.nvidia.com/u/VickNV)\
**Post date:** [November 15, 2016, 7:01am UTC](https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059/2 "2016-11-15T07:01:54Z")

</div>

> Firstly, I tried following sample code after setup TX1 by JetPack for L4T 2.1, but it did not work.  
> What did you mean “it did not work”? What’s the message?

---

<div class="post-metadata">

**Author:** ![linuxdev](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/linuxdev/32/10243_2.png) [@linuxdev](https://forums.developer.nvidia.com/u/linuxdev)\
**Post date:** [November 15, 2016, 2:13pm UTC](https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059/3 "2016-11-15T14:13:48Z")

</div>

Regarding ioctl and watchdog timers, see also:  
[url][https://devtalk.nvidia.com/default/topic/975935/jetson-tx1/how-can-i-change-the-timeout-value-and-kick-watchdog-on-jetson-tx1-/[/url]](https://devtalk.nvidia.com/default/topic/975935/jetson-tx1/how-can-i-change-the-timeout-value-and-kick-watchdog-on-jetson-tx1-/%5B/url%5D)

---

<div class="post-metadata">

**Author:** ![kayccc](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/kayccc/32/14043_2.png) [@kayccc](https://forums.developer.nvidia.com/u/kayccc)\
**Post date:** [November 16, 2016, 7:42am UTC](https://forums.developer.nvidia.com/t/watchdog-timer-on-jetson-tx1-how-can-i-change-the-timeout-value-and-kick-wdt/46059/4 "2016-11-16T07:42:09Z")

</div>

Locked this thread out as the same issue is under discussing at [url][https://devtalk.nvidia.com/default/topic/975935/jetson-tx1/how-can-i-change-the-timeout-value-and-kick-watchdog-on-jetson-tx1-/[/url]](https://devtalk.nvidia.com/default/topic/975935/jetson-tx1/how-can-i-change-the-timeout-value-and-kick-watchdog-on-jetson-tx1-/%5B/url%5D)
