Build for Netgear R7800

None of my build use the "performance" governor by default. All use the default "ondemand" governor.

I have slightly tweaked the scaling ramp up percents for ondemand in master and in 19.07. (I have a 200 Mbit/s connection, so I do not need to run at the router at the full speed all the time.)

The scaling governor settings can be tailored by users themselves via scripts, so if you have a gigabit connection, just adjust the settings as you wish.

1 Like

Thanks for the response @hnyman. I see that "owrt1907-r11285-11f4918ebb-20210124" is out. Is the "FIXED FIX" for DNSpooq is in this build? The one without errors in system log.

If not, is it present in "master" version of your build?

Yes. My 19.07 build from yesterday contains the dnsmasq fix, (as can easily be seen from the commit hash and OpenWrt source repo)

1 Like

I am in the process of deciding which firmware to use for my recently purchased R7800. I am not an expert in the field but I understand that you have done a hell lot of work on building a nice FW for this router - and I really appreciate your work.

One of the main benefits I am looking for is the reduction of the bufferbloat, so I will probably have to stick with OpenWRT instead of other builds (Kong, DD-WRT, original).

You will probably direct me to other posts in this forum to read about performance etc, but I was wondering why have you chosen the ath10k-CT firmware as the "main" one for your builds? From several posts I understand that wireless performance is materially impacted with this vs the "old" ath10k firmware (which I understand is still regularly updated too (?)).

Also, is your 19.07 release based on the very first 19.07 release or is it based on the latest service release (i.e. 19.07.6)?

Thanks!

1 Like

It is the current OpenWrt default

Neither.
It is based at the latest openwrt-19.07 HEAD in git, which already contains fixes after 19.07.6 . So it is 19.07.6+

2 Likes

FWIW I'm using hnyman's stable 19.07 for my parents' low-tier Crapcast connection (100mbps down, 5mbps up), and I was able to significantly reduce bufferbloat by using SQM with "cake/piece of cake" setting. IIRC I actually took it from grade F to grade A/B variation according to DSL reports.

The firmware is good enough to enable SQM on such low-speed connections. Up to 200/200 up/down it would work. Maybe 300/300.

Remember that software acceleration has to be DISABLED for SQM to work.

For higher-speed SQM you'll have to deal with less stable NSS firmware by ACWifiDude, and you'll have to use NSS-accelerated fqcodel SQM there which currently can only be configured via command-line/file editing, not via UI.

Software acceleration has to be disabled for that one as well, because it is currently interfering with hardware acceleration, which brings greater benefits and is enabled by default. At least, that's what the posts suggest: https://forum.openwrt.org/t/ipq806x-nss-build-netgear-r7800-tp-link-c2600-linksys-ea8500/

2 Likes

I guess there isn't any way to swap the ct firmware to the standard ath10k in your build, is there?. I tried this and kmod-ath10k fails to install either via cli or via luci.

image

The same happened when I tried to re-install the kmod-ath10k-ct. It appears that your build is tied to specific packages (?). Not sure about that.

Not sure if it takes a lot of your time, but it would be ideal if a 4th firmware variation for "stable openwrt-19.07 with old mainline ath10k" existed.

All kmods are tied to the exact kernel options/selections during their compilation. It is not possible in practice to install buildbot kmods to private builds.

I am not going to do that.
But if you want to compile it by yourself, you can pretty easily copy & apply my build settings & patches and compile your own firmware based otherwise on my stuff but with that mainline ath10k driver selected. Read message #2 in this thread.

1 Like

yeah, I just asked because I do not want to re-invent the wheel... I am novice in the field.
But anyway thanks for the guidance. I hope until retirement to have learned how to do it myself :smiley:

@hnyman Know anything about this?
ERROR: package/network/utils/iwinfo failed to build.

Seems like patch1 fails to apply.

Your dirty build repo?

My current code contains no patches for iwinfo.

You probably have old leftovers from the time 1-2 months ago, when the "wifi channel analysis" was experimental, and not yet in upstream OpenWrt.
(probably two patches for rpcd, two for iwinfo)
Just remove those offending patches

Thanks, I was under the impression that git handles the updating pretty well. I sometimes restart the build tree but that's usually because of other issues.

Not this time, as the final upstream changes were not done to the OpenWrt main code (where the test-time patches were in my build), but instead the changes were made directly to the upstream iwinfo and rpcd sources, which are in separate git repos and are handled like any other external source package.

(So, now OpenWrt fetches upstream sources that already contain the changes, while your build repo contained patches to apply those changes to the previous upstream sources.)

1 Like

Just had my first exeriences with building my own OpenWrt Software and used your scripts. It worked very well. Thank you very much.

I have just 1 question:

In first post of this thread it is mentioned that master-r15657-ec0c6c1143-20210131 (ath10k-ct) is a ct-version.
When I check the corresponding diffconfig.txt I see:

CONFIG_PACKAGE_kmod-ath10k=y
# CONFIG_PACKAGE_kmod-ath10k-ct is not set

Isn't that a non-ct version or did I understand something wrong?

Thank you.

You are right.
My bad. Looks like I have forgotten to toggle the .config.init back to -ct after the last mainline ath10k build.
I will compile a new -ct version.

EDIT:
In case you want to avoid hassle in your build environment, just edit .config.init.
If normal "ath10k-ct" case, these line are commented:

## # Mainline ath10k wifi firmware and driver instead of -ct
## CONFIG_PACKAGE_ath10k-firmware-qca9984=y
## # CONFIG_PACKAGE_ath10k-firmware-qca9984-ct is not set
## CONFIG_PACKAGE_kmod-ath10k=y
## # CONFIG_PACKAGE_kmod-ath10k-ct is not set

If you want mainline ath10k, just remove the comment prefix "## " from the lines, so that the defaults -ct gets disabled and mainline gets selected.

# Mainline ath10k wifi firmware and driver instead of -ct
CONFIG_PACKAGE_ath10k-firmware-qca9984=y
# CONFIG_PACKAGE_ath10k-firmware-qca9984-ct is not set
CONFIG_PACKAGE_kmod-ath10k=y
# CONFIG_PACKAGE_kmod-ath10k-ct is not set
1 Like

Now there are

  • master-r15668-d33cd383ed-20210201 (ath10k-ct)
  • master-r15657-ec0c6c1143-20210131-ath10k ("old" mainline ath10k)

As you are fresh on this process, could you please let me know what did you (exactly) do after steps 1-5 which are handled by the newBuildroot.sh in order to finally end up to a sysupgrade.bin image?

I ran updateNmake.sh which is located under the hnscripts folder and i got this:

At the moment I am at this stage:

FYI: complete beginner in linux

thanks in advance

Anything "sudo" is pretty wrong in OpenWrt compilation.
All OpenWrt related compilation commands can be run with a normal user account (once after you have installed the prequisities.

After newBuildroot.sh has completed:

  • cd to the new directory.
  • cp .confit.init .config
  • hnscripts/updateNmake.sh

Pretty much like said in the message 2:

(Do not cd into the hnscripts directory... Looks like you did that.)

1 Like

thanks for clarifying the directory bit. much appreciated.

Why?
For me whatever worked, it did with sudo. Probably because I have not installed the prequisities you mentioned. I am not even a regular user of linux hence I do not know this detail.

btw, my compilation just failed (not sure if it relates to the above):

very frustrating - honestly. just a tiny thing to change (to get the std ath10k in the 19.07 firmware) and 6 hours easily lost..

Last two snapshot builds my 5ghz has started selecting channel 157 instead of 161. My configuration files all seem correct specifying to use 161. My country code has access to use that channel.

Anything else I can check for to see why it's doing this.