What's new

Custom firmware build for R7800 v. 1.0.2.44SF

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

Ok, making sure it's not a Intel based modem. Many issues with those modems. :oops:

Have you tried using different test servers on DSLR?
 
Ok, making sure it's not a Intel based modem. Many issues with those modems. :oops:

Have you tried using different test servers on DSLR?

No, but I think I'll play around with that later. It's a curiosity only to me, as my router and connection performance are all good!
 
Same here, I wouldn't worry about it too much. if speeds are to spec, Id' enjoy it. ;)
 
Thank you for your reply.
I'm sorry I could not help you all the way.

I checked the documentation of Openvpn and the "keepalive 10 60" triggers a signal that the ovpnclient-down.sh should handle.
Unfortunately this script today only sets the Wan-LED color to Orange.
So that's why I think you/(we) must add the line "remap-usr1 SIGHUP". This causes the OpenVPN protocol to make a restart itself!
I'll try it in my .ovpn-files for the future.

At the moment there are a lot of kernel changes merged into many FWs, crippling the routers (and NASes as well).
I'll stay with my R7800 and I trust Voxel more than any other FW or developer. He is good - believe me!

I try the DD-WRT FW sometimes, but Voxel's support is superior to any other FW developers,
especially Netgear and Synology, but also BS at DD-WRT seem to be tired these days. I have not tried the LEDE-track, but I follow it lurking,
and they have the same problems with new kernels, and it will be interesting to see how they manage to merge with DD-WRT...

Good luck with your new router(s). And again, thank you for reporting back your experiences!

And a Happy New Year!

Actually tried that keep alive 10 60 as well as another keep alive code I've seen posted on another Asus Merlin OpenVPN thread. Both didn't work. I also tried adding custom code to hide those authentication warning showing on log which got me worried at first as it also removed user login on on debug page. But I was also to fix it my loading back the previous code on flash drive.

My main problem with the OpenVPN client is the disconnection. It can recover at times but eventually will fail. There is no guaranted uptime if you're running a server set up (besides losing my Ooma voip phone service, etc. at home while the internet was down for the past 3 nights I was using the router). I happened to read Xunilinux's topic at myopenrouter on automated script execution which confirmed my suspicion that this intermittent disconnection is not an isolated problem. Bypassing the OpenVPN client tunnel & enabling dnscrypt proxy seem complicated for a novice user. Getting a log file was hard at first because in the online instruction the command line is /var/log/openvpn-client.log & not cat /var/log/openvpn-client.log. It was actually you Kamoj who provided me that complete code that I was then able to access the log file. I'm thankful for that.:)
 
enabling dnscrypt proxy seem complicated for a novice user.
Ok, here is an working example of one way to do, to get the dnscrypt running (using 5 servers in Europe, but it will work for you too):

cd /usr/share/dnscrypt-proxy/
mv -f dnscrypt-resolvers.csv dnscrypt-resolvers.csv.old
wget --no-check-certificate -O dnscrypt-resolvers.csv https://raw.githubusercontent.com/jedisct1/dnscrypt-proxy/master/dnscrypt-resolvers.csv
grep -iE "ipredator|dnscrypt.eu-dk|dnscrypt.org-fr|dnscrypt.eu-nl|d0wn-se-ns1" dnscrypt-resolvers.csv | cut -f2 -d"," | grep -vE " |ipv6|r.se" | sort -r >/etc/dnscrypt.conf
/etc/init.d/dnscrypt-proxy restart
 
Last edited:
I am not concerned about buffer bloat. Again I am NOT.

I was just wondering though IF its the case the settings which can be changed get changed to the same values as one attempts to tweak matters IF those settings are such they could be standardized in the firmware?

If there’s only two or three values over and over again to which we could change, can they not be check boxes in the FW?
 
If there’s only two or three values over and over again to which we could change, can they not be check boxes in the FW?

You know, I do not handle ALL codes from GPL. Such things as WebGUI and CGI processing are enclosed part of NETGEAR GPL codes. I can do almost nothing with it (like add checkboxes or so). Approach I select is to use all advantages of stock firmware (hardware acceleration, proprietary drivers from QCA etc), but not everything is possible to change. Mainly internal changes, such as upgrade obsolete packages, acceleration of OpenSSL etc. But some parts are closed for my changes. I am not even NETGEAR beta tester ;-) So... Telnet is not so difficult.

Voxel.
 
You know, I do not handle ALL codes from GPL. Such things as WebGUI and CGI processing are enclosed part of NETGEAR GPL codes. I can do almost nothing with it (like add checkboxes or so). Approach I select is to use all advantages of stock firmware (hardware acceleration, proprietary drivers from QCA etc), but not everything is possible to change. Mainly internal changes, such as upgrade obsolete packages, acceleration of OpenSSL etc. But some parts are closed for my changes. I am not even NETGEAR beta tester ;-) So... Telnet is not so difficult.

Voxel.

Voxel,

I am familiar with telnet, when I put in your commands for bufferbloat I get errors thats why I thought you had to SSH in?
The commands dont take. I have my new R7800 up and running now and awaiting your suggestions.

referring to the following:

You can tune it for your case. How (from telnet/ssh console):
1. Congestion control. It is set as "yeah" now. You can try to set the following:
Code:
net.ipv4.tcp_available_congestion_control = yeah vegas reno cubic westwood highspeed illinois
net.ipv4.tcp_congestion_control = yeah

i.e. to set e.g. cubic you should run:

Code:
sysctl -w net.ipv4.tcp_congestion_control=cubic
2. rmem_max/wmem_max.

Currently they are:
Code:
net.core.rmem_max = 524288
net.core.wmem_max = 524288

You can decrease these values to get more good results. The same:
Code:
net.core.wmem_max=163840
After you find your values you can correct /etc/sysctl.conf to make these changes permanent.

See for example:
https://www.snbforums.com/threads/custom-firmware-build-for-r7800-v-1-0-2-32sf.39657/#post-330607
when avtella could found for the best values for him. (Just to get good scores ;) )
Voxel.


CC
 
Does using >nvram commit< after sending commands do anything?
 
The commands dont take.

#Warning: Before doing any of this, I recommend you take a backup of your router configuration file.
#That is done in the Netgear Genie GUI. (Advanced: Administration: Backup Settings: Back Up)
#If anything get messed up, you just install the same FW again, and restore the settings!

#In short to Change congestion control from yeah to cubic:
sed 's/net.ipv4.tcp_congestion_control=yeah/net.ipv4.tcp_congestion_control=cubic/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# In short to change the network read/write buffer sizes from 524288 to 163840:
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# Check the new values::
sysctl -a 2>/dev/null | grep tcp_congestion_control ; sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"

# To Reverse the changes:
sed 's/net.ipv4.tcp_congestion_control=cubic/net.ipv4.tcp_congestion_control=yeah/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.rmem_max = 163840/net.core.rmem_max = 524288/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 163840/net.core.wmem_max = 524288/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
 
# ============================================================================
# Changing Congestion control:
# ============================================================================
# (Lines starting with a # are only comments and should not be typed from the telnet-prompt)
# Remember to disable OpenVPN. Tuning of OpenVPN and latency/buffer bloat is another story...
# If you do cut-and-paste: Only issue one line at the time.

# ----------------------------------------------------------------------------
# The short version to change fron yeah to cubic:
# ----------------------------------------------------------------------------
sed 's/net.ipv4.tcp_congestion_control=yeah/net.ipv4.tcp_congestion_control=cubic/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# ----------------------------------------------------------------------------
# The long version ;-)
# ----------------------------------------------------------------------------
#To see what is used now:
sysctl -a 2>/dev/null | grep tcp_congestion_control
# Gives e.g.: net.ipv4.tcp_congestion_control=yeah

#To see what is possible to use:
sysctl -a 2>/dev/null | grep tcp_available_congestion_control
# Gives e.g.:
net.ipv4.tcp_available_congestion_control = cubic reno westwood highspeed vegas yeah illinois

#To set temporary for testing purpose (= untill reboot or power off/on):
sysctl -w net.ipv4.tcp_congestion_control=cubic
# Gives e..g.: net.ipv4.tcp_congestion_control = cubic

#To test latency/ping (lower value is better) and speed:
ookla --configurl=http://www.speedtest.net/api/embed/trial/config.php
# Gives e..g.: serverid: 15015
# latency: 13
# upload: 47987
# download: 68075
# (You can add the server id as parameter to the testprogram, to get repeated tests to same server, eg:)
ookla --serverid=15015 --configurl=http://www.speedtest.net/api/embed/trial/config.php

# ----------------------------------------------------------------------------

#To set permanently: (= Survives reboot or power off/on, until new FW is installed):
# (I hereby avoid usage of the built-in editor named vi, as it is not for newbies.)

#First check what is in the configuration at the moment:
cat /etc/sysctl.conf | grep congestion
# Gives e..g.: net.ipv4.tcp_congestion_control=yeah

#Change yeah to cubic:
sed 's/net.ipv4.tcp_congestion_control=yeah/net.ipv4.tcp_congestion_control=cubic/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf

#Check what is in the configuration now:
cat /etc/sysctl.conf | grep congestion
# Gives e..g.: net.ipv4.tcp_congestion_control=cubic

# Finally make the sure the permament values are getting used now:
sysctl -p

#-----------------------------------------------------------------------------------
 
# ============================================================================
# To change the network read/write buffer sizes:
# ============================================================================
# (Lines starting with a # are only comments and should not be typed from the telnet-prompt)
# If you do cut-and-paste: Only issue one line at the time.

# ----------------------------------------------------------------------------
# The short version to change fron 524288 to 163840:
# ----------------------------------------------------------------------------
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# ----------------------------------------------------------------------------
# The long version ;-)
# ----------------------------------------------------------------------------
#To see what is used now:
sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"
# Gives e..g.: net.core.rmem_max = 524288
# net.core.wmem_max = 524288

#To set temporary for testing purpose (= untill reboot or power off/on):
sysctl -w net.core.rmem_max=163840
sysctl -w net.core.wmem_max=163840

#Now make your repeated tests and changes until you found your best values!
#To test latency/ping (lower value is better) and speed:
ookla --configurl=http://www.speedtest.net/api/embed/trial/config.php
# Gives e..g.: serverid: 15015
# latency: 13
# upload: 47987
# download: 68075
# (You can add the server id as parameter to the testprogram, to get repeated tests to same server, eg:)
ookla --serverid=15015 --configurl=http://www.speedtest.net/api/embed/trial/config.php

# ----------------------------------------------------------------------------

#Then, to set permanently: (= Survives reboot or power off/on, until new FW is installed):
#First check what is in the configuration file at the moment:
cat /etc/sysctl.conf | grep -E "rmem_max|wmem_max"
# Gives e..g.: net.core.rmem_max = 524288
# net.core.wmem_max = 524288

#Change 524288 to 163840:
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf

# Finally make the sure the permament values are getting used now:
sysctl -p
# Check that current and permanent values are the same:
sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"
cat /etc/sysctl.conf | grep -E "rmem_max|wmem_max"

#---------------------------------------------------------------------
 
# ============================================================================
# To change the network read/write buffer sizes:
# ============================================================================
# (Lines starting with a # are only comments and should not be typed from the telnet-prompt)
# If you do cut-and-paste: Only issue one line at the time.

# ----------------------------------------------------------------------------
# The short version to change fron 524288 to 163840:
# ----------------------------------------------------------------------------
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# ----------------------------------------------------------------------------
# The long version ;-)
# ----------------------------------------------------------------------------
#To see what is used now:
sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"
# Gives e..g.: net.core.rmem_max = 524288
# net.core.wmem_max = 524288

#To set temporary for testing purpose (= untill reboot or power off/on):
sysctl -w net.core.rmem_max=163840
sysctl -w net.core.wmem_max=163840

#Now make your repeated tests and changes until you found your best values!
#To test latency/ping (lower value is better) and speed:
ookla --configurl=http://www.speedtest.net/api/embed/trial/config.php
# Gives e..g.: serverid: 15015
# latency: 13
# upload: 47987
# download: 68075
# (You can add the server id as parameter to the testprogram, to get repeated tests to same server, eg:)
ookla --serverid=15015 --configurl=http://www.speedtest.net/api/embed/trial/config.php

# ----------------------------------------------------------------------------

#Then, to set permanently: (= Survives reboot or power off/on, until new FW is installed):
#First check what is in the configuration file at the moment:
cat /etc/sysctl.conf | grep -E "rmem_max|wmem_max"
# Gives e..g.: net.core.rmem_max = 524288
# net.core.wmem_max = 524288

#Change 524288 to 163840:
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf

# Finally make the sure the permament values are getting used now:
sysctl -p
# Check that current and permanent values are the same:
sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"
cat /etc/sysctl.conf | grep -E "rmem_max|wmem_max"

#---------------------------------------------------------------------

Done and worked, Bufferbloat was only slightly improved. Should I go to a lower number then 163840?

CC
 
Thanks for the code example/template. My experience and one reason I’m not that concerned about now is changing it probably won’t make a huge difference in our online experience. Bufferbloat wasn’t even on most folk’s horizon an issue until DSLReports put it on their speed tests.

Good work though and thanks for sharing.
 
#Warning: Before doing any of this, I recommend you take a backup of your router configuration file.
#That is done in the Netgear Genie GUI. (Advanced: Administration: Backup Settings: Back Up)
#If anything get messed up, you just install the same FW again, and restore the settings!

#In short to Change congestion control from yeah to cubic:
sed 's/net.ipv4.tcp_congestion_control=yeah/net.ipv4.tcp_congestion_control=cubic/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# In short to change the network read/write buffer sizes from 524288 to 163840:
sed 's/net.core.rmem_max = 524288/net.core.rmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 524288/net.core.wmem_max = 163840/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

# Check the new values::
sysctl -a 2>/dev/null | grep tcp_congestion_control ; sysctl -a 2>/dev/null | grep -E "rmem_max|wmem_max"

# To Reverse the changes:
sed 's/net.ipv4.tcp_congestion_control=cubic/net.ipv4.tcp_congestion_control=yeah/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.rmem_max = 163840/net.core.rmem_max = 524288/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p
sed 's/net.core.wmem_max = 163840/net.core.wmem_max = 524288/g' /etc/sysctl.conf >/tmp/y.y && mv -f /tmp/y.y /etc/sysctl.conf && sysctl -p

Voxel,

There is a bad bug in this build. After changing the values above I decided to reset to default, reinstall the firmware, then reset to default again. Then when I tried to restore from backup it does not work! It will not allow the file to be selected in the browse option.

CC
 
This happening with IE11 and or FF?

Was the saved configuration file saved with this version of FW or any previous version of FW?

You may have a router in a bad state as doing a factory reset then reinstalling FW could have caused this issue. A re-install of FW isn't needed after doing a factory reset.
 
This happening with IE11 and or FF?

Was the saved configuration file saved with this version of FW or any previous version of FW?

You may have a router in a bad state as doing a factory reset then reinstalling FW could have caused this issue. A re-install of FW isn't needed after doing a factory reset.

This is with R7800-V1.0.2.44SF. Yes config was saved with same firmware. I reinstalled due to the changes made that really did not make the bufferbloat better. I then installed stock firmware and the backup file works fine (one that was saved with stock). Try to load a backup file and see what happens.

CC
 

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