What's new

MerlinAU MerlinAU v1.3.0 - The Ultimate Firmware Auto-Updater (GNUTON SUPPORT!)

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

ExtremeFiretop

Very Senior Member
Hello SNB Community,

-ORIGINAL THREAD CLOSED DUE TO AGE HERE:
https://www.snbforums.com/threads/m...-auto-updater-thread-closed-due-to-age.88577/

This project is hosted on our GitHub

Changelog and release notes: Here

Summery:
We're pleased to RE-introduce the add-on for Asuswrt-Merlin: MerlinAU (Merlin AutoUpdate).
MerlinAU.sh is a versatile shell script designed to automate the firmware update process for ASUS routers running Asuswrt-Merlin firmware.
This tool is designed to streamline the firmware update procedure by automatically detecting your router model, fetches the latest firmware, and offers options for installation making your router maintenance simpler and smoother than ever.

1725261055582.png

1725261061475.png

1725261106396.png

1725261144745.png


What's MerlinAU All About?

MerlinAU is a sophisticated and comprehensive script designed for Asus routers running Asuswrt-Merlin firmware.
It's a collaborative effort by @ExtremeFiretop (myself) and @Martinski W. It offers an extensive range of features:
  1. Automatic router model detection and Automatic update detection.
  2. Automatically install updates to your router with the latest firmware from the Asuswrt-Merlin repository.
  3. Logic to manage cron jobs for automated firmware update checks.
  4. Notifications for new MerlinAU updates and download the latest version of MerlinAU
  5. User configurable wait periods. Wait for a set duration after a new firmware release.
  6. Easy Enable/Disable: A menu switch for automatic update checking.
  7. Easy Uninstall: A routine to cleanly uninstall MerlinAU, removing all related files and settings.
  8. Logging and Cleanup: MerlinAU maintains logs for its operations and includes functions for cleanup tasks.
  9. Blinking LEDs: A visual indicator before starting the firmware update.
  10. Changelog verification check: Checks the changelogs for very obvious red flags and prompts for approval.
  11. Checks RAM usage: Functions to check and manage available memory for firmware update operations.
  12. Compatible with ROG and non-ROG routers; select ROG or Pure Build for ROG routers.
  13. Backup the new firmware version to the USB drive. (If USB is selected for storage)
  14. Email notifications if you configured email options in AMTM.
  15. Automatic backup with BACKUPMON if installed.
  16. Allow or Block Alpha/Beta upgrades to Production versions of the same cycle. (388.6.alpha1 or 388.6.beta1 --> 388.6.0)
  17. Automatically stops all Entware services before the flash if running.
  18. Automatically stops diversion if installed and running before the flash.
  19. Unmounts any physically attached storage via USB as the last step before the flash.
  20. AiMesh Node Update Check from Primary Router. (No Flashing from Primary, MerlinAU needs to be on each node for flashing)

What update mechanism does MerlinAU use to Auto-Update?

MerlinAU actually implements a curl update mechanism. Curl can simulate almost all behaviors of the browser through get/post.
While hnd-write is unsafe and unpredictable, we instead use curl to simulate a browser for the router to upload the firmware through it's own GUI, which is the safest way. As discussed on the forums in length here.

Essentially the router logins to it's own WebUI like a person does, and uploads the firmware through the WebUI.
Doing this insures that the firmware checks done by the router when uploading a firmware via the webUI are not skipped, and the router can follow it's regular update process from there.

This has been tested extensively on the following devices since 388.4

SUPPORTED MERLIN MODELS: (Multi-image models) - i.e. Any model that uses a .w or a .pkgtb file​

  • GT-BE98_PRO (Tested)
  • GT-AX6000 (Tested)
  • GT-AXE16000 (Tested)
  • GT-AX11000 (Tested)
  • GT-AXE11000 (Tested)
  • GT-AX11000_PRO (Tested)
  • GT-AC2900 (Untested)
  • RT-BE96U (Untested)
  • RT-AX88U_PRO (Tested)
  • RT-AX88U (Tested)
  • RT-AC86U (Tested)
  • RT-AX86U (Tested)
  • RT-AX86U_PRO (Tested)
  • RT-AX86S (Tested)
  • RT-AX68U (Tested)
  • RT-AX58U V1 (Tested)
  • RT-AX56U (Tested)
  • RT-AX3000 V1 (Tested)
  • XT12 (Tested)

SUPPORTED GNUTON MODELS (Multi-image models) - i.e. Any model that uses a .w or a .pkgtb file​

  • GT-BE98 - Known issues due to missing from manifest2.txt file in Gnuton
  • DSL-AX82U (Untested)
  • TUF-AX3000 V1 (Untested)
  • TUF-AX3000 V2 (Tested)
  • TUF-AX5400 (Tested)
  • RT-AX5400 (Untested)
  • RT-AX82U V1 (Tested)
  • RT-AX82U V2 (Untested)
  • RT-AX58U V2 (Untested)
  • RT-AX92U - (Tested)
  • RT-AX95Q (Untested)
  • RT-AXE95Q (Untested)
All tests were successful on all subsequent firmware updates, the firmware upgraded correctly, and no issues with compatibility with other addons were identified.

UNSUPPORTED MERLIN MODELS: (Single image models) - i.e. Any model that uses a .trx file​

Blocked due to low RAM/ROM space and/or have reached end-of-life support from ASUS and Merlin.
  • RT-AC87U (Blocked)
  • RT-AC56U (Blocked)
  • RT-AC66U (Blocked)
  • RT-AC3200 (Blocked)
  • RT-N66U (Blocked)
  • RT-AC88U (Blocked)
  • RT-AC5300 (Blocked)
  • RT-AC3100 (Blocked)
  • RT-AC68U (Blocked)
  • RT-AC66U_B1 (Blocked)
  • RT-AC1900 (Blocked)

UNSUPPORTED GNUTON MODELS: (Single image models) - i.e. Any model that uses a .trx file​

Blocked due to low RAM/ROM space and/or have reached end-of-life support from ASUS and Gnuton.
  • DSL-AC68U (Blocked)

How to Get MerlinAU

AVAILABLE THROUGH AMTM!
MerlinAU is also available for download on our GitHub repository here: https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router

Installation and update information are provided on the same github page.
For any questions please visit our FAQ on Github here

PLEASE READ ALL THE DETAILS AND BACKUP BEFORE STARTING!

Post-Install Notes for MerlinAU Users

  • Confirm your entered crons with Crontab.guru here: https://crontab.guru/ and review the below FAQ questions in the second post.
  • After installing or updating MerlinAU, it's recommended to review the new settings and adjust them as per your preference.
  • If using a USB drive for firmware storage, ensure it's properly connected and mounted.
## NOTE: It is highly recommended to configure backups using BACKUPMON
For any additional questions the FAQ was moved to Github here: https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/wiki before posting.

We're eager to hear your feedback and experiences with MerlinAU. Your suggestions and comments are invaluable in making MerlinAU even better!
MerlinAU is available under the GNU General Public License version 3 (GPL-3.0).

## Contribution
- Before any contributions, please review: https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/blob/main/CONTRIBUTING.md
- Also please review the: https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/blob/main/CODE_OF_CONDUCT.md

Thank you, and enjoy a hassle-free firmware updating experience with MerlinAU!
 
Last edited:
Latest Changelog can be found here

-V1.3.0

Previous Changelogs can be found below for historical reference:
-V1.2.7

-V1.2.6

-V1.2.5

-V1.2.4

-V1.2.3

-V1.2.2

-V1.2.1

-V1.2.0

-V1.1.5

-V1.1.4

-V1.1.3

-V1.1.2

-V1.1.1

-V1.1.0

-V1.0.10

-V1.0.9

-V1.0.8

-V1.0.7

-V1.0.6

-V1.0.5

-V1.0.4

-V1.0.3

-V1.0.2

-V1.0.1

-V1.0.0

-Pre-Release V0.2.54

-Updated August 08th, 2024
 
Last edited:
MerlinAU Version 1.2.7 released.

What's Changed/Fixed?:

PR: #271 - Minor change to the "Help" output
-Added the ".sh" file extension to the listed script commands in the "Help" output screen to make it clear that the extension is definitely needed as part of the script filename.
(Thanks @Martinski4GitHub)!

1723164502541.png


PR: #273 - Allow script to continue flashing F/W if connection is terminated.
-Made changes to allow script to continue with the F/W flash "curl" command after connection is terminated due to stopping Entware services, including TailScale.
(Thanks @Martinski4GitHub)!

PR: #278 - Keep ZeroTier connection during F/W updates.
-Updated code to keep ZeroTier VPN connection alive during F/W updates. Also, if OpenSSH is being used for remote SSH access the server is kept alive as well.
(Thanks @Martinski4GitHub)!

BUG FIX: PR: #280 - Clarify Email Content
- Clarify Email Content as requested by: @maghuro here: https://www.snbforums.com/threads/m...dater-now-available-in-amtm.88577/post-920655
-Also fixed a bug related to the email subject when a node had an update (sent from the primary router)

PR: #282 - Increased Maximum Postponement Days
-Increased the maximum number of postponement days to 199. This gives users plenty of time to wait and decide when to do the F/W Update, especially for those users who prefer to do it manually. Requested by @Jeff-
(Thanks @Martinski4GitHub)!

As always, we highly recommend you update ASAP as this includes lots of functional improvements and little bug fixes.

Significant screenshots:
(Small Wording Changes below)
1723164482610.png
 
Overnight, my RT-AX58U router auto-updated from 3004.388.7.0 to 3004.388.8.2 (automatically skipping over flawed release 3004.388.8.0). Everything is running smoothly this morning. This time I left it completely hands-off, all I did was review the changelog. Thanks again for a great script!
 
Overnight, my RT-AX58U router auto-updated from 3004.388.7.0 to 3004.388.8.2 (automatically skipping over flawed release 3004.388.8.0). Everything is running smoothly this morning. This time I left it completely hands-off, all I did was review the changelog. Thanks again for a great script!

It's only getting better with time 😉 The more development time we get, the smoother it becomes!
 
My RT-AX56U just updated from 3004.388.7.0 to 3004.388.8.2 with the script, no problems.

Primary List updated in the OP and Github.
Thank you for reporting and confirming that model is functional as well! :)

Enjoy automated updates!
 
Primary List updated in the OP and Github.
Thank you for reporting and confirming that model is functional as well! :)

Enjoy automated updates!
If there are any future updates for the RT-AX56U, that is...
 
If there are any future updates for the RT-AX56U, that is...

Fair point!
But I'm still happy to know MerlinAU *will* work if there is any future updates ;)
 
MerlinAU Version 1.3.0 released.

What's Changed/Fixed?:

OFFICIAL GNUTON SUPPORT!

PR: [#186 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/186
- Requested on Github report: #89 by @micron888 and many others in the forums such as @Johndoe85 and many thanks to all the testers that volunteered such as @nullvoid, @novusB, @lilkidsuave, @explorer and of course @GNUton for merging our required PRs!

PR: [#289 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/289
- General Code improvements for Gnuton PR. (Thanks @Martinski4GitHub @Martinski)

PR: [#292 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/292
- Detect Access Restrictions... Issue reported on Github #290 by @SolidRhino . The script now has smarts to detect if the "Web Access restrictions" feature on the router will block successful login, depending on if the feature is enabled or the routers IP is within rule ranges.

PR: [#293 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/293
- Modified message when router login failed. (Thanks @Martinski4GitHub @Martinski )

PR: [#294 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/294
- Improvements when detecting WebGUI access rules (Thanks @Martinski4GitHub @Martinski)

PR: [#295 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/295
- More improvements for detecting WebGUI access rules (Thanks @Martinski4GitHub @Martinski)

PR: [#296 ] https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/pull/296
- Match between Gnuton and Merlin for Changelog Behavior (Small change identified when testing pre-release)

As always, we highly recommend you update ASAP as this includes lots of functional improvements and little bug fixes.

Significant screenshots:
1725260665728.png
1725260673629.png
 
Last edited:
Currently the only known issue is with the GT-BE98 (listed in the OP)
@GNUton is aware of this already and I am positive he has plans to add the GT-BE98 to the manifest file once it's out of beta stages. Either way MerlinAU does not support flashing of beta releases. Only stable releases.

Also MerlinAU will only work with Gnuton releases 388.8_2 and above. You will need to manually update to 388.8_2 for MerlinAU 1.3.0 to function correctly.

Please everyone report and advise if you notice of any issues with this beta release of 1.3.0
 
Last edited:

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top