What's new

MerlinAU MerlinAU v1.1.2 - The Ultimate Firmware Auto-Updater (Now available in AMTM)

  • 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!

Will this block updating from release to a new beta? Is that configurable? My core router I don’t want to update to a beta release but may be willing to on an edge AP.

We don't do beta upgrades. If your on a stable release you will be updated at the next stable release.

What is configurable is upgrading from beta to stable releases.

If you manually flash a beta, you can block or allow upgrades from beta --> Stable of the same version cycle. (I.e 388.6.beta1 to 388.6.0)

Edit: And just to clarify this was a design choice. Merlin beta firmware is hosted on SourceForge. But for safety reasons we rather only handle automatic updates for firmware that has already gone through the beta trials.
 
Will this block updating from release to a new beta? Is that configurable? My core router I don’t want to update to a beta release but may be willing to on an edge AP.

Also, one other suggestion. It would be cool if after entering in a custom cron schedule it could read it back out in human readable language. e.g. “0 3 * * 0” = “At 03:00 AM, every Sunday“
This might help withe the answer for alphas and betas.


You apply the alpha / beta, only applies new releases.
 
this script downloads the firmware, unpacks it, but fails to actually install it, could it be due to the lack of changenotes-NG in 386.12.4 packages?



Code:
/home/root/MerlinAU 100%[===================>]  69.36M  8.55MB/s    in 12s

2024-02-10 16:15:16 (6.03 MB/s) - '/home/root/MerlinAU.d/RT-AC86U_firmware/RT-AC86U_firmware.zip' saved [72734062/72734062]

Required RAM: 106543 KB - RAM Free: 178368 KB - RAM Available: 162088 KB
Archive:  /home/root/MerlinAU.d/RT-AC86U_firmware/RT-AC86U_firmware.zip
  inflating: RT-AC86U_386.12_4_ubi.w
  inflating: Changelog-386.txt
  inflating: sha256sum.sha256
Change-log file does not exist at /home/root/MerlinAU.d/RT-AC86U_firmware/Changelog-NG.txt

Press Enter to return to the main menu...

    __  __           _ _               _    _
   |  \/  |         | (_)         /\  | |  | |
   | \  / | ___ _ __| |_ _ __    /  \ | |  | |
   | |\/| |/ _ | '__| | | '_ \  / /\ \| |  | |
   | |  | |  __| |  | | | | | |/ ____ | |__| |
   |_|  |_|\___|_|  |_|_|_| |_/_/    \_\____/ v1.0.2

========= By ExtremeFiretop & Martinski W. ==========
 
Last edited:
Archive: /home/root/MerlinAU.d/RT-AC86U_firmware/RT-AC86U_firmware.zip
inflating: RT-AC86U_386.12_4_ubi.w
inflating: Changelog-386.txt
inflating: sha256sum.sha256
Change-log file does not exist at /home/root/MerlinAU.d/RT-AC86U_firmware/Changelog-NG.txt

[/CODE]

Check the bold above. It's expecting a changelog-NG.txt file and your firmware has a changelog-386.txt file so it's not detected correctly.

Will address this in the next release. Was overlooked the last changelog verification since we had limited AC model support but we do still support 2 AC models so I should account for that correctly.

Thank you for testing and reporting!
 
this script downloads the firmware, unpacks it, but fails to actually install it, could it be due to the lack of change notes in 386.12.4 packages?



Code:
/home/root/MerlinAU 100%[===================>]  69.36M  8.55MB/s    in 12s

2024-02-10 16:15:16 (6.03 MB/s) - '/home/root/MerlinAU.d/RT-AC86U_firmware/RT-AC86U_firmware.zip' saved [72734062/72734062]

Required RAM: 106543 KB - RAM Free: 178368 KB - RAM Available: 162088 KB
Archive:  /home/root/MerlinAU.d/RT-AC86U_firmware/RT-AC86U_firmware.zip
  inflating: RT-AC86U_386.12_4_ubi.w
  inflating: Changelog-386.txt
  inflating: sha256sum.sha256
Change-log file does not exist at /home/root/MerlinAU.d/RT-AC86U_firmware/Changelog-NG.txt

Press Enter to return to the main menu...

    __  __           _ _               _    _
   |  \/  |         | (_)         /\  | |  | |
   | \  / | ___ _ __| |_ _ __    /  \ | |  | |
   | |\/| |/ _ | '__| | | '_ \  / /\ \| |  | |
   | |  | |  __| |  | | | | | |/ ____ | |__| |
   |_|  |_|\___|_|  |_|_|_| |_/_/    \_\____/ v1.0.2

========= By ExtremeFiretop & Martinski W. ==========

Btw you can simply disable changelog verification in the meantime :)
 
MerlinAU Version 1.0.3 released.

What's Fixed?
  1. Added a new email notification for failed checksum
  2. Decided to stop toggling LEDs while a Backupmon NVRAM backup is in progress (The backup is now the first step)
  3. Additional check made in the "email notification" setup. (Many thanks @Martinski )
  4. Fixed the "find" command statement to get the "Changelog-*.txt" file of the firmware to be flashed. (Many thanks @Martinski )
  5. Fixed a trap statement. (Many thanks @Martinski )
  6. Lots of cleanup for cleanliness
This below was resolved in release 1.0.3 today :) Please re-test and advise with changelog verification enabled for the AC86U!

this script downloads the firmware, unpacks it, but fails to actually install it, could it be due to the lack of changenotes-NG in 386.12.4 packages?

Thanks again for reporting!
 
Also, one other suggestion. It would be cool if after entering in a custom cron schedule it could read it back out in human readable language. e.g. “0 3 * * 0” = “At 03:00 AM, every Sunday“

@vlord This was a good suggestion.
It's not a change that's mission critical, so we won't push it out right away.

But wanted you to know this feedback was received and actioned and will be apart of the next release as documented in PR: 119 and PR: 121
Thanks again!
 
MerlinAU Version 1.0.4 released.

What's Changed/Fixed?
  1. As mentioned last week in PR: 119 and PR: 121, we now translate crons into a human readable format.
  2. As documented in PR 123 and PR 124, @Martinski added an option to have a secondary email address to receive email notifications via the "CC" parameter. (This menu item will be displayed only IF the "Email Notifications" setting has been ENABLED; otherwise, it's hidden.)
  3. As documented in PR 125, Resolved an issue with BACKUPMON versioning scheme since the change in notation: major.minor.patch
  4. As documented in PR 127, @Martinski added a new menu item in "Advanced Options" to give users the choice to select the email format type ("HTML" or "Plain Text"). (The default type is HTML which should work with the well-known email servers, however if any problems are observed with "garbage lines" being inserted in the email contents, users can now try selecting the "Plain Text" format and test again.)
  5. As documented in PR 128, we updated the ROG Build Menu.
  6. More general cleanup and improvements in-between.

As always, we highly recommend you update whenever possible. Enjoy the new release just in time for 3004.388.6_1! :)

Significant screenshots:
1708304049056.png

1708303998289.png
 
MerlinAU Version 1.0.4 released.

What's Changed/Fixed?
  1. As mentioned last week in PR: 119 and PR: 121, we now translate crons into a human readable format.
  2. As documented in PR 123 and PR 124, @Martinski added an option to have a secondary email address to receive email notifications via the "CC" parameter. (This menu item will be displayed only IF the "Email Notifications" setting has been ENABLED; otherwise, it's hidden.)
  3. As documented in PR 125, Resolved an issue with BACKUPMON versioning scheme since the change in notation: major.minor.patch
  4. As documented in PR 127, @Martinski added a new menu item in "Advanced Options" to give users the choice to select the email format type ("HTML" or "Plain Text"). (The default type is HTML which should work with the well-known email servers, however if any problems are observed with "garbage lines" being inserted in the email contents, users can now try selecting the "Plain Text" format and test again.)
  5. As documented in PR 128, we updated the ROG Build Menu.
  6. More general cleanup and improvements in-between.

As always, we highly recommend you update whenever possible. Enjoy the new release just in time for 3004.388.6_1! :)

Excellent work, fellas!! :)
 
Excellent work, fellas!! :)

Thanks buddy!!

Just don't throw us anymore curve balls okay? 😜

If you go ever back to the x.x versioning scheme, I'll flip my keyboard like a pancake. (Just kidding, my keyboard is nice, but please don't)
 
Thanks buddy!!

Just don't throw us anymore curve balls okay? 😜

If you go ever back to the x.x versioning scheme, I'll flip my keyboard like a pancake. (Just kidding, my keyboard is nice, but please don't)

LOL I'll be sure to keep it a surprise and out of the release notes if I ever do that again! ;)
 
LOL I'll be sure to keep it a surprise and out of the release notes if I ever do that again! ;)

Keep us on our little toes, I see how it is 😉
 
Good work, a small suggestion, for more clarity, get rid of those "disable" words.
Just name the function.
 

Attachments

  • 1708303998289.png
    1708303998289.png
    30.5 KB · Views: 25
  • 1708304049056.png
    1708304049056.png
    27.1 KB · Views: 25
Good work, a small suggestion, for more clarity, get rid of those "disable" words.
Just name the function.

Thanks for the feedback and suggestions! It has been received :)
 
I'm running this on an RT-AC88u, even though it says it's incompatible. I'll update with any issues experienced. Is there a specific reason not to use this based on the AC88u? Or simply hasn't been vetted?
 
I'm running this on an RT-AC88u, even though it says it's incompatible. I'll update with any issues experienced. Is there a specific reason not to use this based on the AC88u? Or simply hasn't been vetted?

Hi @Austin Dean

Thanks for your comment, unfortunately you'll end up having to uninstall the MerlinAU script.
The script will give you a warning at the top as soon as you install that it's on incompatible hardware. (As you mentioned)

Even if you leave it installed, it will never attempt to update your router. It will simply quit, with an incompatible hardware error every time the script or cron job is run.

This was done based on the advise of RMerlin found here:

To answer your questions, It could work in theory, but we designed against it and even blocked the .trx firmware format in the script to make sure it will never recognize the firmware correctly.
Any single partition device was blocked for safety concerns.
 
To help address the questions around AC class routers;
I've added the unsupported list from Github to the OP in the forums, and also added a new questions and answers in the FAQ on page 1.

Good work, a small suggestion, for more clarity, get rid of those "disable" words.
Just name the function.

Hi @Ubimo
This suggestion will be implemented in the next release as documented in PR: 133
 
What happens if a second new firmware version is released during the postponement days? Meaning, I haven't yet installed the first update when a new patch is released.
 
What happens if a second new firmware version is released during the postponement days? Meaning, I haven't yet installed the first update when a new patch is released.

It will always download the latest version.

It receives the update version to download from the routers built-in update function. /usr/sbin/webs_update.sh (Which it also triggers to run before every execution of the update.)
Which means the routers built-in function will always get the latest version available at that time.

If your router detected 388.6_1 is available for example, And lets say you set it to postpone a week and within that week 388.6_2 became available.
At the end of the next postpone period, it would download 388.6_2, even though it first received notification of an available update from 388.6_1.
 
Last edited:
What happens if a second new firmware version is released during the postponement days? Meaning, I haven't yet installed the first update when a new patch is released.

Just reviewed the code and my recollection was slightly wrong, so minor correction incoming below to set the record straight:

The /usr/sbin/webs_update.sh is called everytime MerlinAU is run interactively, but not when the update function runs as a cron job.
However the rest of what I said still remains the same. The _GetLatestFWUpdateVersionFromWebsite_ function is designed to always fetch the latest firmware version available on the website.

It does this by:
1. Extracting all firmware versions for the product on the website.
2. Sorting all these versions numerically.
3. Selecting the last item from the sorted list, which represents the newest version.

Given this design, even if the /usr/sbin/webs_update.sh is not called by the cron job and is only called interactively, if a second new firmware version is released while you are in the postponement period for the first update, the function when next invoked, would identify and select this second new version as the latest.
This is because the function does not track the history of versions it has previously identified (however it is in the settings file) but simply selects the newest version available at the time of its execution.

(This is excluding the fact that /usr/sbin/webs_update.sh runs every night anyways. Unless you disable the update check in the MerlinAU script or the WebUI.)
 
Last edited:
Similar threads

Sign Up For SNBForums Daily Digest

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