How to configure the Watchdog on Nexcom NISE50

The Nexcom NISE50 has an Embedded Controller Watchdog Timer (WDT), that is able to power cycle the whole machine, even when the OS has frozen. The WDT works by setting a timeout. Then the WDT has to be periodically reset by software before it reaches the timeout. If it ever reaches that timeout, the EC will force a hard reboot on the whole system. This characteristic is specially useful to recover from unforseen catastrophic errors, without the need of human intervention.

This article describes how to set up and use the WDT on the Nexcom NISE50

Necessary files:

Step-by-step guide

To install and configure the WD follow the next steps

  1. Transfer and unpack the NISE 50 control files:
    1. Transfer the nise50_control.tar.gz file to the NISE50 using a tool like SCP or WinSCP
    2. Uncompress package: 

      tar -xvzf nise50_control.tar.gz

      Two folders will be created:

      • Kernel module driver access
        \kernelModule\wdt
        (The driver includes led+wdt driver)

      • User mode APP access
        \userMode

  2. Build the driver

    cd kernelModule\wdt
    make
  3. Install the driver

    1.  Edit the /etc/rc.local file

      sudo vim /etc/rc.local
    2. Add the following at the end of the file:

      # Enable the Nexcom NISE50 Kernel module
      insmod /lib/modules/$(uname -r)/kernel/drivers/control.ko
      exit 0
    3. Copy the driver

      sudo cp control.ko /lib/modules/$(uname -r)/kernel/drivers/control.ko
    4. Reboot

    5. Check the driver version to verify the installation:

      cat /sys/devices/platform/nise50/nise50/version
      DATE 06-29-2016 VER: 0.10
  4. Install the watchdog script
    1. Transfer the watchdog.sh file to the gateway using SCP or WinSCP
    2. if not already present, create a scripts folder:

      sudo mkdir /opt/azeti/SiteController/scripts/
    3. Copy the script file to the scripts folder

      sudo cp watchdog.sh /opt/azeti/SiteController/scripts/
  5. Add the necessary actions to the SiteController.cfg
    1. Edit the SiteController.cfg

      sudo vi /opt/azeti/SiteController/config/SiteController.cfg
    2. Add the actions to the file

      [remote_exec_calls]
      watchdog_start = /opt/azeti/SiteController/scripts/watchdog.sh start
      watchdog_stop = /opt/azeti/SiteController/scripts/watchdog.sh stop
      watchdog_kick = /opt/azeti/SiteController/scripts/watchdog.sh kick
    3. Restart the SiteController if it was running.
  6. Use the template watchdog.template.xml in the cloud. Create the instance and add it to the site template. Deploy the site template. After that the watchdog will work


The default configuration in the files is a timeout of 10 minutes, and a WDT reset is every 2 minutes. To change the WDT timeout edit the watchdog.sh and change "echo 600" to the timeout in seconds. To change the reset interval, change the timer on the template rule.