What's new

[Release] AB-Solution 3 - The Ad Blocking Solution

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

Status
Not open for further replies.
AB-Solution 4(TM) will be one hell of an ad-blocker if I add all the stuff you, other members and me thought as a 'nice thing to have' feature.
I've added your text to the appropriate list.
As one one the many suggestions that have been put forward by myself and others for AB mark X, i will freely admit this one is a bit ( perhaps far) "out there". But its that flow of ideas ( even the daft/unrealistic ones) that will eventually coalesce into a new workable enhancement to the script....and i have to say that, thus far it's turned out pretty kick-butt :)
 
(...) thus far it's turned out pretty kick-butt :)

First preview of what AB-Solution 3.1 will look like.
A lot of changes were made that are not visible in the AB-UI screenshots, but for the trained eye, you might see a hint at what's been added.

The Main Menu, developer Mode (dM) enabled, (ps) with pre-installed Entware-NG:

SiVILn1.png



Sub Menu with active cron jobs shown:

vYmx6bw.png


Sub Menu with devices info shown:

VXolb1j.png
 
As of this morning, AB-Solution 3.1 is in the hands of the beta testers.

Reports so far are very encouraging, with good tips, suggestions and corrections by the team.
No release day set at the moment, it heavily depends on what we find and come up with for the release version.
 
Hey TLC, if you're taking suggestions for enhancements, I have a couple. Perhaps these have been suggested and dismissed already, but I didn't come across them in briefly searching this thread.

1) Allow the user to specify an install directory below the root of the chosen device. It's just my personal preference to keep the root clean, and I can see no technical reason why AB needs to be so prescriptive.
I actually tried to just change the line that sets the install directory in the base install script, and although that worked for some of the install, at some point another shell script got called where the assumed install directory was again hard-coded and I ended up with a mess. Obviously such a change would need to be coordinated across all your various shell scripts, but I wouldn't think it would be all that difficult given you use shell variables all through the code.

2) Remove the unneeded requirement that the "entware" directory be named "entware" or "entware-ng." Part of the elegance of the Merlin/Entware integration is that there is exactly one place where that directory name matters, and that is in post-mount where the link to '/tmp/opt' is made. From that point on, everything should only reference "/opt." So if I want to name that directory "HeresWhereTheMagicHappens," that should be my business (so long as it's a legitimate Linux directory name), and there is absolutely no reason why the AB installer should care. You already validate that entware is installed and working (by validating /tmp/opt is legit, and opkg exists). I suggest just leave it at that (or give a warning at most) for those of us that are taking advantage of the pristine architecture RMerlin & the Entware folks created for us and doing things a little differently.

Just my short wish list (so far) for this outstanding software package you've created.
 
Hey TLC, if you're taking suggestions for enhancements, I have a couple. Perhaps these have been suggested and dismissed already, but I didn't come across them in briefly searching this thread.

1) Allow the user to specify an install directory below the root of the chosen device. It's just my personal preference to keep the root clean, and I can see no technical reason why AB needs to be so prescriptive.
I actually tried to just change the line that sets the install directory in the base install script, and although that worked for some of the install, at some point another shell script got called where the assumed install directory was again hard-coded and I ended up with a mess. Obviously such a change would need to be coordinated across all your various shell scripts, but I wouldn't think it would be all that difficult given you use shell variables all through the code.

2) Remove the unneeded requirement that the "entware" directory be named "entware" or "entware-ng." Part of the elegance of the Merlin/Entware integration is that there is exactly one place where that directory name matters, and that is in post-mount where the link to '/tmp/opt' is made. From that point on, everything should only reference "/opt." So if I want to name that directory "HeresWhereTheMagicHappens," that should be my business (so long as it's a legitimate Linux directory name), and there is absolutely no reason why the AB installer should care. You already validate that entware is installed and working (by validating /tmp/opt is legit, and opkg exists). I suggest just leave it at that (or give a warning at most) for those of us that are taking advantage of the pristine architecture RMerlin & the Entware folks created for us and doing things a little differently.

Just my short wish list (so far) for this outstanding software package you've created.
You bring up two good points.
1) In the spirit of /tmp/opt, I have an early version of AB2.1 that uses the /tmp/ab-solution link. It makes everything so much simpler in all scripts.
But I felt it as preposterous to link my ad-blocker to the /tmp file structure at the time. AB2.1 was meant to be the update for AB2.x and was never released.
It evolved into what is now the current version: AB-Solution 3.

With the popularity AB gained with the current version, I look at it differently and am also bolder in what may be appropriate for 'my little ad-blocker script'. The /opt/ab-solution link is planned for the next major version, AB4.
But I don't support your suggestion to freely select the name of the install directory. After all, it is the coders decision how to name the application and it's underlying folder and file structure.
I'm sure you agree with me that no one would ask Linus Torvalds to build in a user defined name for the /etc directory, but within /etc, it's all at the coders discretion.

2) AB3.1 will support 'entware', 'entware-ng' and finally, the 'entware-ng.arm' install folders. All entware-setup scripts out there will by default install into one of these three folders.
AB-Solution will install a new installation into the /entware directory, unless a already working installation is found in /entware-ng and /entware-ng.arm.
To determine if AB has to add this to the post-mount I need a reliable way of finding out what the directory is called and make the decision to add or overwrite the entries in post-mount.
AB also inoculates the entware install by writing the /tmp/opt/etc/absolution.sig file. This is to make sure AB does not alter the S80pixelserv-tls if another Entware install is plugged in.
This is my philosophy and I fared very well with it.
So, my question is, would you ask the Entware maintainers to build in an option in their script to user define the install directory? Probably not.
 
Last edited:
Is there a way to block specific ip adresses ? I want to block some chinese ip from my baby cam but there's no dns. Thanks.
 
Is there a way to block specific ip adresses ? I want to block some chinese ip from my baby cam but there's no dns. Thanks.
AB solution is a hosts based blocker, so you will have to find another method to block specific IPs.
adapting one of the ipset scripts floating around in the forum pages might suit your needs.
 
You bring up two good points.
1) In the spirit of /tmp/opt, I have an early version of AB2.1 that uses the /tmp/ab-solution link. It makes everything so much simpler in all scripts.
But I felt it as preposterous to link my ad-blocker to the /tmp file structure at the time. AB2.1 was meant to be the update for AB2.x and was never released.
It evolved into what is now the current version: AB-Solution 3.

With the popularity AB gained with the current version, I look at it differently and am also bolder in what may be appropriate for 'my little ad-blocker script'. The /opt/ab-solution link is planned for the next major version, AB4.
But I don't support your suggestion to freely select the name of the install directory. After all, it is the coders decision how to name the application and it's underlying folder and file structure.
I'm sure you agree with me that no one would ask Linus Torvalds to build in a user defined name for the /etc directory, but within /etc, it's all at the coders discretion.

2) AB3.1 will support 'entware', 'entware-ng' and finally, the 'entware-ng.arm' install folders. All entware-setup scripts out there will by default install into one of these three folders.
AB-Solution will install a new installation into the /entware directory, unless a already working installation is found in /entware-ng and /entware-ng.arm.
To determine if AB has to add this to the post-mount I need a reliable way of finding out what the directory is called and make the decision to add or overwrite the entries in post-mount.
AB also inoculates the entware install by writing the /tmp/opt/etc/absolution.sig file. This is to make sure AB does not alter the S80pixelserv-tls if another Entware install is plugged in.
This is my philosophy and I fared very well with it.
So, my question is, would you ask the Entware maintainers to build in an option in their script to user define the install directory? Probably not.
We'll probably never see eye to eye here, but please take my input in the spirit of "continuous improvement." I think the fundamental issue we're having is I'm a "play nice in the sandbox" kind of guy, you're of the "for your own good, I'll define your sandbox for you." I'll just make a few more comments and go away.

1) It appears we may still be talking past each other. I'm not asking to "freely select the name of the install directory," but rather just the initial location of it. I think you'd be hard pressed to find any other legitimate Linux add-on application that doesn't support that capability. You can still require that it be installed in "adblocking," and totally define the underlying directory and file structure, but let me put it in an initial subdirectory of my choosing, at least one level lower than the directory at the mount point.

The motivation is simple. The AsusWRT implementation of Samba creates a share for all directories at that 'just above the mount point' level (i.e. those directories in the root of each USB volume). It makes no sense to create a Samba share for the 'adblocking' folder, and just adds muddle to those of us that use Samba and like to keep a neat and tidy look. By placing that adblocker folder one level deeper in the hierarchy, that Samba share is never created.

Your comparison to Linus Torvalds is apples to oranges. He defined the OS, you're just an add-on application. I think a more relevant comparison is to a standard Linux add-on app like minidlna. You can install the application anywhere you choose (it doesn't care), and it learns about its required directories through its .conf file. There is a default location for its .conf file, or you can specify it on the command line. In the .conf file, one line specifies the location of the db_dir, however once specified, minidlna owns the structure of the directories and files contained therein.

That overall philosophy and structure is repeated across the vast majority of UNIX/Linux add-on applications, and I would encourage you to think about applying that to AB, to give it a more mature look and feel.

2) Let me start with: "Would you ask the Entware maintainers to build in an option in their script to user define the install directory?" I don't need to, it's already fully supported!

The front-end install script(s) you're referring to don't come from the entware repository. There are numerous variations floating around, all just provided as a convenience to new users. You have one hard-coded in your AB scripts, there is one that comes with the Merlin firmware, and there are plenty more on various external web sites. They all boil down to just 3 steps:

- define an install directory somewhere on a Linux file system
- link that directory to '/tmp/opt' (the "magic hook" built into AsusWRT-Merlin)
- download and run the "real" installer script from the Entware repository (this script varies by processor architecture)

Nowhere in the "real" entware install script (the one downloaded from pkg.entware.net) is there a reference to any flavor of "entware" directory. It simply installs to /opt (which has been pre-linked to '/tmp/opt' in the firmware). I keep saying, this is truly an elegant design, and is clearly embraced by the Entware development team.

So my point is, the designers of Entware took the "play nice in the sandbox" approach of not caring where the entware package is installed, as they never directly reference that directory. I'm not suggesting you change your entware install script; installing to 'entware' is fine, especially for novices. But I argue that so long as I have a valid entware installation (and I do), you shouldn't care where it's located either. Just do your checks relative to '/opt' and all is well.

And I applaud the step you took "… writing the /tmp/opt/etc/absolution.sig file." Note that you're referencing the '/opt' path. That check doesn't care where entware is installed, you just know it's inside the currently active entware installation structure.

Finally, you're probably wondering why I even care about all this. First, philosophically, I just prefer the "open sandbox" that permeates Linux, the open-source culture, and certainly RMerlin and his customization of AsusWRT. It is truly an elegant design, and the Entware designers are of similar mindset with their minimal hooks into the OS.

Secondly, my personal desktop environment is Windows-based, and I interact with the router primarily through Samba. I like to keep that Samba space clean, so I only have 2 shares on the Linux filesystem on my router: the "entware install folder," and an 'app' folder. The 'app' folder contains add-on applications I run that didn't come from entware (just to keep the entware directory structure pristine, and I know I can reinstall entware at any time and not impact my non-entware application files). Logically, AB should also be located in my 'app' directory (in a subdirectory 'adblocking') but you explicitly don't allow that (hence my 1st request above).

The second thing I did was rename 'entware' to 'opt'. That way, that directory is referenced as "opt" via Samba (and thus in Windows-based apps and scripts running on my various PCs), and "/opt" via a telnet/ssh prompt or in router-based scripts. It just seems cleaner and makes more sense to me that way. I also created a symbolic link under /opt (within the "entware directory") to my 'app' directory. That allows me to reference all objects under 'app' as '/opt/app/…', yet another elegant extension isolating the underlying filesystem structure from the higher-level applications.

It took exactly 2 commands to move 'entware' to 'opt', (rename the directory, then update the link in post-mount), and had zero impact on anything else. [BTW, just as a test, I also did a clean install of entware to "opt" and as expected, it ran error-free.]

Off my soapbox. If any of that makes sense, cool. If not, no problem. Perhaps some of what I've written will help others better understand this environment. Many of us techies love to learn and understand what's going on under the covers and customize it to our liking. It's been fun for me to explore, learn, and tinker with my AsusWRT-Merlin router, my current sandbox. And finally, just saying, some minor changes to AB to allow for a lighter footprint just might increase the appeal of AB to a broader range of users.
 
Is there a way to block specific ip adresses ? I want to block some chinese ip from my baby cam but there's no dns. Thanks.
It's not clear what you're trying to accomplish here. Are you trying to stop the foreign IP from coming into the router (and thus the baby cam), from say a hacker, or stop the baby cam from "phoning home" to a pre-programmed IP in its firmware?

Either way it's pretty easy to use 'iptables' in '/jffs/scripts/firewall-start' to restrict a single IP.

For example, to block any incoming traffic from foreign IP 10.20.30.40:
Code:
iptables -i eth0 -I INPUT -s 10.20.30.40 -j DROP

To restrict any device on your network from contacting IP 10.50.60.70:
Code:
iptables -I OUTPUT -d 10.50.60.70 -j DROP

Also, if you want to know the effectiveness of your filter, change '-j DROP' to '-j logdrop' and it will generate a message in the system log every time it's hit.

Also, I believe what I stated above should work, but I would strongly suggest testing it from the command line before committing to it with a reboot. I know for a fact the first example works as I have several such rules in my firewall-start script to block some very persistent bad actors trying to hack my VPN. The second example I've not personally used, but I think should work.
 
We'll probably never see eye to eye here, but please take my input in the spirit of "continuous improvement." I think the fundamental issue we're having is I'm a "play nice in the sandbox" kind of guy, you're of the "for your own good, I'll define your sandbox for you." I'll just make a few more comments and go away.

1) It appears we may still be talking past each other. I'm not asking to "freely select the name of the install directory," but rather just the initial location of it. I think you'd be hard pressed to find any other legitimate Linux add-on application that doesn't support that capability. You can still require that it be installed in "adblocking," and totally define the underlying directory and file structure, but let me put it in an initial subdirectory of my choosing, at least one level lower than the directory at the mount point.

The motivation is simple. The AsusWRT implementation of Samba creates a share for all directories at that 'just above the mount point' level (i.e. those directories in the root of each USB volume). It makes no sense to create a Samba share for the 'adblocking' folder, and just adds muddle to those of us that use Samba and like to keep a neat and tidy look. By placing that adblocker folder one level deeper in the hierarchy, that Samba share is never created.

Your comparison to Linus Torvalds is apples to oranges. He defined the OS, you're just an add-on application. I think a more relevant comparison is to a standard Linux add-on app like minidlna. You can install the application anywhere you choose (it doesn't care), and it learns about its required directories through its .conf file. There is a default location for its .conf file, or you can specify it on the command line. In the .conf file, one line specifies the location of the db_dir, however once specified, minidlna owns the structure of the directories and files contained therein.

That overall philosophy and structure is repeated across the vast majority of UNIX/Linux add-on applications, and I would encourage you to think about applying that to AB, to give it a more mature look and feel.

2) Let me start with: "Would you ask the Entware maintainers to build in an option in their script to user define the install directory?" I don't need to, it's already fully supported!

The front-end install script(s) you're referring to don't come from the entware repository. There are numerous variations floating around, all just provided as a convenience to new users. You have one hard-coded in your AB scripts, there is one that comes with the Merlin firmware, and there are plenty more on various external web sites. They all boil down to just 3 steps:

- define an install directory somewhere on a Linux file system
- link that directory to '/tmp/opt' (the "magic hook" built into AsusWRT-Merlin)
- download and run the "real" installer script from the Entware repository (this script varies by processor architecture)

Nowhere in the "real" entware install script (the one downloaded from pkg.entware.net) is there a reference to any flavor of "entware" directory. It simply installs to /opt (which has been pre-linked to '/tmp/opt' in the firmware). I keep saying, this is truly an elegant design, and is clearly embraced by the Entware development team.

So my point is, the designers of Entware took the "play nice in the sandbox" approach of not caring where the entware package is installed, as they never directly reference that directory. I'm not suggesting you change your entware install script; installing to 'entware' is fine, especially for novices. But I argue that so long as I have a valid entware installation (and I do), you shouldn't care where it's located either. Just do your checks relative to '/opt' and all is well.

And I applaud the step you took "… writing the /tmp/opt/etc/absolution.sig file." Note that you're referencing the '/opt' path. That check doesn't care where entware is installed, you just know it's inside the currently active entware installation structure.

Finally, you're probably wondering why I even care about all this. First, philosophically, I just prefer the "open sandbox" that permeates Linux, the open-source culture, and certainly RMerlin and his customization of AsusWRT. It is truly an elegant design, and the Entware designers are of similar mindset with their minimal hooks into the OS.

Secondly, my personal desktop environment is Windows-based, and I interact with the router primarily through Samba. I like to keep that Samba space clean, so I only have 2 shares on the Linux filesystem on my router: the "entware install folder," and an 'app' folder. The 'app' folder contains add-on applications I run that didn't come from entware (just to keep the entware directory structure pristine, and I know I can reinstall entware at any time and not impact my non-entware application files). Logically, AB should also be located in my 'app' directory (in a subdirectory 'adblocking') but you explicitly don't allow that (hence my 1st request above).

The second thing I did was rename 'entware' to 'opt'. That way, that directory is referenced as "opt" via Samba (and thus in Windows-based apps and scripts running on my various PCs), and "/opt" via a telnet/ssh prompt or in router-based scripts. It just seems cleaner and makes more sense to me that way. I also created a symbolic link under /opt (within the "entware directory") to my 'app' directory. That allows me to reference all objects under 'app' as '/opt/app/…', yet another elegant extension isolating the underlying filesystem structure from the higher-level applications.

It took exactly 2 commands to move 'entware' to 'opt', (rename the directory, then update the link in post-mount), and had zero impact on anything else. [BTW, just as a test, I also did a clean install of entware to "opt" and as expected, it ran error-free.]

Off my soapbox. If any of that makes sense, cool. If not, no problem. Perhaps some of what I've written will help others better understand this environment. Many of us techies love to learn and understand what's going on under the covers and customize it to our liking. It's been fun for me to explore, learn, and tinker with my AsusWRT-Merlin router, my current sandbox. And finally, just saying, some minor changes to AB to allow for a lighter footprint just might increase the appeal of AB to a broader range of users.
That was a long read with a lot of food for thought.

Before I go to bed, I wanted to point out a few things:
AB-Solution evolved out of a few hand pasted scripts into a single self contained install script. Due to the very vocal wishes of it's users I included pixelserv-tls, which needs Entware to be installed.
Due to the large amount of code involved, I forked part of it out into addon scripts.
But AB is fully capable of doing a fine job without Entware and PS.

Without Entware installed /tmp/opt is not available. This is created by Entware. And even if I were to create it, every single Entware install script I know of would delete that link and create it new during install.
All of them also play havoc with the post-mount (and other scripts) by simply deleting them first and then creating a new one. Read the posts in the AB1.x and 2.x threads where my jffs check was not as comprehensive as it is now.
AB plays very nice with existing scripts in /jffs, it will never delete or overwrite them.

Since AB is not a binary install but rather a collection of shell scripts, where would I place and reference them?
Can you show me a Entware install script with a routine to select a directory or sub directory on a mounted device as the install location, or even, as you pointed out, to enter the new folder name?
I'd gladly lift that code off of it and use it if I ever need it.
 
It's not clear what you're trying to accomplish here. Are you trying to stop the foreign IP from coming into the router (and thus the baby cam), from say a hacker, or stop the baby cam from "phoning home" to a pre-programmed IP in its firmware?

Either way it's pretty easy to use 'iptables' in '/jffs/scripts/firewall-start' to restrict a single IP.

For example, to block any incoming traffic from foreign IP 10.20.30.40:
Code:
iptables -i eth0 -I INPUT -s 10.20.30.40 -j DROP

To restrict any device on your network from contacting IP 10.50.60.70:
Code:
iptables -I OUTPUT -d 10.50.60.70 -j DROP

Also, if you want to know the effectiveness of your filter, change '-j DROP' to '-j logdrop' and it will generate a message in the system log every time it's hit.

Also, I believe what I stated above should work, but I would strongly suggest testing it from the command line before committing to it with a reboot. I know for a fact the first example works as I have several such rules in my firewall-start script to block some very persistent bad actors trying to hack my VPN. The second example I've not personally used, but I think should work.
Baby cam from contacting home. I'll try your solution. Thanks. :)
 
It appears we may still be talking past each other. I'm not asking to "freely select the name of the install directory," but rather just the initial location of it. I think you'd be hard pressed to find any other legitimate Linux add-on application that doesn't support that capability.
AB-Solution is a collection of shell scripts, and you'd be hard pressed to find another one as complex as mine for a router.
Do yum, opkg, ipkg, apt and all these package managers allow you to select the install directory?
They all install to predefined install locations.
It makes no sense to create a Samba share for the 'adblocking' folder, and just adds muddle to those of us that use Samba and like to keep a neat and tidy look. By placing that adblocker folder one level deeper in the hierarchy, that Samba share is never created.
As stated in my previous post, this will be implemented in AB4.
Your comparison to Linus Torvalds is apples to oranges. He defined the OS, you're just an add-on application. I think a more relevant comparison is to a standard Linux add-on app like minidlna.
minidlna is a binary package, not a shell script.
Let me start with: "Would you ask the Entware maintainers to build in an option in their script to user define the install directory?" I don't need to, it's already fully supported!

The front-end install script(s) you're referring to don't come from the entware repository. There are numerous variations floating around, all just provided as a convenience to new users. You have one hard-coded in your AB scripts, there is one that comes with the Merlin firmware, and there are plenty more on various external web sites. They all boil down to just 3 steps:

- define an install directory somewhere on a Linux file system
- link that directory to '/tmp/opt' (the "magic hook" built into AsusWRT-Merlin)
- download and run the "real" installer script from the Entware repository (this script varies by processor architecture)
It's not 'somewhere' on the system, the entware installers let you select the install device. It will install into it with a predefined directory name. I happen to call mine 'entware'. This needs to be referenced in the post-mount file. Changing this reference by hand is simple. AB does this automatically.
The 'magic hook' is not built in by RMerlin, the Entware install does this, by way of the post-mount.
Logically, AB should also be located in my 'app' directory (in a subdirectory 'adblocking') but you explicitly don't allow that (hence my 1st request above).
Again, AB4.
The second thing I did was rename 'entware' to 'opt'. That way, that directory is referenced as "opt" via Samba (and thus in Windows-based apps and scripts running on my various PCs), and "/opt" via a telnet/ssh prompt or in router-based scripts. It just seems cleaner and makes more sense to me that way. I also created a symbolic link under /opt (within the "entware directory") to my 'app' directory. That allows me to reference all objects under 'app' as '/opt/app/…', yet another elegant extension isolating the underlying filesystem structure from the higher-level applications.
I don't understand, you said it let you freely select it. But you have to manually change it to suit your needs?
 
Hello,

I just came across this updated version recently and I was around when you just created it, let me say that you push this beyond my imagination, well done!!!!

I't looks way easier compare to when you just release it, I will give it a try and see if I can do it now.

Have you try contacting Asus or have merlin talk to the developers on your behalf to make this like "Download Master", having an option on the main router UI to install and then enter the router's ip with the port to go to the AB-solutions Adblocking menu, exactly like with Download Master.

This feature is sooooooooo amazing, I'm surprise that is not part of the router's firmware already, My knowledge of this things will never compare to yours, maybe this is not even possible or do-able, but I like to dream, lol.
 
Hello,

I just came across this updated version recently and I was around when you just created it, let me say that you push this beyond my imagination, well done!!!!

I't looks way easier compare to when you just release it, I will give it a try and see if I can do it now.

Have you try contacting Asus or have merlin talk to the developers on your behalf to make this like "Download Master", having an option on the main router UI to install and then enter the router's ip with the port to go to the AB-solutions Adblocking menu, exactly like with Download Master.

This feature is sooooooooo amazing, I'm surprise that is not part of the router's firmware already, My knowledge of this things will never compare to yours, maybe this is not even possible or do-able, but I like to dream, lol.
If you still run the AB-Solution beta predecessor 'Adblock WCHFA' or an older version than AB2.x dont try to update it. It likely fails.

As for the other points, things are too complicated in a coder's sense and political (sort of) way that this will not be an option.
 
Hello,

I just came across this updated version recently and I was around when you just created it, let me say that you push this beyond my imagination, well done!!!!

I't looks way easier compare to when you just release it, I will give it a try and see if I can do it now.

Have you try contacting Asus or have merlin talk to the developers on your behalf to make this like "Download Master", having an option on the main router UI to install and then enter the router's ip with the port to go to the AB-solutions Adblocking menu, exactly like with Download Master.

This feature is sooooooooo amazing, I'm surprise that is not part of the router's firmware already, My knowledge of this things will never compare to yours, maybe this is not even possible or do-able, but I like to dream, lol.
Be also aware of that the pixelserv-tls option (ps) will not be available to you if you have Download Master installed. It will report an error.
There is no way around it. Sorry. The upcoming AB-Solution 3.1 will display options when it detects DM.
 
AB-Solution is a collection of shell scripts, and you'd be hard pressed to find another one as complex as mine for a router.
Do yum, opkg, ipkg, apt and all these package managers allow you to select the install directory?
They all install to predefined install locations.

As stated in my previous post, this will be implemented in AB4.

minidlna is a binary package, not a shell script.

It's not 'somewhere' on the system, the entware installers let you select the install device. It will install into it with a predefined directory name. I happen to call mine 'entware'. This needs to be referenced in the post-mount file. Changing this reference by hand is simple. AB does this automatically.
The 'magic hook' is not built in by RMerlin, the Entware install does this, by way of the post-mount.

Again, AB4.

I don't understand, you said it let you freely select it. But you have to manually change it to suit your needs?
I think this discussion has run its course. I started out just making 2 simple suggestions, and was perfectly willing to accept "I'll add it to the wish list." But instead you wanted to debate the technical merits of my request. It would probably take several hours and a large chalkboard to hash this out as I just don't think we're going to see eye-to-eye through this thread.

I could easily just create a fork of your code and make my desired changes (which are actually quite trivial), but I have no interest in that. This is your baby, and I know you have a big following. Keep up the great work you do!

With regard to entware, for those interested in understanding how it works, and appreciating the elegance of the design, just follow the code (i.e. the 2 installer shell scripts). The installation itself is not complicated. Entware is an OS extension that allows a lowly router to look and feel like a full-blown Linux server. It does this by creating a 'normal' Linux root file system structure under /opt, and providing a package installer (opkg) that understands that structure, such that the applications installed behave nearly identical to how they behave on a 'big brother' Linux box. That's really quite a feat.

The "magic hook" I referred to is the 'dangling symlink' RMerlin creates in firmware connecting /opt (which is in ROM) to /tmp/opt (in RAM). That's really the key that makes entware work so transparently, and allows the end user to install it anywhere they please. That's the point I was trying to make in the previous posts. You may disagree about using that flexibility, but you can't argue with its elegance.

And one more cool bit of magic that RMerlin complied in, take a look at /etc/profile (which by default is linked to /rom/etc/profile). You'll see there that he's calling /opt/etc/profile (the profile installed by entware). That's how entware packages are able to transparently add to your shell environment as you install them via the 'opkg' command. All that magic with only 2 firmware hooks. That's an impressive design!
 
I think this discussion has run its course. I started out just making 2 simple suggestions, and was perfectly willing to accept "I'll add it to the wish list." But instead you wanted to debate the technical merits of my request. It would probably take several hours and a large chalkboard to hash this out as I just don't think we're going to see eye-to-eye through this thread.

I could easily just create a fork of your code and make my desired changes (which are actually quite trivial), but I have no interest in that. This is your baby, and I know you have a big following. Keep up the great work you do!

With regard to entware, for those interested in understanding how it works, and appreciating the elegance of the design, just follow the code (i.e. the 2 installer shell scripts). The installation itself is not complicated. Entware is an OS extension that allows a lowly router to look and feel like a full-blown Linux server. It does this by creating a 'normal' Linux root file system structure under /opt, and providing a package installer (opkg) that understands that structure, such that the applications installed behave nearly identical to how they behave on a 'big brother' Linux box. That's really quite a feat.

The "magic hook" I referred to is the 'dangling symlink' RMerlin creates in firmware connecting /opt (which is in ROM) to /tmp/opt (in RAM). That's really the key that makes entware work so transparently, and allows the end user to install it anywhere they please. That's the point I was trying to make in the previous posts. You may disagree about using that flexibility, but you can't argue with its elegance.

And one more cool bit of magic that RMerlin complied in, take a look at /etc/profile (which by default is linked to /rom/etc/profile). You'll see there that he's calling /opt/etc/profile (the profile installed by entware). That's how entware packages are able to transparently add to your shell environment as you install them via the 'opkg' command. All that magic with only 2 firmware hooks. That's an impressive design!
I'm sure you agree with me that changing the existing AB scripts to fully take advantage of the 'magic hook' would require some time.
I plan to do this with the next major version, AB4.
But this will require Entware to be installed.

So far, AB works very fine without Entware (if you don't use the pixelserv-tls option).
I created AB so that the user does not need to understand how it works and where it should be installed and what custom scripts should be placed in jffs. AB is so simple to install even a novice can do it.
That is my goal and the reason I created it.
Entware was never in the picture at the time I started this. It was too complicated for many users.
The integration of pixelserv-tls changed all that.

I knew I had to auto-install everything to make it user friendly, for the novice user as well as for the enthusiast.
AB3 is the result, it bridges the non-Entware AB environment with the Entware packages environment.

It was a great leap for me, a lot of work and passion went into it. The user numbers skyrocketed with the release, few problems were reported and I am truly proud of what I achieved with it.

There is room for improvement, as you very eloquently pointed out and I acknowledge that.
It will come. But that takes time.

For now, let me enjoy the success of AB3, and, hopefully, soon AB3.1.
 
Last edited:
Never messed with any one this before, but wanted to try installing it on my AC66

Whats a good tool to format USB drive to ext3 in Windows 10 (as I assume its needed to run this)?
 
Never messed with any one this before, but wanted to try installing it on my AC66

Whats a good tool to format USB drive to ext3 in Windows 10 (as I assume its needed to run this)?
MiniTool Partition Wizard, the free Edition formats to ext2, 3 or 4.
 
Status
Not open for further replies.

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