Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

The 22.03 build is stable with the default optimized on demand cpu settings included in the build from post #1 (running it on my 2 APs, using my 22.03 from 13 days ago):


 _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03-SNAPSHOT, r19881+31-353e468f47
 -----------------------------------------------------
root@OpenWrt:~# uname -a
Linux OpenWrt 5.10.154 #0 SMP Wed Nov 23 13:21:13 2022 armv7l GNU/Linux
root@OpenWrt:~# uptime
 07:09:12 up 13 days, 13:09,  load average: 0.10, 0.04, 0.00
root@OpenWrt:~# cat /sys/devices/system/cpu/cpufreq/policy1/stats/trans_table
   From  :    To
         :    384000    600000    800000   1000000   1400000   1725000 
   384000:         0        10        12        13        16        23 
   600000:        17         0      2624         1         9     45539 
   800000:         9      1812         0        12        13       855 
  1000000:         9         7         8         0        11        14 
  1400000:        18         6        11        16         0        24 
  1725000:        20     46356        46         7        26         0 
root@OpenWrt:~# 

I’m running the master build with the performance governor as my main router and it is working well (rebuilt master 9 days ago)


  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r21373+13-aa12a0fdd1
 -----------------------------------------------------
root@OpenWrt:~# uname -a
Linux OpenWrt 5.15.80 #0 SMP Sun Nov 27 22:17:02 2022 armv7l GNU/Linux
root@OpenWrt:~# uptime
 07:02:11 up 9 days,  9:35,  load average: 0.09, 0.03, 0.00
root@OpenWrt:~# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
performance
root@OpenWrt:~# cat /sys/devices/system/cpu/cpufreq/policy1/scaling_governor
performance
root@OpenWrt:~# 

5 Likes

Hi.

This is a fantastic build. Thank you everyone. I am trying to test on a couple C2600. Need stable versions so using 22.03.

Hit a bit of an issue. Anyone using GRE? Errors are thrown when I try build the kmod-gre & kmod-gre6 modules.

net/ipv4/ip_gre.c: In function 'ipgre_tap_setup':
net/ipv4/ip_gre.c:1331:14: error: 'struct net_device' has no member named 'priv_flags_qca_ecm'; did you mean 'priv_flags_ext'?
 1331 |         dev->priv_flags_qca_ecm |= IFF_QCA_ECM_GRE_V4_TAP; /* QCA NSS ECM Support */
      |              ^~~~~~~~~~~~~~~~~~
      |              priv_flags_ext
net/ipv4/ip_gre.c:1331:36: error: 'IFF_QCA_ECM_GRE_V4_TAP' undeclared (first use in this function); did you mean 'IFF_EXT_GRE_V4_TAP'?
 1331 |         dev->priv_flags_qca_ecm |= IFF_QCA_ECM_GRE_V4_TAP; /* QCA NSS ECM Support */
      |                                    ^~~~~~~~~~~~~~~~~~~~~~
      |                                    IFF_EXT_GRE_V4_TAP

Looks like a missing include but with my limited knowledge I couldn't identify which. I recklessly took out the patches for ip_gre.c and ip6_gre.c from ./target/linux/ipq806x/patches-5.10/999-07b-qca-nss-clients-qdisc-support.patch and that allows it to build. Is that a nonstarter or will that provide GRE with no NSS support?

Update: built it as a module... I'll leave it out of the image to test without risking a boot loop. Regardless, any comments are welcome.

Update2: modified the Makefiles for qca-nss-clients and qca-nss-ecm to eliminate the nss drivers that error during build and was able to build with CONFIG_ALL_KMODS=y. Doesn´t really help much and take ages to build but maybe will allow to get a build as close to vanilla as possible and nss enabled.

Update3: seems to work... not sure about stability or if GRE is using NSS. On the other hand, learned the hard way that the C2600 is a QCA99X0 and not a QCA9984. I'll do some testing and post the three patches I applied in case anyone is interested.

I am very thankful for the 2+ years of effort that have gone into making these builds. Amazing work. I can now play with it with my limited abilities. Thanks a lot!

With the little I know about building images, here is a "vanilla" 22.03.2 version for the C2600 and 9 other routers. I find that it is much easier to support the routers if they run an official release. I only have the C2600... use the images for other routers at your own risk.

This image is a rebuild of the 22.03.2 release (22.03.2 tagged build) build plus:

  • The 31 commits on ACwifidude's repository
  • Minimal changes to three files to allow all modules to build (this is in a commit of its own)
    • package/qca/qca-nss-clients/Makefile (remove non building packages)
    • package/qca/qca-nss-ecm/Makefile (ditto)
    • target/linux/ipq806x/patches-5.10/999-07b-qca-nss-clients-qdisc-support.patch (remove non building patches to GRE)
  • the 22.03.2 config.buildinfo (the 22.03.2 diffconfig) with additional NSS packages (checked in as diffconfig-nss)

Images and all kernel modules in bin directory.

BusyBox v1.35.0 (2022-10-14 22:44:41 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03.2, r19803-9a599fee93
 -----------------------------------------------------
root@OpenWrt:~# uname -a
Linux OpenWrt 5.10.146 #0 SMP Fri Oct 14 22:44:41 2022 armv7l GNU/Linux

Router is stable so far. Will let it run and update if it causes issues.

GitHub can be used as a repo for this build's modules. For that:

  • create file /etc/opkg/keys/a3f5af76b5479cf6 with the build public key. Contents:
untrusted comment: Public usign key for 22.03-nss release builds
RWSj9a92tUec9l/PM537XItbV7HH993lESFenzwBJdSR/pW5S2eSInZQ
  • update the /etc/opkg/distfeeds.conf to use repo instead, as in:
#src/gz openwrt_core https://downloads.openwrt.org/releases/22.03.2/targets/ipq806x/generic/packages
src/gz openwrt_nss https://raw.githubusercontent.com/APCCV/OpenWRT-22.03.2-NSS/22.03.2/bin/targets/ipq806x/generic/packages
src/gz openwrt_base https://downloads.openwrt.org/releases/22.03.2/packages/arm_cortex-a15_neon-vfpv4/base
src/gz openwrt_luci https://downloads.openwrt.org/releases/22.03.2/packages/arm_cortex-a15_neon-vfpv4/luci
src/gz openwrt_packages https://downloads.openwrt.org/releases/22.03.2/packages/arm_cortex-a15_neon-vfpv4/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/22.03.2/packages/arm_cortex-a15_neon-vfpv4/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/22.03.2/packages/arm_cortex-a15_neon-vfpv4/telephony

opkg will update and install nicely after that.

Here a before/after comparison of CPU idle during a fast.com speedtest:

Screenshot from 2022-12-09 23-42-52

Looks good!


If it behaves... once I flash the main router let's see how close it gets to 1Gbps.

Cheers!

Update: oh wow... love this thing.

Screen Shot 2022-12-12 at 7.16.19 PM

That is on 1G Ethernet after both routers were upgraded. (Yes, we have two... double NAT, I know... but we needed a secure DMZ. It works for us, and IPv6 will fix the issue anyways.) 1st router handles PPPoE and second router handles everything else with minimal WiFi. WiFi is handled by AP... those will be upgraded next.

Using normal builds we were barely getting to the 450Mbps mark. (fast dot com is great to make people feel good... it reports now 1.2Gbps on 1G Ethernet, yeah, right). Routers were CPU bound at those speeds.

Now they don't break a sweat! The PPPoE router went as far as 91% idle and the other one 88% idle.

I'll test WiFi once I get to upgrade an AP. (Graph above was on a test AP). I don't have hardcore WiFi devices to stress test more than maybe 500Mbs... let's see how far it goes.

Thanks again for this fantastic build!

5 Likes

I've had a breakthrough, the network stack is in fact perfectly stable, at least on the ea7500v1.
The reboots were because of the 5GHz AP, as soon as i turn that on a memory leak starts, not sure if in hostapd or elsewhere.
With only the 2.4GHz AP the memory usage is almost as low as regular owrt, never increases, and uptime has been so far solid 48 hours.

2 Likes

I've tried to compile latest master with the workaround.

# CONFIG_PACKAGE_kmod-pppol2tp is not set
CONFIG_PACKAGE_kmod-qca-nss-crypto=y
CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y
CONFIG_PACKAGE_curl=y

The compile still fails with

/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43/nss_core.h: In function 'nss_core_dma_cache_maint':
/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43/nss_core.h:116:17: error: implicit declaration of function 'dmac_inv_range'; did you mean 'outer_inv_range'? [-Werror=implicit-function-declaration]
  116 |                 dmac_inv_range(start, start + size);
      |                 ^~~~~~~~~~~~~~
      |                 outer_inv_range
/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43/nss_core.h:119:17: error: implicit declaration of function 'dmac_clean_range'; did you mean 'dmac_flush_range'? [-Werror=implicit-function-declaration]
  119 |                 dmac_clean_range(start, start + size);
      |                 ^~~~~~~~~~~~~~~~
      |                 dmac_flush_range
cc1: all warnings being treated as errors
make[5]: *** [scripts/Makefile.build:289: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43/nss_cmn.o] Error 1
make[4]: *** [Makefile:1901: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43] Error 2
make[4]: Leaving directory '/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.15.82'
make[3]: *** [Makefile:286: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43/.built] Error 2
make[3]: Leaving directory '/home/debian/openwrt/feeds/nss/qca-nss-drv'
time: package/feeds/nss/qca-nss-drv/compile#1.02#0.72#1.73
    ERROR: package/feeds/nss/qca-nss-drv failed to build.
make[2]: *** [package/Makefile:116: package/feeds/nss/qca-nss-drv/compile] Error 1
make[2]: Leaving directory '/home/debian/openwrt'
make[1]: *** [package/Makefile:110: /home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/debian/openwrt'
make: *** [/home/debian/openwrt/include/toplevel.mk:231: world] Error 2

Any ideas?

@ACwifidude
I don't see

CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y

in the diffconfig file when I clone your master build but it's there in the second post. Is this an omission.

You are missing a patch "999-001-Revert-ARM-dma-mapping-remove-dmac_clean_range-and-d.patch'"
Check your sources.

3 Likes

Where do I get it and how to apply that patch?

Hey,

I have not poked much around the snapshot builds, so can´t help much. Looking around GitHub this is what I found.

I think that patch seems to be only used for 5.10 kernel.

Commit: https://github.com/ACwifidude/openwrt/commit/795d569748f90a0fe99fbcc3ba24c70277ab6105

You could take it from there and commit it on top of your local repo, but it will take some adjusting to match offsets against the new kernel. However... since it's not there for the latest kernel, my guess is that it is not needed or it doesn't apply to the qsdk11 driver.

Did you check out the kernel5.15-nss-qsdk11 branch or the default kernel5.10-nss-qsdk10?

AFAIK, CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y is set automatically... that is what I understand from this commit.

1 Like

Updating my own situation just for documentation, I guess.

I had to give up on this NSS build on my R7800 a little over 3 weeks after starting using it, because I had 3 reboots at very critical moments (important work meetings happening). I made the decision to revert to 22.03.2 and a couple of weeks later, also made the decision to get a wifi6 router (TP-Link Archer AX6000) and use it as a dumb AP and leave the R7800 as a wired router only.

This seems to have fixed all of the issues I had been having (the setup has been running flawlessly for around 3-4 weeks now). I am getting consistent 450Mbps wifi/WAN traffic, and up to 900Mbps wifi/LAN (average being 600Mbps between the non-wifi6 devices and the R7800's iperf3).

Although this cost me extra ( ~U$220) for the AX6000, I am very happy with the results. The R7800 can handle just routing and VPN, the AX6000 handles wifi very well.

I'd try to debug and report more, but unfortunately I do not have multiple R7800s or the time to keep a test environment in parallel to my setup for that. Hopefully one day the mainstream OpenWrt will get the benefits of this branch and everyone can benefit from it.

Thank you all for the help and information.

Basically I've tried to compile both current master and 22.03 (Stable) from the first post following the instructions in the second post.
No matter what branch I try to compile once the compilation reaches this point
make[3] -C package/qca/qca-nss-drv compile
I get the same error

ERROR: package/qca/qca-nss-drv failed to build.
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/deb/openwrt/include/toplevel.mk:230: world] Error 1

If you use make V=s then it'll give you a lot more info and you should be able to see exactly why it's failing
I'd expect stable to work fine, so possibly it's a missing dependency somewhere, which should be an easy fix. Master's now using backports from the 6.x kernel, so the version of 999-mac80211-NSS-support.patch doesn't apply cleanly at the moment, causing build to fail. Qosmio's repo has an updated version which does work though...

Applying ./patches/200-fix-NULL-pointer-exception.patch using plaintext: 
patching file nss_core.c
Hunk #1 succeeded at 1425 (offset -174 lines).

Applying ./patches/201-Fix-Kernel-Panic-dma-with-NULL-dev.patch using plaintext: 
patching file nss_coredump.c
patching file nss_log.c

Applying ./patches/400-Exported-set-nexthop-function.patch using plaintext: 
patching file nss_phys_if.c
patching file nss_core.c
touch /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.prepared_b400e7089dce0c31c5998b0cd864ea94_6664517399ebbbc92a37c5bb081b5c53
rm -f /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.configured_*
rm -f /home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.qca-nss-drv_installed
ln -sf arch/nss_"ipq806x".h /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/exports/nss_arch.h
touch /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.configured_68b329da9893e34099c7d8ad5cb9c940
rm -f /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.built
touch /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.built_check
make  -j1 -C "/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.10.159"  KCFLAGS="-fmacro-prefix-map=/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi=target-arm_cortex-a15+neon-vfpv4_musl_eabi -fno-caller-saves " HOSTCFLAGS="-O2 -I/home/debian/openwrt/staging_dir/host/include -I/home/debian/openwrt/staging_dir/hostpkg/include -I/home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/host/include -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="arm-openwrt-linux-muslgnueabi-" ARCH="arm" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="" KBUILD_BUILD_HOST="" KBUILD_BUILD_TIMESTAMP="Mon Dec 19 22:10:22 2022" KBUILD_BUILD_VERSION="0" HOST_LOADLIBES="-L/home/debian/openwrt/staging_dir/host/lib" KBUILD_HOSTLDLIBS="-L/home/debian/openwrt/staging_dir/host/lib" CONFIG_SHELL="bash" V=1  cmd_syscalls= KBUILD_EXTRA_SYMBOLS="/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/ath10k-ct.symvers /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/cryptodev-linux.symvers /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/gpio-button-hotplug.symvers /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/ksmbd.symvers /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/mac80211.symvers /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/symvers/qca-nss-gmac.symvers" KERNELRELEASE=5.10.159  M="/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de" EXTRA_CFLAGS="-I/home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/qca-nss-gmac" SoC=""ipq806x"" modules
make[4]: Entering directory '/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.10.159'
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
echo >&2;                                                       \
echo >&2 "  ERROR: Kernel configuration is invalid.";           \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
echo >&2 ;                                                      \
/bin/false)
make -f ./scripts/Makefile.build obj=/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de \
single-build= \
need-builtin=1 need-modorder=1
  arm-openwrt-linux-muslgnueabi-gcc -Wp,-MMD,/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.nss_bridge.o.d -nostdinc -isystem /home/debian/openwrt/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-11.2.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/11.2.0/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -fno-dwarf2-cfi-asm -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -mcpu=cortex-a15 -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=1024 -fstack-protector -Wimplicit-fallthrough -Wno-unused-but-set-variable -Wno-unused-const-variable -fomit-frame-pointer -g -femit-struct-debug-baseonly -fno-var-tracking -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -fmacro-prefix-map=/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi=target-arm_cortex-a15+neon-vfpv4_musl_eabi -fno-caller-saves -I/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_hal/ipq806x -DNSS_HAL_IPQ806X_SUPPORT -I/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_hal/include -I/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_data_plane/include -I/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/exports -DNSS_DEBUG_LEVEL=0 -DNSS_PKT_STATS_ENABLED=1 -DNSS_PM_DEBUG_LEVEL=0 -DNSS_SKB_REUSE_SUPPORT=1 -I/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de -DNSS_FREQ_SCALE_SUPPORT=1 -DNSS_DT_SUPPORT=1 -DNSS_FW_DBG_SUPPORT=0 -DNSS_PM_SUPPORT=0 -DNSS_FABRIC_SCALING_SUPPORT=0 -I/home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include/qca-nss-gmac  -DMODULE  -DKBUILD_BASENAME='"nss_bridge"' -DKBUILD_MODNAME='"qca_nss_drv"' -c -o /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_bridge.o /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_bridge.c
In file included from /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_hal/include/nss_hal.h:26,
                 from /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_tx_rx_common.h:25,
                 from /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_bridge.c:17:
/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_core.h: In function 'nss_core_dma_cache_maint':
/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_core.h:120:17: error: implicit declaration of function 'dmac_inv_range'; did you mean 'outer_inv_range'? [-Werror=implicit-function-declaration]
  120 |                 dmac_inv_range(start, start + size);
      |                 ^~~~~~~~~~~~~~
      |                 outer_inv_range
/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_core.h:123:17: error: implicit declaration of function 'dmac_clean_range'; did you mean 'dmac_flush_range'? [-Werror=implicit-function-declaration]
  123 |                 dmac_clean_range(start, start + size);
      |                 ^~~~~~~~~~~~~~~~
      |                 dmac_flush_range
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:286: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/nss_bridge.o] Error 1
make[4]: *** [Makefile:1837: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de] Error 2
make[4]: Leaving directory '/home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.10.159'
make[3]: *** [Makefile:127: /home/debian/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-809a00de/.built] Error 2
make[3]: Leaving directory '/home/debian/openwrt/package/qca/qca-nss-drv'
time: package/qca/qca-nss-drv/compile#3.43#1.97#8.33
    ERROR: package/qca/qca-nss-drv failed to build.
make[2]: *** [package/Makefile:116: package/qca/qca-nss-drv/compile] Error 1
make[2]: Leaving directory '/home/debian/openwrt'
make[1]: *** [package/Makefile:110: /home/debian/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/debian/openwrt'
make: *** [/home/debian/openwrt/include/toplevel.mk:230: world] Error 2

I think that's possibly an issue with dependencies, I remember seeing it before, I'm just not entirely sure what I did to fix it...

Does your .config have all the below, try adding anything that's missing and trying again

CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_PACKAGE_kmod-nss-ifb=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-ecm-standard=y
CONFIG_PACKAGE_kmod-qca-nss-gmac=y

1 Like

I have these

# NSS Drivers
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-ecm-standard=y
CONFIG_PACKAGE_kmod-qca-nss-gmac=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y
CONFIG_PACKAGE_kmod-nss-ifb=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y
CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2=y
CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6=y

Not to peddle my products but that is what I did for 22.03.2. :wink:

Unless I'm reading the commit logs wrong, the MAC80211 driver for the 22.03 branch seems to have been updated, that among many other changes. Even if that is of no matter, the kernel has been bumped a few times already. Trying to build from the head of 22.03 could be challenging as the NSS patches might need offsets adjusted to the new kernel or driver versions. I think that's why the last rebase shows up as dirty. I avoided the issue by checking out the 22.03.2 tagged commit (as to match what the 22.03.2 release was) and building with that.

In order to build 22.03.2 the 30+ patches for NSS are required. I committed those on top of the 22.03.2 check out. Build still fails after that, so I added a very small commit to remove the issue I was having.

If you take a look at the commit history on the repo I linked above hopefully this makes sense. This repo:

For snapshot builds this is too much of a moving target for me so I'm avoiding those.

Hope that helps.

1 Like

Have the reboots bin fixt in the K5.15 master builds? The K5.10 build I am running is doing good for me, but I wanted to test something out.

Looks like you are missing this commit (adding this commit should fix the error :sunglasses:):

1 Like

well everyone, although I have the super stable version, it still happens to me that when a wifi device leaves the router, sometimes the other devices lose internet, even if a 5ghz device leaves the network, the 2.4ghz network is affected. Do you know if there is a solution for this in the last images?

[image]

I'm on 20d uptime with current MASTER... and the only reason why it's at 20d is because that's when I did the update to the latest version. Haven't had any issues that you describe.

EDIT - R7800 w/ CT drivers. Forgot to mention.

1 Like

a recent version?
it seems a lot the issue @quarky faced some time ago and that we had for a looooooong time, but afaik it got solved.
Just not to waste a message :slight_smile: @ACwifidude did you add to your repository the ansuel's patch on, basically, disable frequency throttling to save stability?
Thanks!