Install adam:ONE (v4+) on Asus Routers via USB storage

ASUS routers can now run adam:ONE on most of the stable build of Merlin Supported Models, plus a few additional models, specifically this list:

  • RT-AC66U_B1 (same firmware as the RT-AC68U)

  • RT-AC68U (including revisions C1 and E1)

  • RT-AC68P (same firmware as RT-AC68U)

  • RT-AC68UF (same firmware as RT-AC68U)

  • RT-AC88U

  • RT-AC3100

  • RT-AC5300

  • RT-AC1900 (same firmware as RT-AC68U)

  • RT-AC1900P (same firmware as RT-AC68U)

  • RT-AC86U (starting with version 382.1)

  • RT-AC2900 (same firmware as RT-AC86U)

  • RT-AX88U

  • RT-AX88U Pro

  • RT-AX56U

  • RT-AX58U (Tri-core processor only. The quad-core hardware version 2 (RT-AX58U V2) is NOT supported.)

  • RT-AX68U

  • RT-AX86U

  • RT-AX3000 (same firmware as RT-AX58U) (Tri-core processor only. The quad-core hardware version 2 (RT-AX58U V2) is NOT supported.)

  • GT-AC2900

  • GT-AX11000

  • GT-AXE11000

  • ZenWiFi Pro XT12

  • GT-AX6000

  • GT-AXE16000

  • GT-AX11000_PRO

  • RT-AX86U_PRO

NOTE: This deployment is for adam:ONE version 4+ only.
NOTE2: For ASUS firmware that is newer than Merlin’s (e.g. 386 vs 384), in some cases, the Rescue utility must be used in order to apply Stable Merlin versions. In such a case, follow this how-to, and apply Merlin’s stable version directly with the firmware restoration utility.


  • A qualifying ASUS router model from list above
  • A USB3 or USB3.1 flash storage drive with 2GB of capacity or more (ultra fit recommended)

Stage 1 of 3 – Flash your router with Merlin Firmware and enable SSH

Save your ASUS router configuration (optional)

Just in case you want to restore factory firmware in the future with your current settings, document your settings or save a configuration backup.

Download and flash Merlin firmware

  1. Head over to and follow his instructions for a Stable download of firmware for your router

  2. Optionally perform a 30-30-30 for a fresh start of Merlin-default NVRAM settings

  3. Make sure your router’s WAN connection is connected to your ISP or upstream connection.

  4. Connect your computer to your ASUS router via ethernet (recommended) or WiFi. Make sure you do not have two connections. Use WiFi or Ethernet, but not both.

  5. Log into in your web browser.

  6. Go through the ASUS configuration wizard if prompted and confirm you’re running Merlin AsusWrt.

Video walkthrough of steps above also at:

Stage 2 of 3 – install adam:ONE Software

  1. Log into the router again at go to Administration → System tab, Enable login via ssh on LAN

  2. Make an SSH connection to (the username you created during the ASUS configuration wizard is the only one that will work – if you made it admin, the ssh prompt is:

  3. Check to make sure date/time is accurate with this command:

    If date is inaccurate, certificate validation will fail, so try running this command:
    service restart_ntpd (then run date again to confirm it is correct before proceeding.

  4. Now insert your USB flash drive into the USB port of the router and run these commands (for tested/stable/production version of adam:ONE®):

    cd /tmp
    curl -L >
    chmod +x
    ./ install
  5. Skip this step if you ran the stable installation from the previous step. For BETA release only, run these commands instead:

    cd /tmp
    curl -L >
    chmod +x
    ./ install testing
  6. The on-screen prompts and instructions from the previous will offer USB ext2 formatting options as well as check JFFS for writability and guide you through the requirements.

    • When prompted to choose SWAP space, if you’re unsure, choose N for None

    Almost there! Note that 8-16GB USB3 flash drives are optimal, we’ve seen 64GB USB3 flash drives take over an hour to format!

Video walkthrough of steps above also at:

Stage 3 of 3 – Connect to the adam:ONE Cloud

  1. Get your BoxID from this command in your ssh session:

    grep box-id /jffs/addons/adamone/muscle.conf | cut -d= -f2

  2. Register BoxID (obtained at the previous step) at https://dashboard.adamnet.worksSign up link

  3. Follow online and email verification instructions to further customize your setup and policies

  4. Optionally, confirm the service is running (some checks may fail until the BoxID is registered in previous step):

    /jffs/scripts/adamone status
    /jffs/scripts/adamone checkalive
    iptables -nvL

The last item should show you adamONE tables.

Note that the USB flash drive must stay inserted for adam:ONE services to function.

For a video walkthru of the above steps, see:

Troubleshooting adam:ONE service

Optionally force an upgrade to the running binaries on ASUS router with:

/jffs/scripts/adamone upgrade force

Troubleshooting USB flash drive functionality

If your USB flash drive works on a computer, but is not detected in the router script, or detected at first and then later cannot be mounted, make sure it is re-partitioned with MBR (not GPT). This can be done with Windows diskpart command line or macOS diskutil.

Troubleshooting router GUI

During installation, the router’s GUI changes from

This is required since binds itself to the router’s LAN TCP port 80.

Troubleshooting no Internet access

In the event that you enabled hard blocking setting during the installations script, endpoint internet access will fail in the following scenarios:

  • USB flash drive is unreliable
  • USB flash drive has been removed

Consider a temporary uninstall (see below), replace the USB flash drive, and follow the installation script again.

Troubleshooting router command-line restart

If you use ssh for management, note that service reboot is the safe way to reboot (reboot by itself does not always restart correctly on newer models).

Troubleshooting with command-line switches

/jffs/scripts/adamone stop - stops adam:ONE, cronjobs and starts dnsmasq
/jffs/scripts/adamone start - stops dnsmasq and starts adam:ONE and cronjobs
/jffs/scripts/adamone selfupdate - updates script

DNSFilter feature in AsusWRT

In the case DNSFilter is enabled on your ASUS router, adam:ONE will override it with its checkalive script each minute.

DNS hijacking

During the installation script, you will be asked for this setting, but it can also manually be disabled with this command:

/jffs/scripts/adamone set dns hijack disable

On the other hand, to enable it, run:

/jffs/scripts/adamone set dns hijack enable


To revert back to Merlin defaults, either:

  • 30-30-30 which wipes out startup scripts and moves the router GUI back to, or

  • Run the uninstall script here:

    /jffs/scripts/adamone uninstall
    This option will keep the router GUI at