What's new

Asuswrt-Merlin 378.53 is now available

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

I'd be looking around the first error, the missing ';' which is probably building a clientlist or something similar. Can you post the debugger output around that error?
 
I'd be looking around the first error, the missing ';' which is probably building a clientlist or something similar. Can you post the debugger output around that error?

Wow, you are GOOD! It appears to be an apostrophe in one of my DHCP manually assigned device names that is not currently connected.
20150502_154825 - F12.png

Is there a way to change this setting without using the GUI, so I can fix it?

Is there a way to prevent non-alphanumeric, dash, or underscore characters from being used in the manual assign DHCP client list?


Advanced_DHCP_Content.asp debugger, lines 46-86:
Code:
#ClientList_Block_PC a{
background-color:#EFEFEF;
color:#FFF;
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
text-decoration:none;
}
#ClientList_Block_PC div:hover, #ClientList_Block a:hover{
background-color:#3366FF;
color:#FFFFFF;
cursor:default;
}
</style>
<script>
var dhcp_staticlist_array = '&#60D4:BE:D9:82:16:1D&#62192.168.99.100&#62A5271569&#6000:25:AE:F7:BF:6F&#62192.168.99.169&#62&#6024:77:03:E2:41:0C&#62192.168.99.101&#62A5271569&#6000:19:D1:29:B2:F0&#62192.168.99.23&#62STACKER&#6000:90:A9:B1:62:C4&#62192.168.99.110&#62MYBOOKLIVE3T&#6000:1A:4D:5B:BB:BF&#62192.168.99.25&#62AMD47&#600C:89:10:AF:4F:2E&#62192.168.99.75&#62Samsung TV 1&#601C:99:4C:38:24:32&#62192.168.99.151&#62Orn's Note3 ';
if(pptpd_support){
var pptpd_clients = '192.168.99.190-199';
var pptpd_clients_subnet = pptpd_clients.split(".")[0]+"."
+pptpd_clients.split(".")[1]+"."
+pptpd_clients.split(".")[2]+".";
var pptpd_clients_start_ip = parseInt(pptpd_clients.split(".")[3].split("-")[0]);
var pptpd_clients_end_ip = parseInt(pptpd_clients.split("-")[1]);
}
var dhcp_enable = '1';
var pool_start = '192.168.99.200';
var pool_end = '192.168.99.254';
var pool_subnet = pool_start.split(".")[0]+"."+pool_start.split(".")[1]+"."+pool_start.split(".")[2]+".";
var pool_start_end = parseInt(pool_start.split(".")[3]);
var pool_end_end = parseInt(pool_end.split(".")[3]);
var static_enable = '1';
var dhcp_staticlists = '&#60D4:BE:D9:82:16:1D&#62192.168.99.100&#62A5271569&#6000:25:AE:F7:BF:6F&#62192.168.99.169&#62&#6024:77:03:E2:41:0C&#62192.168.99.101&#62A5271569&#6000:19:D1:29:B2:F0&#62192.168.99.23&#62STACKER&#6000:90:A9:B1:62:C4&#62192.168.99.110&#62MYBOOKLIVE3T&#6000:1A:4D:5B:BB:BF&#62192.168.99.25&#62AMD47&#600C:89:10:AF:4F:2E&#62192.168.99.75&#62Samsung TV 1&#601C:99:4C:38:24:32&#62192.168.99.151&#62Orn's Note3 ';
var staticclist_row = dhcp_staticlists.split('&#60');
var lan_domain_curr = '';
var dhcp_gateway_curr = '192.168.99.1';
var dhcp_dns1_curr = '';
var dhcp_dns2_curr = '';
var dhcp_wins_curr = '';
if(yadns_support){
var yadns_enable = '0';
var yadns_mode = '1';
}
 
Is there a way to change this setting without using the GUI, so I can fix it?
If you log in to the router via telnet/ssh, the nvram variable to edit is 'dhcp_staticlist'

do
nvram show | grep dhcp_staticlist

highlight the result with the mouse and then right click to copy it to the command line....insert 'nvram set' (without the quotes) at the beginning of the line and then move the cursor to delete the offending '

EDIT: You'll also need to enclose the data in double quotes (after the equal sign and at the end of the line)
 
Last edited:
I just tested it with the same setup as you mention and it's working fine for me.

Keep in mind that DNS lookups get cached both by the OS and by the web browser. You have to either try a different browser, or make sure you do shut down your browser and restart it before testing with a different DNS setup.

I did try these and other things without success.
Then I gave up and did a factory reset, set up everything again and voilà! It's all good now. :cool:

Thanks for the help anyway!
 
If you log in to the router via telnet/ssh, the nvram variable to edit is 'dhcp_staticlist'

do
nvram show | grep dhcp_staticlist

highlight the result with the mouse and then right click to copy it to the command line....insert 'nvram set' (without the quotes) at the beginning of the line and then move the cursor to delete the offending '

EDIT: If you have any spaces in your names you'll also need to enclose the data in double quotes (after the equal sign and at the end of the line)

Thank you!!!!! This worked perfectly!! It fixed all 3 screens, which now load with no errors.

I had to encapsulate the value in double quotes, even though there were no spaces because I got an error "-sh: syntax error: unexpected redirection" if I did not.


I tested spaces, dashes and underscores, all did not break the page. It appears that the unescaped single quote is what kills it. I know not to use it myself , but it might be a candidate for 'protecting the user from themselves'.


Thank you all for your fast response and excellent troubleshooting!
 
It's a router, not a computer. You will need to stop running whatever you are running on it that requires so much memory.

Turns out the real issue is default setting for
Code:
/proc/sys/vm/overcommit_memory
= 2, meaning never overcommit memory. Changing this to 1 by
Code:
echo 1 > /proc/sys/vm/overcommit_memory
lets swap work. 1GB is not too much, since even mkfs.ext3 for a large filesystem (tb's) will need at least 400MB memory.

And overcommit ratio is set to very low at 50%, better
Code:
echo 400 > /proc/sys/vm/overcommit_ratio
because most of that sleeps in swap (Optware ssd stick) anyway. Now i can run at least 2 local rsync jobs at the same time with everything else without any issues.

Of interest is that large values for /proc/sys/vm/dirty_ratio (50) and /proc/sys/vm/dirty_background_ratio (20) actually caused a system reset more than once...but these are not that much higher compared to linux defaults. Anyone who wants to experiment, read this first: https://www.kernel.org/doc/Documentation/sysctl/vm.txt

Hoping Asus would realize their routers have too little ram to even run downloadmaster properly (seeding eats up ram, more than 256MB is quickly needed), not to talk about all the other stuff they keep on adding...and ram is cheap. Just put an empty sodimm socket in there, many people have leftover 1-4GB modules from upgrading laptops etc.
 
Last edited:
I had to encapsulate the value in double quotes, even though there were no spaces because I got an error "-sh: syntax error: unexpected redirection" if I did not.
Yes...sorry about that....I forgot about the use of < and > as field separators. Glad you tried the double quotes. Good to hear that it got things running!
 
Yes...sorry about that....I forgot about the use of < and > as field separators. Glad you tried the double quotes. Good to hear that it got things running!
No worries, the fix was straightforward and intuitive once you explained the commands.
 
87u
For 2.4GHz i set channel 13, but in system log i see 9l
13-png.3757

13_1-png.3758


It's normal ?
 

Attachments

  • 13.png
    13.png
    3.4 KB · Views: 866
  • 13_1.png
    13_1.png
    3.4 KB · Views: 861
Last edited:
Turns out the real issue is default setting for
Code:
/proc/sys/vm/overcommit_memory
= 2, meaning never overcommit memory. Changing this to 1 by
Code:
echo 1 > /proc/sys/vm/overcommit_memory
lets swap work. 1GB is not too much, since even mkfs.ext3 for a large filesystem (tb's) will need at least 400MB memory.
Hi,

Thank you for this research and hints for the better memory management. :D

This add-on to my seetings here helps to reduce the pressure on memory usage and to avoid the "race condition" I was facing in the original posting.

With kind regards
Joe :cool:
 
Last edited:
Got an issue with the vlan's id's. When I try to set the ID to 6 at LAN > IPTV (manual) it won't change it at all. When I apply the change and go to Tools and scroll down it stays on VLAN ID 2 and when I check it with robocfg show it says VLAN 2 also.

I've tried to change it with robocfg, but that change won't stick and don't have a clue how to do that :) anyone else that as a problem with this (i'm using the software on a AC87u.

Thanks in advanced.
 
Turns out the real issue is default setting for
Code:
/proc/sys/vm/overcommit_memory
= 2, meaning never overcommit memory. Changing this to 1 by
Code:
echo 1 > /proc/sys/vm/overcommit_memory
lets swap work...
Hoping Asus would realize their routers have too little ram to even run downloadmaster properly...and ram is cheap...
You appear to have some specialized knowledge that the writers of the Asus router code do not? That the Asus setting for overcommit_memory is a mistake?

Also interested in why anyone would want to run "downloadmaster" on a WiFi router that only has 256 megabytes of memory. Isn't downloadmaster something that you could run on a $75 dollar used NAS box for example?
 
@RMerlin I am an Android Kernel developer over at XDA for the Nexus 4 & 5, and I was wondering if you could implement Kernel Same Page Merging as well as zram that will further optimize memory consumption on these routers. Also I wonder how fiops io scheduler would perform on these routers. Let me know what you think, I think we can further optimize the performance on the ARM based routers, and its possible some Android kernel patches may be compatible.
 
You appear to have some specialized knowledge that the writers of the Asus router code do not? That the Asus setting for overcommit_memory is a mistake?

Asuswrt does not support a swap file by default, so there would be no real reason for them to have a different value on than the value of 2 it currently uses. "2" means "never overcommit more than you have available", which would be the logical configuration to use.

In fact, it should still allow the use of swap memory, so I'm not sure why the poster needed to set it to 1 for his swap to work. Personally, I would rather look at what swapiness value he has set for his router. Setting over_commit to "1" is a bad idea - it tells the kernel to NEVER refuse any malloc() call, even if there's no longer enough memory available. This can lead to router instability and crashes once you exhaust the available swap.

In short: it's not a solution, it's a workaround, and not a very good one. Asus's choice of "2" is the correct one.

Recommend reading: http://www.win.tue.nl/~aeb/linux/lk/lk-9.html
 
@RMerlin I am an Android Kernel developer over at XDA for the Nexus 4 & 5, and I was wondering if you could implement Kernel Same Page Merging as well as zram that will further optimize memory consumption on these routers. Also I wonder how fiops io scheduler would perform on these routers. Let me know what you think, I think we can further optimize the performance on the ARM based routers, and its possible some Android kernel patches may be compatible.

My hands are tied with the kernel, because any changes will potentially cause the kernel symbol versions to change, which will in turn prevent the router from loading the closed source modules, such as the wireless driver, the NTFS filesystem driver, or the Trend Micro DPI engine.

For instance, Asus/Broadcom kept a debug setting enabled in relation to the slab allocator. I can't even disable that, because the kernel symbol changes prevented the Tuxera FS driver from loading.

Also keep in mind that Broadcom uses a quite old kernel (2.6.36.4). A lot of features are not available yet in this version.
 
I have policy routing set up where only one client IP goes through the VPN tunnel. It works well. The problem I am having is with DNS. When I set the DNS to "exclusive" it works just as advertised and I have no DNS leak for the client, *but* at this point all my clients start using the DNS of the VPN service (which is not what I want). Note the non-VPN clients do not use the VPN tunnel, they just start using the VPN DNS service. Is this intentional? I would like to have the normal non-vpn clients use the DNS I specify in the WAN settings and have the policy based VPN client use the DNS of the VPN service.

Still, a great release. Love it and good job.
 
I have policy routing set up where only one client IP goes through the VPN tunnel. It works well. The problem I am having is with DNS. When I set the DNS to "exclusive" it works just as advertised and I have no DNS leak for the client, *but* at this point all my clients start using the DNS of the VPN service (which is not what I want). Note the non-VPN clients do not use the VPN tunnel, they just start using the VPN DNS service. Is this intentional? I would like to have the normal non-vpn clients use the DNS I specify in the WAN settings and have the policy based VPN client use the DNS of the VPN service.

Still, a great release. Love it and good job.

Not much I can do about this. The router uses the same DNS for all queries, regardless on how they are being routed afterward. dnsmasq has no way of knowing if a specific query is from a VPN client or a regular client.
 
I have policy routing set up where only one client IP goes through the VPN tunnel. It works well. The problem I am having is with DNS. When I set the DNS to "exclusive" it works just as advertised and I have no DNS leak for the client, *but* at this point all my clients start using the DNS of the VPN service (which is not what I want). Note the non-VPN clients do not use the VPN tunnel, they just start using the VPN DNS service. Is this intentional? I would like to have the normal non-vpn clients use the DNS I specify in the WAN settings and have the policy based VPN client use the DNS of the VPN service.

Still, a great release. Love it and good job.

One thing you could try if really you are worried about your ISP logging your DNS queries (considering the sheer volume of queries an ISP must see I personally doubt they'd do that, for performance reason to be honest) is to leave the VPN client to "relaxed", but configure a DNSFilter rule to force your routed clients to a specific DNS.
 
I finally managed to track it down. It's not a bug in the firmware, it's the ovpn config you are importing that's telling the router NOT to run the proper cleanup script at exit time.

Remove the following line from your custom config field:

Code:
explicit-exit-notify 1

Should be fine after that.

I tried but it seems that there was no difference. Please note that for every test that I am doing, I am applying the changes (obviously) and rebooting the router, and while it reboots I disable the wlan0 interface in my linux notebook, so (hopefully) cleaning up some cache that may interfere.

I was reading about this explicit-exit-notify and it seems(if I understood correctly!) that this has to do with a forced signal to the server indicating that I am disconnecting (They limit the amount of simultaneous connections that a given username can do, therefore a "hanging" connection would be bad..)

I really don't know much about troubleshooting DNS connections, I try using dig for somethings but I would really like to be able to identify which DNS server I am using...

Thanks again for your help!!
 

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