HOWTO: Upgrading Merlin Firmware on RT-AC68U Router Converted from TM-AC1900 without Losing Settings

A while ago I posted this deal. Now this post is a follow-up which might be of interest to the fellow ozbargainers who grabbed that deal.

Today I've discovered I am no longer able to upgrade my converted RT-AC68U to the most recent Merlin release v384.6. As it turns, Asus has further enforced the checks in their new firmware releases (upon which Merlin firmware is based) to lock down updates on various converted hardware variants, including TM-AC1900. Here is Merlin's own official statement on that.

I've done a bit of research and found a few existing workarounds (e.g., this) but they all seem to incur losing existing configration settings.

So I've come up with an upgrade method that keeps existing settings (and possibly enables the AiMesh feature, too, if "1.0.2.0 US AiMesh" CFE template is used - haven't verified that myself as I only have one unit). I not claiming to be the first one taking this approach, but I haven't yet come across a post describing this exact method. It's somewhat based upon the original BayAreaTechPros' post on the conversion process.

You will need mtd-write from TM-AC1900toRT-AC68U.7z linked in the above post, as well as Merlin's RT-AC68U_384.6_0.trx. Your router must be already converted and running some recent Merlin v384.x firmware (mine was running Merlin v384.5).

DO IT AT YOUR OWN RISK! I won't be responsible for any bricked routers. Back up your settings and JFFS data, just in case.

  1. Connect to your router via SSH terminal console (I use Putty). Run:
    cd /tmp; cat /dev/mtd0 > original_cfe.bin
  2. Copy original_cfe.bin to a local drive, I use Putty's PSCP for this (substitute your own IP addr, SSH port and user name):
    pscp -scp -P 22 [email protected]:/tmp/original_cfe.bin ./
  3. Upload original_cfe.bin to https://cfeditor.pipeline.sh/, select "1.0.2.0 US AiMesh" "1.0.2.1 US", download the new .bin, rename it to new_cfe.bin.
  4. Upload new_cfe.bin to your router (from your PC command line):
    pscp -scp -P 22 new_cfe.bin [email protected]:/tmp/
  5. Upload mtd-write to your router (from your PC command line):
    pscp -scp -P 22 mtd-write [email protected]:/tmp/
  6. Run this in SSH console:
    chmod u+x mtd-write
  7. In SSH console (I'm not sure if this step is actually needed but I did it just in case):
    nvram unset fw_check && nvram commit
  8. In SSH console:
    ./mtd-write new_cfe.bin boot
  9. Upload RT-AC68U_384.6_0.trx to your router:
    pscp -scp -P 22 RT-AC68U_384.6_0.trx [email protected]:/tmp/
  10. In SSH console:
    mtd-write2 RT-AC68U_384.6_0.trx linux
  11. Wait for the above command to complete, it should output something like "CRC OK linux".
  12. Power off the router with its physical on/off switch (don't try reboot or halt from the console).
  13. Wait for ~10 sec and power it back on.
  14. Log in to the router's Web UI. You should be running v384.6 now with all your existing settings and JFFS partition data still in place, see if that's the case.

I'm not sure if I will have to do it all over again whenever a new firmware version is released, we'll see about it.

UPDATED: if once upgraded you keep seeing a flood of "rc_service: watchdog 277:notify_rc start_cfgsync" entries in the router's syslog, repeat steps 1-8 but use the "1.0.2.1 US" CFE template (rather than "1.0.2.0 US AiMesh") at step 3. This seems to be related to AiMesh support, but as I've mentioned above I only have one unit so I can't test AiMesh.

Comments

  • +1

    Thanks for the post.

    Can you enlighten us simple people on what you get for the trouble? Is it just obscure security patches, or are there performance improvements to be had

    • I specifically wanted to upgrade to Merlin v384.6 because it has a fix for the Dual WAN setup issue where the secondary WAN is a 4G USB modem. That's the config I use and it didn't work properly with v384.5, now it does. There's a thread about this on www.snbforums.com, I could google it up if interested.

  • One other thing to do is this.

  • Thanks uk3000 - worked a treat for me.

Login or Join to leave a comment