Missing /dev/watchdog


I was wondering if the Watchdog timer on the Jetson Nano is exposed. I would normally expect to see it in /dev/watchdog however in my case the file is not there. The strange thing is that I can see that there is a watchdog process running. Does this mean the watchdog is exposed but in a different location?

I have attached some debug below in case it is helpful.

  • I am running L4T 32.3.1
  • By running ps aux I can see that the watchdog daemon is running
  • But doing an ls in /dev does not reveal the watchdog.

Any help would be appreciated.


$ head -n 1 /etc/nv_tegra_release
# R32 (release), REVISION: 3.1, GCID: 18186506, BOARD: t210ref, EABI: aarch64, DATE: Tue Dec 10 06:58:34 UTC 2019
$ ps aux | grep watchdog
root        12  0.0  0.0      0     0 ?        S    Jun22   0:00 [watchdog/0]
root        15  0.0  0.0      0     0 ?        S    Jun22   0:00 [watchdog/1]
root        21  0.0  0.0      0     0 ?        S    Jun22   0:00 [watchdog/2]
root        27  0.0  0.0      0     0 ?        S    Jun22   0:00 [watchdog/3]
root       717  0.0  0.0      0     0 ?        S<   Jun22   0:00 [watchdogd]
benky58un  22153  0.0  0.0   5672   616 pts/0    S+   10:40   0:00 grep --color=auto watchdog
$ ls /dev/watch*
ls: cannot access '/dev/watch*': No such file or directory
$ ls /dev
autofs                  hugepages      max_gpu_power     net                 nvhost-vi   ram0       stderr             tty22  tty46    ttyp1    vcs1
block                   i2c-0          max_online_cpus   network_latency     nvhost-vic  ram1       stdin              tty23  tty47    ttyp2    vcs2
btrfs-control           i2c-1          media0            network_throughput  nvmap       ram10      stdout             tty24  tty48    ttyp3    vcs3
bus                     i2c-2          media1            null                port        ram11      tegra_camera_ctrl  tty25  tty49    ttyp4    vcs4
char                    i2c-3          mem               nvhdcp0             ppp         ram12      tegra_cec          tty26  tty5     ttyp5    vcs5
console                 i2c-4          memory_bandwidth  nvhdcp1             psaux       ram13      tegra-crypto       tty27  tty50    ttyp6    vcs6
constraint_cpu_freq     i2c-5          min_online_cpus   nvhost-as-gpu       ptmx        ram14      tegra_dc_0         tty28  tty51    ttyp7    vcsa
constraint_gpu_freq     i2c-6          mmcblk0           nvhost-ctrl         pts         ram15      tegra_dc_1         tty29  tty52    ttyp8    vcsa1
constraint_online_cpus  iio:device0    mmcblk0p1         nvhost-ctrl-gpu     ptyp0       ram2       tegra_dc_ctrl      tty3   tty53    ttyp9    vcsa2
cpu_dma_latency         initctl        mmcblk0p10        nvhost-ctrl-isp     ptyp1       ram3       tegra_mipi_cal     tty30  tty54    ttypa    vcsa3
cpu_freq_max            input          mmcblk0p11        nvhost-ctrl-isp.1   ptyp2       ram4       tty                tty31  tty55    ttypb    vcsa4
cpu_freq_min            keychord       mmcblk0p12        nvhost-ctrl-nvdec   ptyp3       ram5       tty0               tty32  tty56    ttypc    vcsa5
cuse                    kmem           mmcblk0p13        nvhost-ctrl-vi      ptyp4       ram6       tty1               tty33  tty57    ttypd    vcsa6
disk                    kmsg           mmcblk0p14        nvhost-ctxsw-gpu    ptyp5       ram7       tty10              tty34  tty58    ttype    vfio
emc_freq_min            log            mmcblk0p2         nvhost-dbg-gpu      ptyp6       ram8       tty11              tty35  tty59    ttypf    vhci
fb0                     loop0          mmcblk0p3         nvhost-gpu          ptyp7       ram9       tty12              tty36  tty6     ttyS0    video0
fb1                     loop1          mmcblk0p4         nvhost-isp          ptyp8       random     tty13              tty37  tty60    ttyS1    zero
fd                      loop2          mmcblk0p5         nvhost-isp.1        ptyp9       rfkill     tty14              tty38  tty61    ttyS2    zram0
full                    loop3          mmcblk0p6         nvhost-msenc        ptypa       rtc        tty15              tty39  tty62    ttyS3    zram1
fuse                    loop4          mmcblk0p7         nvhost-nvdec        ptypb       rtc0       tty16              tty4   tty63    ttyTHS1  zram2
gpiochip0               loop5          mmcblk0p8         nvhost-nvjpg        ptypc       rtc1       tty17              tty40  tty7     ttyTHS2  zram3
gpiochip1               loop6          mmcblk0p9         nvhost-prof-gpu     ptypd       serial     tty18              tty41  tty8     uhid
gps0                    loop7          mqueue            nvhost-sched-gpu    ptype       shm        tty19              tty42  tty9     uinput
gpu_freq_max            loop-control   mtd0              nvhost-tsec         ptypf       snd        tty2               tty43  ttyACM0  urandom
gpu_freq_min            mapper         mtd0ro            nvhost-tsecb        quadd       spidev0.0  tty20              tty44  ttyGS0   v4l
hidraw0                 max_cpu_power  mtdblock0         nvhost-tsg-gpu      quadd_auth  spidev1.0  tty21              tty45  ttyp0    vcs

Below is my device status. Could you check dmesg | grep -i watchdog
BTY I am check on J4.4

nvidia@tegra-ubuntu:~$ ll /dev/watchdog
crw------- 1 root root 10, 130 Jun 17 06:51 /dev/watchdog
nvidia@tegra-ubuntu:~$ ll /dev/watchdog*
crw------- 1 root root  10, 130 Jun 17 06:51 /dev/watchdog
crw------- 1 root root 244,   0 Jun 17 06:51 /dev/watchdog0
nvidia@tegra-ubuntu:~$ dmesg | grep -i watchgog
nvidia@tegra-ubuntu:~$ dmesg | grep -i wat
[    0.579767] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    5.907020] tegra-wdt 60005100.watchdog: Tegra WDT enabled on probe. Timeout = 120 seconds.
[    5.916140] tegra-wdt 60005100.watchdog: initialized (timeout = 120 sec, nowayout = 1)
[    7.664911] systemd[1]: Started Forward Password Requests to Wall Directory Watch.

Hi @ShaneCCC,

The word “watchdog” doesn’t appear in the dmesg output. I rebooted the Jetson and the result is the same.

$ uptime
 12:13:35 up 2 min,  2 users,  load average: 2.41, 1.38, 0.54
$ dmesg | grep -i watchdog

Did you have customize kernel or device tree? Could you restore to default system image to check.

Hi @ShaneCCC,

The kernel/device tree is not customised. The only modification have been to rearrange the partitions to allow usage of the full sd card according to these instructions Jetson Nano FAQ


The problem seems to be something to do with my image. I used a fresh image and the watchdog node has returned.

Thanks for the help @ShaneCCC