Build for Netgear R7800

If you tried downloading the mainline driver with opkg from the OpenWrt repo, it will fail due t kernel version/checksum errors. You need to use the driver .ipk available in the download dir of each of my builds.

I did use the .ipk from the same download dir as the build. The filename is ath10k-mainline-owrt2102-r16009-121f2461e5-20210412-2020.ipk Thanks.

I have currently the master version installed, so I tested changing to mainline with it. And the wifi driver change worked ok.

Can you show the copy-paste of your command itself, not only the error.

(naturally it is possible that something might have gone awry with the previous 21.02 build, but that would sound strange.)

Replying to myself:

Last week the stable OpenWrt 19.07-SNAPSHOT r11328-81266d9001 release has been running perfectly stable with the mainline ath10k driver and the most recent firmware from kvalo's GitHub repo.

So I just went ahead and did:

root@OpenWrt:/tmp# opkg remove ath10k-firmware-qca9984 kmod-ath10k
Removing package ath10k-firmware-qca9984 from root...
Removing package kmod-ath10k from root...
root@OpenWrt:/tmp# opkg list-installed |grep ath10k
ath10k-board-qca9984 - 20201118-3
root@OpenWrt:/tmp# opkg install ./ath10k-ct-owrt1907-r11328-81266d9001-20210327-1210.ipk ./ath10k-firmware-qca9984-ct-htt_2020-11-08-1_arm_cortex-a15_neon-vfpv4.ipk 
Installing kmod-ath10k-ct (4.14.224+2019-09-09-5e8cd86f-1) to root...
Installing ath10k-firmware-qca9984-ct-htt (2020-11-08-1) to root...
Configuring ath10k-firmware-qca9984-ct-htt.
Configuring kmod-ath10k-ct.

And just wait and see what happens :grin:

Actually, I am not sure if you can install it via LuCI nicely.
Much easier from SSH console.

I just test with the new 21.02 build and changing to the mainline ath10k works nicely. (I naturally first copied the ath10k .ipk to /tmp with scp)

 OpenWrt 21.02-SNAPSHOT, r16015-beab1bf163
root@router1:~# opkg update
Updated list of available packages in /var/opkg-lists/openwrt_core
Signature check passed.

root@router1:~# ls /tmp/ath10k*

root@router1:~# opkg list-installed | grep ath10k
ath10k-board-qca9984 - 20201118-3
ath10k-firmware-qca9984-ct - 2020-11-08-1
kmod-ath10k-ct - 5.4.111+2021-01-11-9fe1df7d-2

root@router1:~# opkg remove kmod-ath10k-ct
Removing package kmod-ath10k-ct from root...
root@router1:~# opkg remove ath10k-firmware-qca9984-ct
Removing package ath10k-firmware-qca9984-ct from root...

root@router1:~# opkg install ath10k-firmware-qca9984
Installing ath10k-firmware-qca9984 (20201118-3) to root...
Configuring ath10k-firmware-qca9984.

root@router1:~# opkg install /tmp/ath10k-mainline-owrt2102-r16015-beab1bf163-20210417-1641.ipk
Installing kmod-ath10k (5.4.111+5.10.16-1-1) to root...
Configuring kmod-ath10k.

root@router1:~# opkg list-installed | grep ath10
ath10k-board-qca9984 - 20201118-3
ath10k-firmware-qca9984 - 20201118-3
kmod-ath10k - 5.4.111+5.10.16-1-1

You might take the general discussion on mainline ath10k vs. ath10k-ct off this thread, as it has nothing to do specifically with my build. I am just nicely providing both driver variants, but this thread is not meant to be the central R7800 debugging and/or ath10k variant comparison thread. The R7800 exploration thread might be a much better place for generic R7800 discussion.

(And the ath10k-ct topic is much wider than R7800.)

@hnyman Do you want to try another spin with dsa? I cleared the dsa pr and in theory now all the port dropping problem should be solved...

Sure, I can give a spin to your PR 4036 (which seems to be the kernel5.10 PR + cpufreq tweak PR + new DSA commits.)

I compiled Test-DSA-kernel510-master-r16539-28623cab32-20210417 which is available from the download dir. (again a DSA build, so a modified network config is needed)

1 Like


I am facing an interesting, if not strange, issue. I am unable to figure it out, so I thought I would post it to the collective wisdom of R7800 users here, hoping somebody can shine some light on it.

I tested hnyman's 19.07 build (owrt1907-r11333-cc0b70467d-20210409) on R7800 for 5Ghz WiFi bandwidth (80Mhz Channel 36), using iperf3 as server on R7800, and iperf3 client on smartphone with 2x2 MIMO VHT80. Both R7800 and smartphone show link speed of 866.7Mbps e.g. "866.7 Mbit/s, 80 MHz, VHT-MCS 9, VHT-NSS 2, Short GI." in OpenWrt in Associated Station log, for both upload and download. This was a fresh install, with no changes from default other than WiFi config and iperf3 package install.

The iperf3 client was run as "iperf3 -c -t 15 -i 1 -P 6" i.e. with six streams, to max out the bandwidth. The smartphone was held around 1 foot away from router.

The total bandwidth across six streams was between 625Mbps to 650Mbps, which makes sense, given the link speed was 866.67 Mbps. My understanding from iperf3 documentation is that this is the upload bandwidth i.e. upload from smartphone to router.

I then ran the iperf3 client in reverse direction i.e. "iperf3 -c -t 15 -i 1 -P 6 -R". My understanding from iperf3 documentation is that this is the download bandwidth i.e. download from router to smartphone. All other conditions were same, including link speed, distance, etc.

The total bandwidth across six streams was between 275Mbps to 300Mbps. This was verified multiple times, and the results were very consistent. Download is less than half of upload, all else being same!

I then repeated the same test set up with hnyman's 21.02 build (owrt2102-r16051-15cd9a5d5c-20210420) with a fresh install, and no changes from default other than WiFi config and iperf3 package install. The upload was again similar, 625Mbps to 650Mbps. The download improved to between 475Mbps too 500Mbps. It never went above 500Mbps across multiple tests.

What can explain the following?

  1. Why is download speed less than half of upload speed in WiFi 5Ghz 80Mhz in 19.07 build?
  2. Why is download speed less than upload speed (although a lot better than 19.07, but still persistently less by 100-150 Mbps) in WiFi 5Ghz 80Mhz in 21.02 build?

Are above results known to be what to expect, or do I need to make any changes to the test setup for better results? Can anybody try to replicate my experiment, and see if they get any different results?


Let's talk about speed tests here:

1 Like

8 posts were split to a new topic: R7800 - IRQs, packet steering, SMP affinity

Hi hnyman,

in an attempt to add a package I need (xl2tpd) in the firmware to test the 2102 build with my ISP, I followed your instruction from second post.

I successfully managed to build a T7800-owrt2102-r16052 version, so first of all, thank you!

If I may suggest 2 things:

  1. The requirements for ubuntu 20.10 should now include "unzip" (it was neither installed by default or as a dependency of "build-essential" )
  2. It would be useful to indicate the needed volume space expected for building. I used an lxc container and was far too optimist at first (expecting that 8Go would suffice to build a ~15Mo firmware :smile: ). It seems that a volume of at least 24Go should be a requirement (OS+build), with 2Go RAM min.

And now, I'll look how to add new package to the build! :sweat_smile:

Hi hnyman,

Thanks for all the hard work. I'm new so this may be a stupid question.

I'm trying to install this iptables module but it's failing with an architecture error:

root@OpenWrt:~# opkg install iptables-mod-extra
Installing iptables-mod-extra (1.8.7-1) to root...
Configuring iptables-mod-extra.
Collected errors:
 * pkg_hash_fetch_best_installation_candidate: Packages for kmod-ipt-extra found, but incompatible with the architectures configured

Running the latest build:
OpenWrt 21.02-SNAPSHOT r16052-6f053e5b4f / LuCI openwrt-21.02 branch git-21.106.55967-06dd6b5

Do we have to build these modules ourselves since they aren't available?

Please ignore previous post i see i should be using iproute2.

You can't install buildbot kmods into private builds If you need extra kmods, you need to either use the buildbot builds, or to build the firmware by yourself.

(there is strict kernel version & config checksumming to prevent incompatibilites)

1 Like

@hnyman owrt2102-r16057 does not seem to be on Dropbox. Is it still being uploaded?

1 Like

No. Sorry, but different kind of copy-paste error this time. I built the WNDR3700 build yesterday, but changed the text here instead... I reverted the text.

@hnyman i'm going to try and do a build based on your config but with more kmods built in.

Also trying to learn some stuff along the way.

Quick question, going through the -packages.patch I see you renamed the bcp38 interface from eth1 to eth0.2 why is this done and would there be any negative effect if i didn't apply that patch?


Because WAN in R7800 is eth0.2 (instead of the typical eth1 that were wan in ar71xx devices)

Well, if you do not patch it there, then unless you change the config item manually in the config file, banip would not monitor the right interface and would not work...

Very good to know. Thanks!