What's new

MerlinAU MerlinAU v1.5.9 - The Ultimate Firmware Auto-Updater

I would recommend updating if you want to retain support for MerlinAU as your currently 4 versions behind the current production firmware.

Actually you have the V2 version of the AX58U, I didn't notice originally but that means your running Gnuton.
So a correction to my statement is your only 1 production version behind for Gnuton firmware, since he has not made an official release of 388.10.0 or 388.11

So I'll take note of that for future releases, Gnuton users it seems are further behind just in general unfortunately.
 
Last edited:
Thanks for your help, everything is up to date now.
Indeed my password was not saved although I was sure it was.
 
Thanks for your help, everything is up to date now.
Indeed my password was not saved although I was sure it was.

I would check the MerlinAU logs by SSH. And verify that's what it was complaining about. You can go back through history to see if something changed at some point.
 
Is there a way to manually reinstall Release 1.5.7 ? I just updated and was not informed until after the update that the version of MerlinAU is not supported on my fw.

I had been holding out on using MerlinAU to update my parent's router fw from the 3004 branch to 3006, until I was at least within feasible travel distance to them, in case I needed to be on-site afterwards.

I know I am a fair bit behind fw versions now. Whilst my own router fw is up-to-date (using the excellent MerlinAU), I just haven't had the time to dedicate a remote update process on my parent's LAN and the risk of breaking anything, whilst I haven't been on-hand to potentially fix it afterwards. Whilst holding off, I did still want to use MerlinAU for the process eventually, just once I had the time to monitor it and be on-hand (i.e. in the same country) if anything went wrong.

MerlinAU 1.5.8 seemingly has taken that option away from me now, without forewarning. Can I roll back to 1.5.7?

I do think perhaps a pre-update check and warning beforehand, with an option to stay on the currently supported version, would have been useful for this particular update.
 
Is there a way to manually reinstall Release 1.5.7 ? I just updated and was not informed until after the update that the version of MerlinAU is not supported on my fw.

Code:
curl --retry 3 "https://raw.githubusercontent.com/ExtremeFiretop/MerlinAutoUpdate-Router/2257f23c1ef298f4cbddd18b58bb4194cbfa5355/MerlinAU.sh" -o "/jffs/scripts/MerlinAU.sh" && chmod +x "/jffs/scripts/MerlinAU.sh"
 
Last edited:
I had been holding out on using MerlinAU to update my parent's router fw from the 3004 branch to 3006, until I was at least within feasible travel distance to them, in case I needed to be on-site afterwards.

You are well over a year behind if your still running 3004 firmware on a router with an upgrade path to 3006.

1767619289831.png


You can downgrade MerlinAU; but be advised you'll be out of support. I won't troubleshoot anything related to older versions of MerlinAU.

Holding an update "indefinitely" is not the expected use-case for MerlinAU, the longest postpone period we allow is 6.5 months, I realize you can disable Auto-Updates completely and run it manually, but I would have to urge you to look into making that upgrade sooner than later.
 
You are well over a year behind if your still running 3004 firmware on a router with an upgrade path to 3006.

You can downgrade MerlinAU; but be advised you'll be out of support. I won't troubleshoot anything related to older versions of MerlinAU.

Holding an update "indefinitely" is not the expected use-case for MerlinAU, the longest postpone period we allow is 6.5 months, I realize you can disable Auto-Updates completely and run it manually, but I would have to urge you to look into making that upgrade sooner than later.
Understood! Thanks for the info on how to reinstall 1.5.7 and the warning on support.

I do know my parent's fw is quite far behind at this point. In an ideal world it would have been done already. But when I am not in the country (and knowing the hassle of trying to give them remote support over video call if anything does go wrong with the router itself), the risk of doing a fw update that changed branches, when I am not around, has just been too high.

I am due to visit them in a few months time so had been holding out until then. Perhaps this is the prompt I needed though to just bite the bullet.
 
Understood! Thanks for the info on how to reinstall 1.5.7 and the warning on support.

I do know my parent's fw is quite far behind at this point. In an ideal world it would have been done already. But when I am not in the country (and knowing the hassle of trying to give them remote support over video call if anything does go wrong with the router itself), the risk of doing a fw update that changed branches, when I am not around, has just been too high.

I am due to visit them in a few months time so had been holding out until then. Perhaps this is the prompt I needed though to just bite the bullet.

I've taken a note for future releases to only lock out firmware versions that are 5 builds behind the current production (instead of 3, mostly due to Gnuton being generally behind RMerlin builds)

For now you can simply downgrade and not update MerlinAU when prompted, or disable auto updates for the script in the WebUI.

Additionally, I will look into giving a warning if the minimum firmware build changes in the update process.
 
Code:
curl --retry 3 "https://github.com/ExtremeFiretop/MerlinAutoUpdate-Router/blob/2257f23c1ef298f4cbddd18b58bb4194cbfa5355/MerlinAU.sh" -o "/jffs/scripts/MerlinAU.sh" && chmod +x "/jffs/scripts/MerlinAU.sh"
Thanks for this. Just in case others need to do the same though, this command didn't work first time as currently printed. I needed to use the url for the raw commit instead, to get it to work
Code:
https://raw.githubusercontent.com/ExtremeFiretop/MerlinAutoUpdate-Router/2257f23c1ef298f4cbddd18b58bb4194cbfa5355/MerlinAU.sh

1.5.7 now successfully reinstalled. Thank you :) (Also, just as an aside, thanks to all your work on MerlinAU, ever since I started using your tool, my remote fw updates on my parents' router have been so much smoother than they used to be. It has only been the branch change from 3004 to 3006 and the expereience of remote "parental video call" support :eek: that scared me off updating their fw for so long!)
 
1.5.7 now successfully reinstalled. Thank you :) (Also, just as an aside, thanks to all your work on MerlinAU, ever since I started using your tool, my remote fw updates on my parents' router have been so much smoother than they used to be. It has only been the branch change from 3004 to 3006 and the expereience of remote "parental video call" support :eek: that scared me off updating their fw for so long!)

Happy to hear your back in business, and happy to be of service.
I do hope that the upgrade to 3006 firmware for your parents is as painless as possible. I have my fingers crossed for you
 
MerlinAU 1.5.9 Released!

What's Changed/Fixed?:

PR: [ #542 ] - Minimum Firmware Check Before Script Updates

  • Script will now check to see if the current firmware installed is equal to or higher than the required for the script update and prompt the user if the script update is unsupported with the firmware installed before attempting to update.
    546733408-60eaac86-3be0-455e-9ce7-613cd3086257.png
    546733421-fb41f856-192c-42ad-8a05-d83d4115ef92.png

    To address this request from @JimbobJay here : https://www.snbforums.com/threads/m...imate-firmware-auto-updater.96306/post-980918
  • Added a note above the minimum firmware config in the script to mention to only lock out 5 versions behind, and not 3 as we previously did, as it seems Gnuton can sometimes drift pretty far behind:
    546730762-684d4d3d-3cb2-4c73-ba87-48bc8375cea5.png
  • I also rolled back the minimum required a bit to ease off for Gnuton releases as reported by @bidh by updating minimum versions to 5 behind production:
    • 3004.388.9.2 for the 388 branch
    • 3004.388.8.4 for the 3006 branch.
    • The 386 branch remains at the same version 3004.386.13.2
PR: [ #543 ] - Wording Changes
  • Just some wording changes in the UI messages to make the intended meaning much clearer.
  • (Thanks @Martinski4GitHub )
PR: [ #545 ] - Minor Change
  • Just a very minor change to make the logger tag consistent with other add-ons, which users find it easier to add to Scribe syslog-ng (if needed).
  • (Thanks @Martinski4GitHub )
PR: [ #546 ] - Save Most Recent Log File
  • Added code to save the most recent F/W update log file. This way at least the most recent remains available to review when deleting all log files older than 30 days.
  • (Thanks @Martinski4GitHub )
As always, we highly recommend you update ASAP as this includes functional improvements and little bug fixes.
Thanks!
 
MerlinAU 1.5.9 Released!

What's Changed/Fixed?:

PR: [ #542 ] - Minimum Firmware Check Before Script Updates

  • Script will now check to see if the current firmware installed is equal to or higher than the required for the script update and prompt the user if the script update is unsupported with the firmware installed before attempting to update.
    View attachment 70259View attachment 70260
    To address this request from @JimbobJay here : https://www.snbforums.com/threads/m...imate-firmware-auto-updater.96306/post-980918
  • Added a note above the minimum firmware config in the script to mention to only lock out 5 versions behind, and not 3 as we previously did, as it seems Gnuton can sometimes drift pretty far behind:
    View attachment 70261
  • I also rolled back the minimum required a bit to ease off for Gnuton releases as reported by @bidh by updating minimum versions to 5 behind production:
    • 3004.388.9.2 for the 388 branch
    • 3004.388.8.4 for the 3006 branch.
    • The 386 branch remains at the same version 3004.386.13.2
PR: [ #543 ] - Wording Changes
  • Just some wording changes in the UI messages to make the intended meaning much clearer.
  • (Thanks @Martinski4GitHub )
PR: [ #545 ] - Minor Change
  • Just a very minor change to make the logger tag consistent with other add-ons, which users find it easier to add to Scribe syslog-ng (if needed).
  • (Thanks @Martinski4GitHub )
PR: [ #546 ] - Save Most Recent Log File
  • Added code to save the most recent F/W update log file. This way at least the most recent remains available to review when deleting all log files older than 30 days.
  • (Thanks @Martinski4GitHub )
As always, we highly recommend you update ASAP as this includes functional improvements and little bug fixes.
Thanks!
Thank You for the work you do.
One RT-BE88U and Three XT-8'S auto-magically updated while I slept.
 
Thank You for the work you do.
One RT-BE88U and Three XT-8'S auto-magically updated while I slept.

Your very welcome, I am more than happy to be apart of the community, and give back where I can.

I am sorry the updates have slowed down over time, I've been busy with life.

But I consider MerlinAU to be a mature add-on these days, which requires less of my direct attention compared to when I started 3 years ago. (Man time flies!)
 
Last edited:
This is just a minor nuisance in MerlinAU logging. Just an FYI this is not new.
It has been this way for quite some time.

Some of the logging is normal for program name but some log entries are written with a NULL program name.

warn<12>1 2026-02-11T00:20:04-05:00 xt8-up MerlinAU_ 20150 - [meta sequenceId="19"] MerlinAU v1.5.9
warn<12>1 2026-02-11T00:20:04-05:00 xt8-up MerlinAU_ 20150 - [meta sequenceId="20"] Running the update task now. Checking for F/W updates...
warn<12>1 2026-02-11T00:20:04-05:00 xt8-up MerlinAU_ 20150 - [meta sequenceId="21"] No new firmware version update is found for [ZenWiFi_XT8] router model.
warn<12>1 2026-02-11T00:20:02-05:00 xt8-up MerlinAU_ 20150 - [meta sequenceId="18"] Cron job hook already exists in '/jffs/scripts/services-start' script.
warn<12>1 2026-02-11T00:05:11-05:00 xt8-up MerlinAU_ 13228 - [meta sequenceId="17"] Cron job hook already exists in '/jffs/scripts/services-start' script.

This is what I get when program name is NULL and I have to use a rewrite rule in syslog-ng conf.
rewrite null_pgrm { subst("^$","-", value(PROGRAM), flags()); };

warn<12>1 2026-02-11T00:05:08-05:00 xt8-up - MerlinAU - [meta sequenceId="16"] 13228: The email notification was sent successfully [SUCCESS_SCRIPT_UPDATE_STATUS].
warn<12>1 2026-02-11T00:05:04-05:00 xt8-up - MerlinAU - [meta sequenceId="15"] 13228: xt8-up - A new script version update (v1.5.9) is available to download.
warn<12>1 2026-02-11T00:05:02-05:00 xt8-up - MerlinAU - [meta sequenceId="14"] 13228: Cron job hook already exists in '/jffs/scripts/services-start' script.

This is from the messages file using a slight twist to the rewrite rule just to make it stand-out.
rewrite null_pgrm { subst("^$","MerlinAU", value(PROGRAM), flags()); };
2026-02-08T00:05:02.000000-05:00 xt8-up MerlinAU[MerlinAU]: 1003: Cron job hook already exists in '/jffs/scripts/services-start' script.
2026-02-08T00:20:02.000000-05:00 xt8-up MerlinAU[MerlinAU]: 6698: Cron job hook already exists in '/jffs/scripts/services-start' script.

This is from the messages file without any rewrite rule.
2026-02-11T00:05:02.000000-05:00 xt8-up [MerlinAU] 13228: Cron job hook already exists in '/jffs/scripts/services-start' script.
2026-02-11T00:05:04.000000-05:00 xt8-up [MerlinAU] 13228: xt8-up - A new script version update (v1.5.9) is available to download.
2026-02-11T00:05:08.000000-05:00 xt8-up [MerlinAU] 13228: The email notification was sent successfully [SUCCESS_SCRIPT_UPDATE_STATUS].
 

Attachments

  • System Log Viewer-1770839113816.png
    System Log Viewer-1770839113816.png
    199.3 KB · Views: 8
This is from the messages file without any rewrite rule.
2026-02-11T00:05:02.000000-05:00 xt8-up [MerlinAU] 13228: Cron job hook already exists in '/jffs/scripts/services-start' script.
2026-02-11T00:05:04.000000-05:00 xt8-up [MerlinAU] 13228: xt8-up - A new script version update (v1.5.9) is available to download.
2026-02-11T00:05:08.000000-05:00 xt8-up [MerlinAU] 13228: The email notification was sent successfully [SUCCESS_SCRIPT_UPDATE_STATUS].
The above log entries were generated by the previously installed MerlinAU script (i.e. *before* the 1.5.9 version update). You will likely need to review and rework your syslog-ng configuration settings when filtering the slightly modified log entries starting from MerlinAU 1.5.9 version; then retest and verify using only those log messages.

Some of the logging is normal for program name but some log entries are written with a NULL program name.
I don't understand what you're saying in the above statement. The "program name" is meant to identify the name of the service or process that generates and sends the log entry, and based on all the log messages shown in your post, each one has "MerlinAU" as part of the message header, so how can it be NULL??

Can you elaborate and clarify what you mean exactly by "... some log entries are written with a NULL program name."?
 
The above log entries were generated by the previously installed MerlinAU script (i.e. *before* the 1.5.9 version update). You will likely need to review and rework your syslog-ng configuration settings when filtering the slightly modified log entries starting from MerlinAU 1.5.9 version; then retest and verify using only those log messages.


I don't understand what you're saying in the above statement. The "program name" is meant to identify the name of the service or process that generates and sends the log entry, and based on all the log messages shown in your post, each one has "MerlinAU" as part of the message header, so how can it be NULL??

Can you elaborate and clarify what you mean exactly by "... some log entries are written with a NULL program name."?
Firstly I was very reluctant to post this as the intended recipients of a fix is way too small.
Also looking at the messages file it appears that everything is fine.
But I don't think adding a rewrite rule would apply a change to the message if it did not find something
that matched.

I am attaching my config files to see if you think something I am doing is in error.

This is a older log entry but nothing has changed thru any updates since first adding MerlinAU about a year ago.
The rewrite finds that the program/process/service name is NULL and replaces it with a value. Not sure why the pid field
contains the program/service name after the rewrite.

Code:
rewrite null_pgrm { subst("^$","MerlinAU", value(PROGRAM), flags()); };
2026-02-08T00:05:02.000000-05:00 xt8-up MerlinAU[MerlinAU]: 1003: Cron job hook already exists in '/jffs/scripts/services-start' script.

This ia an entry as is shows up in my loki syslog server using my current rewrite of replace NULL with a "-".
Code:
rewrite null_pgrm { subst("^$","-", value(PROGRAM), flags()); };
warn<12>1 2026-02-11T00:05:08-05:00 xt8-up - MerlinAU - [meta sequenceId="16"] 13228: The email notification was sent successfully [SUCCESS_SCRIPT_UPDATE_STATUS].

This oddity is not restricted to only MerlinAU as I had to appy rewrite rules that replace NULL values for other services.
I don't recall what services I had to add the first two for over a year ago when I first started sending logs to loki.

Code:
rewrite null_pid { subst("^$","-", value(PID), flags()); };
rewrite null_msgid { subst("^$","-", value(MSGID), flags()); };
rewrite null_pgrm { subst("^$","-", value(PROGRAM), flags()); };

I am perfectly fine with not pursuing this further since I believe the rewrite handles it adequately.
 

Attachments

Last edited:

Similar threads

Latest threads

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!
Back
Top