What's new

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

Can I get clarification what you mean by "risk indication"
Do you mean like this?

View attachment 62565

This was added in version: 1.1.4 here:
Yes, but consider using ALL CAPS (since bold, underline, or the like not available in plaintext files) for text that you highlighted.
 
Yes, but consider using ALL CAPS (since bold, underline, or the like not available in plaintext files) for text that you highlighted.

Currently, if it's plain text it uses asterisk as per the link I sent.

I can add a all caps but we already have a way to flag it when it's plaintext emails and not HTML.

1732213251465.png
 
Last edited:
I think it is useful to always include the link. I want to read the changelog whether there is a high risk phrase or not.

I'm not sure how you would want this implemented... Do you want a separate email only for the changelogs if changelog verification is enabled?

Or would you want it directly in the update notification email if changelog verification is enabled?

Do you want the entire changelog or just a URL to the changelog?
 
Just the URL so I can click on it to read the changelog if I want to. It does not have to be related to changelog verification at all.

Just add a line to the New Firmware Update email that says click here to read the changelog. So I don't have go searching for it or read the forum to find it. That is all I am asking for.
 
Just add a line to the New Firmware Update email that says click here to read the changelog. So I don't have go searching for it or read the forum to find it.

Easy peasy, I already have that change ready in my personal version of MerlinAU. :)
 
MerlinAU 1.3.7 Released!

What's Changed/Fixed?:

NEW FEATURE AND BUG FIX:
PR: [ #364 ]
Enable MerlinAU Script Auto-Updates and Fix Backupmon Catch.
NEW FEATURE:
PR: [ #366 ]
Additions, Improvements & Fixes (Thanks @Martinski4GitHub @Martinski)
  • There are now 2 modes of operation to set the cron schedule: Guided & Custom.
    a) The "Menu-Guided Entry" is intended to help users select the MINUTES, HOUR, and DAYS for the cron schedule. Useful for users who are not familiar with the cron scheduling syntax.
    b) The "Custom Input/Entry" is intended for users who already know the cron scheduling syntax and can enter the full "raw" schedule string without much help.
  • Added code to synchronize the cron schedule for automatic script updates with the schedule for automatic F/W updates.
  • Currently, the check for automatic script updates will be performed daily but 15 minutes before the time when the cron for automatic F/W updates is scheduled. This ensures that the script is always updated first before proceeding to check for automatic F/W updates.
  • Fixed code in the cron schedule that allowed setting a cron job to run every minute and/or every hour of the day. Technically, this should not be allowed for the purposes of doing automatic F/W updates.
  • (Thanks @Martinski4GitHub @Martinski)
NEW FEATURE AND BUG FIX:
PR: [ #367 ]
Fixes: Cron Schedule Calculations, Changelog Verification, Post-Update Version Comparison
BUG FIX:
PR: [ #368 ]
Improvements & Fixes (Thanks @Martinski4GitHub @Martinski)
  • Made improvements in the code that builds the cron schedule string for the automatic script updates to make it more robust.
  • Made improvements in the cron schedule validation code & some minor wording changes in the error messages generated when validation fails.
  • Fixed bugs when trying to determine if we have a "386" build version in order to select the corresponding changelog URL.
As always, we highly recommend you update ASAP as this includes functional improvements and little bug fixes. Wiki has been updated.
Tested against the latest 3004.388.8_4 and 3006.102.2_2

Significant Screenshots:

1732992915623.png

1732992924578.png

1732992959814.png

1732992972058.png

1732992996137.png
 
So it became true!!! 😁 Thanks!!!

A little thing. I'm getting an illegal Instruction when pressing any key only inside advanced options menu, on main router.
This doesn't happen on aimesh node....

I run the script with option "-x":

Code:
printf ----------------------------------------------------------\n
----------------------------------------------------------
+ _GetKeypressInput_ Enter selection:
+ local inputStrLenMAX=16 inputString promptStr
+ local charNum inputStrLen keypressCount
+ local theKeySeqCnt maxKeySeqCnt=4 retCode
+ local theKeySeqNum maxKeySeqNum=27251624
+ local offlineModeFlag=false
+ [ -n xSETx ]
+ offlineModeFlag=true
+ [ 1 -eq 0 ]
+ [ -z Enter selection: ]
+ promptStr=Enter selection:
+ charNum=
+ inputString=
+ inputStrLen=0
+ keypressCount=0
+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s
Enter selection:  + local savedIFS=
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1
            Illegal instruction
                               + echo e
                                       + stty 500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
                                                + IFS= theChar=e
+ printf %d 'e
+ charNum=101
+ [ 101 -eq 0 ]
+ [ 101 -eq 10 ]
+ [ 101 -eq 13 ]
+ [ 101 -eq 8 ]
+ [ 101 -eq 127 ]
+ [ 101 -eq 21 ]
+ [ 101 -gt 31 ]
+ [ 101 -lt 127 ]
+ [ 0 -le 16 ]
+ inputString=e
+ inputStrLen=1
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s e
Enter selection:  e+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ continue
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1
 
So it became true!!! 😁 Thanks!!!

A little thing. I'm getting an illegal Instruction when pressing any key only inside advanced options menu, on main router.
This doesn't happen on aimesh node....

I run the script with option "-x":

Code:
printf ----------------------------------------------------------\n
----------------------------------------------------------
+ _GetKeypressInput_ Enter selection:
+ local inputStrLenMAX=16 inputString promptStr
+ local charNum inputStrLen keypressCount
+ local theKeySeqCnt maxKeySeqCnt=4 retCode
+ local theKeySeqNum maxKeySeqNum=27251624
+ local offlineModeFlag=false
+ [ -n xSETx ]
+ offlineModeFlag=true
+ [ 1 -eq 0 ]
+ [ -z Enter selection: ]
+ promptStr=Enter selection:
+ charNum=
+ inputString=
+ inputStrLen=0
+ keypressCount=0
+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s
Enter selection:  + local savedIFS=
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1
            Illegal instruction
                               + echo e
                                       + stty 500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
                                                + IFS= theChar=e
+ printf %d 'e
+ charNum=101
+ [ 101 -eq 0 ]
+ [ 101 -eq 10 ]
+ [ 101 -eq 13 ]
+ [ 101 -eq 8 ]
+ [ 101 -eq 127 ]
+ [ 101 -eq 21 ]
+ [ 101 -gt 31 ]
+ [ 101 -lt 127 ]
+ [ 0 -le 16 ]
+ inputString=e
+ inputStrLen=1
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s e
Enter selection:  e+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ continue
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1

Thanks for reporting. I'm just waking up now, it was a late night sorry for the delay. Starting my day, will check into your message in a moment.

Does it cause you any issues in the advanced menu besides the message? Can you still change options and settings for example?
 
So it became true!!! 😁 Thanks!!!

A little thing. I'm getting an illegal Instruction when pressing any key only inside advanced options menu, on main router.
This doesn't happen on aimesh node....

I run the script with option "-x":

Code:
printf ----------------------------------------------------------\n
----------------------------------------------------------
+ _GetKeypressInput_ Enter selection:
+ local inputStrLenMAX=16 inputString promptStr
+ local charNum inputStrLen keypressCount
+ local theKeySeqCnt maxKeySeqCnt=4 retCode
+ local theKeySeqNum maxKeySeqNum=27251624
+ local offlineModeFlag=false
+ [ -n xSETx ]
+ offlineModeFlag=true
+ [ 1 -eq 0 ]
+ [ -z Enter selection: ]
+ promptStr=Enter selection:
+ charNum=
+ inputString=
+ inputStrLen=0
+ keypressCount=0
+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s
Enter selection:  + local savedIFS=
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1
            Illegal instruction
                               + echo e
                                       + stty 500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
                                                + IFS= theChar=e
+ printf %d 'e
+ charNum=101
+ [ 101 -eq 0 ]
+ [ 101 -eq 10 ]
+ [ 101 -eq 13 ]
+ [ 101 -eq 8 ]
+ [ 101 -eq 127 ]
+ [ 101 -eq 21 ]
+ [ 101 -gt 31 ]
+ [ 101 -lt 127 ]
+ [ 0 -le 16 ]
+ inputString=e
+ inputStrLen=1
+ _ShowInputString_
+ printf \r\033[0KEnter selection:  %s e
Enter selection:  e+ _ClearKeySeqState_
+ theKeySeqNum=0
+ theKeySeqCnt=0
+ true
+ offlineUpdateFlag=false
+ continue
+ _GetRawKeypress_
+ local savedSettings
+ stty -g
+ savedSettings=500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ stty -echo raw
+ dd count=1

Can you run:

Code:
which dd

and also:

Code:
type dd

on the primary router please and report the output?
 
Thanks for reporting. I'm just waking up now, it was a late night sorry for the delay. Starting my day, will check into your message in a moment.

Does it cause you any issues in the advanced menu besides the message? Can you still change options and settings for example?
It shows the error, but the option is written and on enter press it continues as nothing happened.
However every time I type something, on that particular menu, the error is shown...

adminGT-AX6000/tmp/home/root type dd
dd is /opt/bin/dd
 
@maghuro

Can you try the developer version of MerlinAU and report back?

Code:
sh MerlinAU.sh develop
 
@maghuro

Can you try the developer version of MerlinAU and report back?

Code:
sh MerlinAU.sh develop
That should be sh /jffs/scripts/MerlinAU.sh develop.

The developer version does not break my installation, which was fully functional on the stable branch. Might we get to test the MerlinAU(AU) feature soon? 😂
 
That should be sh /jffs/scripts/MerlinAU.sh develop.

Correct, I was running from the scripts directory, haha

The developer version does not break my installation, which was fully functional on the stable branch. Might we get to test the MerlinAU(AU) feature soon? 😂

Assuming it resolved his issue! Seems maybe an issue related to priority, Martinski made a change to prioritize the built in binaries.
 
Correct, I was running from the scripts directory, haha



Assuming it resolved his issue! Seems maybe an issue related to priority, Martinski made a change to prioritize the built in binaries.
It was indeed! Just read the commit, and it really was a priorities issue! Thanks for your prompt fix.

Was wondering... why did I have this issue on main router and not on aimesh node?
 
Was wondering... why did I have this issue on main router and not on aimesh node?

I'll just copy what Martinski said as I think he explained it best:

"The actual root cause is that the current default setup in Entware is to give top priority to Entware binaries in the PATH environment variable so those binaries get called first over the built-in binaries, hence the issues reported.
This affects all Entware utilities installed but, as mentioned, the issues come up only when the behavior is different between the native & the external binary."


Basically whatever entware binary is on the main router is causing this, since the behavior is different than the built in binary.
On your node; you must not have the same set of entware binaries installed/effecting our script.

This is why I was checking your coreutils version via DM :)
Thanks for reporting! Version 1.3.8 now released into the wild with the fix to prioritize the built-in binaries.
 
Last edited:
MerlinAU 1.3.8 Released!

What's Changed/Fixed?:

BUG FIX:
PR: [ #371 ]
PATH to list built-in binary paths first.
As always, we highly recommend you update ASAP as this includes functional improvements and little bug fixes.
Tested against the latest 3004.388.8_4 and 3006.102.2_2

Significant Screenshots:

Thanks!
 
MerlinAU(AU) works as designed. I couldn't wait until 23:45 so I launched the MerlinAU from the command line with the checkupdates argument. Updated to v1.3.8 without a hitch. Nine other routers are set to update overnight...
 
MerlinAU(AU) works as designed. I couldn't wait until 23:45 so I launched the MerlinAU from the command line with the checkupdates argument. Updated to v1.3.8 without a hitch. Nine other routers are set to update overnight...

Fantastic news! Our implemented actually doesn't require the checkupdates argument.

If you just run MerlinAU normally (without the checkupdates argument) it should auto update anyways as long as it's enabled.

And of course, as you mentioned the cron job tonight will also do the same thing for any other instances of the script automatically. :)

I'm looking forwards to hearing how it works for all your routers tomorrow! Version 1.3.7 should be the last one you need to do manually for all those routers hahaha!
 
Fantastic news! Our implemented actually doesn't require the checkupdates argument.

If you just run MerlinAU normally (without the checkupdates argument) it should auto update anyways as long as it's enabled.

And of course, as you mentioned the cron job tonight will also do the same thing for any other instances of the script automatically. :)

I'm looking forwards to hearing how it works for all your routers tomorrow! Version 1.3.7 should be the last one you need to do manually for all those routers hahaha!
I enabled AU for all of those routers -- cron should kick off automatically at 23:45!
 

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