What's new

MerlinAU MerlinAU v1.1.1 - 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!

MerlinAU Version 1.0.9 released.

What's Changed/Fixed?:

PR: (#167) in response to @Yaffle 's reported problems.
-Improvements to Memory Management:
Now on the final cleanup attempt it will shutdown non-critical services to make RAM for the flash.
We kept the original logic with a 50% overhead, we dropped the idea of decreasing the overhead and using a kernel watermarks, we identified oddities/issues with some routers 'potentially' misreporting memory usage.
Even though we were reading the value directly from the "/proc/meminfo" which is part of the kernel's special pseudo-filesystem that provides access to the most current information of the running OS.
This does not give me or Martinski the confidence to redesign this now. However this can be re-assessed at a later time.

-Removed the unnecessary Migration Function:
This next release will drop the built-in migration function, it's been around for months since pre-release v0.2.54 so it should be safe to remove and free some space in the script for new logic.
This function I designed was always meant to be temporary. If somehow your only updating from the pre-release v0.2.54 version now, you will have to manually migrate your settings to the new settings directory.

-Added the Toggle option in the Advanced Options for BACKUPMON.
This next release will give the user control over the BACKUPMON backups, the toggle is placed in the "Advanced Options" menu and is hidden if BACKUPMON is not installed. Default Options is still "Enabled".
This is for users who already have daily backups configured, and simply wants MerlinAU to handle Auto-Updates instead of running a backup every single time. The reason is that many people seem to be doing daily backups anyway, and doing another backup the same day due to the F/W Update might be unnecessary time used to backup a second time which is avoidable. Also, when doing a manual F/W Update to test & check things out, one may want to skip the backup step for some reason.

PR: (#168) in response to @vlord s reported problems.
-Fixes & improvements to clarify F/W Update schedule:
This PR improves and fixes the clarity around when a F/W occurs in relation to scheduled date & time given in the postponement days and the last F/W Notification update. The user message & menu now show both the date & time of the F/W Update notification. Currently, the time resolution is in minutes. (Thanks @Martinski4GitHub)!
Also PR: #169 in response to @vlord s reported problems.
More code improvements when displaying the F/W Update Notification "date+time" and for calculating when the next F/W Update can begin to occur based on the number of postponed days, adjusting for the hour discrepancy when Daylight Saving Time occurs between the last F/W Notification "date+time" stamp and the current time. (Thanks @Martinski4GitHub)!

PR: #172
Various fixes & improvements. (Thanks @Martinski4GitHub)!

PR: #173
Move Cron schedule option out of "Advanced Options" menu, and returned to "Main" menu.

Tightening up some code & general code improvements with PRs inbetween.
As always, we highly recommend you update whenever possible. Enjoy the new release! :)

Significant screenshots:
1711305603498.png

1711305593475.png

1711305597959.png
 
Last edited:
MerlinAU Version 1.0.10 released.

IMPORTANT BUG-FIX
In response to a report made in the forums by: TonyK132
https://www.snbforums.com/threads/m...dater-now-available-in-amtm.88577/post-898975

We have created PR: #176 "Improvements when calling the crontab cmd."

Also PR: #178 "Improving code to avoid unset variables."

PR: #180
Included debug logging if the router goes through the memory cleanup process so the logs will give us a very detailed breakdown of the memory status.

All submitted by @Martinski4GitHub . This was a full @Martinski special release.
MAJOR THANK YOU! This was one of those tricky ones. Full props and very impressed by Martinski's amazing skill!

Significant screenshots:
GUI and feature-set remains the same, only behind the scene bug fixes and improvements.


Tightening up some code & general code improvements with PRs inbetween.
As always, we highly recommend you update whenever possible. Enjoy the new release! :)
 
Did you forget to update the title of this topic (still 1.0.9)?
Sure did! Thanks for that it's been updated :)
 
Have been pondering AiMesh node update. With Merlin on the node(s), AMTM works. Set up AUMerlin on the node to run at a different time than the router. There would be no real need to do a backup.
Possible?
Why would they need to be on stock firmware? You initiate a manual update of AiMesh nodes now from the parent.
Because in the built in merlin firmware, the only nodes that support the parent firmware API downloading from the upstream and install are stock firmware on nodes. The nodes that run merlin have to be manually downloaded, and manually installed when triggering firmware API from parent node.

Basically if I trigger a firmware update check from parent node(running merlin firmware), the only nodes which will be eligible for the API to do the update for me(meaning without me manually downloading and manually installing myself) , are nodes that run stock firmware.
I was on 1.0, and I hit No and then renabled it, on the first node I hit Y and it was also on 1.0.
Waiting on the next Alpha/Beta/Release cycle to instal it on the Router
I'm not well versed in the API and would need to investigate this API more.

What I can say for sure is as of right now there's no plans to implement a check for child nodes from the parent node.

And there's no plans to ever support official Asus firmware because they already have their own auto-update process.

So it's unlikely to ever update child stock Asus nodes. However there is a potential to at least check them maybe someday for versioning and advise. Will need to investigate this path.

Always open to contributions if you guys have ideas!

@bbunge
@visortgw
@SomeWhereOverTheRainBow
@aex.perez

In response to all the messages around AiMesh nodes. I've started becoming familar with the API and have started working on a small side project to retrieve data from the nodes.
(Only reporting versions, no central flashing from the parent router, and please don't request it yet)
This is not as simple as flashing on local hardware for a number of obvious reasons, and I need to take my time to learn the implications correctly.
I won't be just tossing this out to the wild to see how it does.

That being said, here is some previews below, I am looking for testers with nodes, ideally LOTS OF THEM. (Martinski has none and Viktor has none setup)
If your interested in testing the latest dev version and have AiMesh nodes, please let me know. :)

1711809822278.png


1711809835869.png


Simulating offline nodes for live readings:

1711810078178.png
 
Last edited:
@bbunge
@visortgw
@SomeWhereOverTheRainBow
@aex.perez

In response to all the messages around AiMesh nodes. I've started becoming familar with the API and have started working on a small side project to retrieve data from the nodes.
(Only reporting versions, no central flashing from the parent router, and please don't request it yet)
This is not as simple as flashing on local hardware for a number of obvious reasons, and I need to take my time to learn the implications correctly.
I won't be just tossing this out to the wild to see how it does.

That being said, here is some previews below, I am looking for testers with nodes, ideally LOTS OF THEM. (Martinski has none and Viktor has none setup)
If your interested in testing the latest dev version and have AiMesh nodes, please let me know. :)

View attachment 57561

View attachment 57562

Simulating offline nodes for live readings:

View attachment 57566
I will take a look at this as soon as I get a chance. I got 9 nodes. I will give it a run ASAP.
 
I will take a look at this as soon as I get a chance. I got 9 nodes. I will give it a run ASAP.

@visortgw has 5 and gave me a quick test example already and with that I have 2 things to quickly check into, and then I'll ask for another round of tests.

I have a node myself but only one, so it's a little tricky to test how the code will act with multiple even when I simulate fake nodes.
 
@visortgw has 5 and gave me a quick test example already and with that I have 2 things to quickly check into, and then I'll ask for another round of tests.

I have a node myself but only one, so it's a little tricky to test how the code will act with multiple even when I simulate fake nodes.
As a clarification, I have router (GT-AX6000) plus four AiMesh nodes (GT-AX16000, GT-AX6000, and (2) RT-AX86U).
 
As a clarification, I have router (GT-AX6000) plus four AiMesh nodes (GT-AX16000, GT-AX6000, and (2) RT-AX86U).
This is a sample of what it looks like in dev version of MerlinAU (posted with permission of @ExtremeFiretop):
Code:
    __  __           _ _               _    _
   |  \/  |         | (_)         /\  | |  | |
   | \  / | ___ _ __| |_ _ __    /  \ | |  | |
   | |\/| |/ _ | '__| | | '_ \  / /\ \| |  | |
   | |  | |  __| |  | | | | | |/ ____ | |__| |
   |_|  |_|\___|_|  |_|_|_| |_/_/    \_\____/ v1.1.0
                                              
============== AiMesh Node(s) Info Menu ==============
-----------------------------------------------------

                   AiMesh Node(s): 5
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 1                      │
   │ GT-AX6000/GT-AX6000-9980: 192.168.222.1              │
   │ F/W Version Installed: 3004.388.7.alpha1-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────────┐
   │                        Node ID: 2                        │
   │ GT-AX6000/GT-AX6000-7B78: 192.168.222.254                │
   │ F/W Version Installed: 3004.388.7.alpha1_rog-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                         │
   └──────────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 3                      │
   │ RT-AX86U/RT-AX86U-9B08: 192.168.222.253              │
   │ F/W Version Installed: 3004.388.7.alpha1-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 4                      │
   │ RT-AX86U/RT-AX86U-84A8: 192.168.222.252              │
   │ F/W Version Installed: 3004.388.7.alpha1-g83fdb5cabf │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────────┐
   │                        Node ID: 5                        │
   │ GT-AXE16000/GT-AXE16000-B4F0: 192.168.222.250            │
   │ F/W Version Installed: 3004.388.7.alpha1_rog-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                         │
   └──────────────────────────────────────────────────────────┘

  tr.  Test Reboot

  e.  Return to Main Menu
-----------------------------------------------------
Enter selection:
 
This is a sample of what it looks like in dev version of MerlinAU (posted with permission of @ExtremeFiretop):
Code:
    __  __           _ _               _    _
   |  \/  |         | (_)         /\  | |  | |
   | \  / | ___ _ __| |_ _ __    /  \ | |  | |
   | |\/| |/ _ | '__| | | '_ \  / /\ \| |  | |
   | |  | |  __| |  | | | | | |/ ____ | |__| |
   |_|  |_|\___|_|  |_|_|_| |_/_/    \_\____/ v1.1.0
                                            
============== AiMesh Node(s) Info Menu ==============
-----------------------------------------------------

                   AiMesh Node(s): 5
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 1                      │
   │ GT-AX6000/GT-AX6000-9980: 192.168.222.1              │
   │ F/W Version Installed: 3004.388.7.alpha1-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────────┐
   │                        Node ID: 2                        │
   │ GT-AX6000/GT-AX6000-7B78: 192.168.222.254                │
   │ F/W Version Installed: 3004.388.7.alpha1_rog-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                         │
   └──────────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 3                      │
   │ RT-AX86U/RT-AX86U-9B08: 192.168.222.253              │
   │ F/W Version Installed: 3004.388.7.alpha1-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────┐
   │                      Node ID: 4                      │
   │ RT-AX86U/RT-AX86U-84A8: 192.168.222.252              │
   │ F/W Version Installed: 3004.388.7.alpha1-g83fdb5cabf │
   │ F/W Update Available: NONE FOUND                     │
   └──────────────────────────────────────────────────────┘
   ┌──────────────────────────────────────────────────────────┐
   │                        Node ID: 5                        │
   │ GT-AXE16000/GT-AXE16000-B4F0: 192.168.222.250            │
   │ F/W Version Installed: 3004.388.7.alpha1_rog-g4c689dffeb │
   │ F/W Update Available: NONE FOUND                         │
   └──────────────────────────────────────────────────────────┘

  tr.  Test Reboot

  e.  Return to Main Menu
-----------------------------------------------------
Enter selection:

I should mention, if this goes into an official release the test function for the reboot will be gone and it will only be to report the update status of the nodes currently.

The test function was only to test actions over the API.
 
I should mention, if this goes into an official release the test function for the reboot will be gone and it will only be to report the update status of the nodes currently.

The test function was only to test actions over the API.
Just catching up but should I assume this is to update the nodes using a single instance of the script on the router vs. the way I have it now where a version of the script lives on the router and individually on each node?

Not that I have a peference on either approach, I have other scripts on the nodes as well, less of an issue when integrated with email.
But fully admit I not have the complete picture...
 
Just catching up but should I assume this is to update the nodes using a single instance of the script on the router vs. the way I have it now where a version of the script lives on the router and individually on each node?

Not that I have a peference on either approach, I have other scripts on the nodes as well, less of an issue when integrated with email.
But fully admit I not have the complete picture...

As mentioned above here:

(Only reporting versions, no central flashing from the parent router, and please don't request it yet)
and here:
I should mention, if this goes into an official release the test function for the reboot will be gone and it will only be to report the update status of the nodes currently.

The goal for now would be to have the instance of the script report versions of all the nodes.
It's a baby step. From there we can continue to learn and investigate what we want to do.

For now it's probably just going to tie into the email notification system to advise if a node falls behind.
Don't expect anything more feature wise yet.
 
As mentioned above here:


and here:


The goal for now would be to have the instance of the script report versions of all the nodes.
It's a baby step. From there we can continue to learn and investigate what we want to do.

For now it's probably just going to tie into the email notification system to advise if a node falls behind.
Don't expect anything more feature wise yet.
... YET, he says. 🤣
 
... YET, he says. 🤣

I am reporting my progress as I learn, and yes I will admit the final goal is to have a single instance handle more control than just reporting versions. but I am making it very clear to not to expect it and I'm not making any promises that ever gets officially added.

For now it's the feature I have ready, and it's a baby step to potentially more down the line. We shall see 😉
 
As mentioned above here:


and here:


The goal for now would be to have the instance of the script report versions of all the nodes.
It's a baby step. From there we can continue to learn and investigate what we want to do.

For now it's probably just going to tie into the email notification system to advise if a node falls behind.
Don't expect anything more feature wise yet.
Crawl, walk, run ;)
Not requesting any features.
I suspect with the script running on the router and nodes, as I do now, and on a relavtive similar schedule. I get three separate emails to check, vs. one (for now 🤭)
👍
 
Crawl, walk, run ;)
Not requesting any features.
I suspect with the script running on the router and nodes, as I do now, and on a relavtive similar schedule. I get three separate emails to check, vs. one (for now 🤭)
👍

Exactly. if you only had MerlinAU on the master, and you only wanted reporting;
it could give a single email with all the versions instead of sending you 3 emails or 5 emails the night a new update comes out.

Even if you have MerlinAU on each node as you do now, you could simply disable email notifications on all nodes except the master and let it handle the single notification. Etc.
There is value to learning this which is why I am, but no promises anything more feature wise be added than what I have now.
I'm investigating and today was really the first step to making sure I could get back the versions of all the nodes in a multi node environment.

Which seems to be working correctly so I just need to touch up a bit of that logic.
 
Exactly. if you only had MerlinAU on the master, and you only wanted reporting;
it could give a single email with all the versions instead of sending you 3 emails or 5 emails the night a new update comes out.

Even if you have MerlinAU on each node as you do now, you could simply disable email notifications on all nodes except the master and let it handle the single notification. Etc.
There is value to learning this which is why I am, but no promises anything more feature wise be added than what I have now.
I'm investigating and today was really the first step to making sure I could get back the versions of all the nodes in a multi node environment.

Which seems to be working correctly so I just need to touch up a bit of that logic.
On the positive, nice!
on the more positive, anything that's learned will only to lead and build upon the library of scripts/integrations

On the negative, one less reason to have for avoiding any wifely honey do's the morning after an upgrade as I check emails and status 🤷‍♂️ ;)
 
Exactly. if you only had MerlinAU on the master, and you only wanted reporting;
it could give a single email with all the versions instead of sending you 3 emails or 5 emails the night a new update comes out.

Even if you have MerlinAU on each node as you do now, you could simply disable email notifications on all nodes except the master and let it handle the single notification. Etc.
There is value to learning this which is why I am, but no promises anything more feature wise be added than what I have now.
I'm investigating and today was really the first step to making sure I could get back the versions of all the nodes in a multi node environment.

Which seems to be working correctly so I just need to touch up a bit of that logic.
I will perform some tests when I get a free moment on my network. Currently the network is a bit busy.

This is what I will be checking against.

1711849193150.png
 
I will perform some tests when I get a free moment on my network. Currently the network is a bit busy.

This is what I will be checking against.

View attachment 57578

oh lord, this is exactly why AiMesh get their own menu lol!
Initially it looked like this:

1711849347633.png


Until I realized some people have 4, 5, 9 nodes... ;)
 

Latest threads

Sign Up For SNBForums Daily Digest

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