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

You need to post your diffconfig file. Incorrectly configured diffconfig file (missing proper target, kernel settings etc.) will produce a .config that is not suitable for the build process. Don't just use the diffconfig from your 22.03 or MASTER. You need to make appropriate changes for this new 5.15-based repo.

1 Like

thanks, so adding the 2 commands above

massi@greenbook:~/rutto/qosmio/openwrt-ip806x$ cp r7800-diffconfig .config
massi@greenbook:~/rutto/qosmio/openwrt-ip806x$ make defconfig
tmp/.config-package.in:54484:error: recursive dependency detected!
tmp/.config-package.in:54484:   symbol PACKAGE_libgd is selected by PACKAGE_libgd-full
tmp/.config-package.in:54518:   symbol PACKAGE_libgd-full depends on PACKAGE_libgd
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

#
# configuration written to .config
#
massi@greenbook:~/rutto/qosmio/openwrt-ip806x$ make package/{qca-nss-drv,qca-nss-clients,qca-nss-ecm}/{clean,compile} V=sc -j$(nproc)
make[2]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x/scripts/config'
time: target/linux/prereq#0.26#0.01#0.25
make[1]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make[2]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x/feeds/nss/qca-nss-drv'
rm -rf /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-drv-2020-03-20-3cfb9f43
rm -f /home/massi/rutto/qosmio/openwrt-ip806x/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.qca-nss-drv_installed
rm -f /home/massi/rutto/qosmio/openwrt-ip806x/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/packages/qca-nss-drv.list
make[2]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x/feeds/nss/qca-nss-drv'
time: package/feeds/nss/qca-nss-drv/clean#0.17#0.02#0.17
make[1]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make[2]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x/scripts/config'
make[1]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make[2]: Entering directory '/home/massi/rutto/qosmio/openwrt-ip806x/feeds/nss/qca-nss-gmac'
make[2]: *** No rule to make target '/home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.15.69/.config', needed by '/home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-2021-04-20-17176794/.built'.  Stop.
make[2]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x/feeds/nss/qca-nss-gmac'
time: package/feeds/nss/qca-nss-gmac/compile#0.18#0.01#0.18
    ERROR: package/feeds/nss/qca-nss-gmac failed to build.
make[1]: *** [package/Makefile:116: package/feeds/nss/qca-nss-gmac/compile] Error 1
make[1]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make: *** [/home/massi/rutto/qosmio/openwrt-ip806x/include/toplevel.mk:231: package/qca-nss-drv/compile] Error 2

(i've never used my old config files)

You need to have a base .config first. You can use the file r7800-diffconfig that's in the root of the repository.

git pull
./scripts/feeds update -a
./scripts/feeds install -a
cp r7800-diffconfig .config
make menuconfig
Enable/disable any additional components.

if running first time in a clean clone
make world -j$(nproc)

subsequent runs
make -j$(nproc) target/compile package/{compile,install,index} target/install V=s

2 Likes

as you can see above, i used your diffconfig. But i now understand i can build single packages only after a full build in a clean environment, right?
so this is my issue, i just cloned the repo and tried to build the failing packages
i need to build on another pc to build everything..
thanks

2 Likes

Correct, since you were missing the tools, toolchain, kernel, and kernel headers which must be built.

Refer to the doc here, for more.

2 Likes

Run an update. I had a duplicate in there.

scripts/feeds update -f nss && scripts/feeds install -a -p nss

2 Likes

As I said before, I am starting from version 22.03 that I compiled on the 16th and that until now, it had offered me good performance, especially on windows where I almost reached 1Gbits, both uploading and downloading, in the transfer of files. If you want data under windows tell me what you want me to try.

In linux on 160 mhz wifi5 the result on fleint is:


data

on 80 mhz wifi5 the result is


data

on 20 mhz wifi5 result


data

For now I will not do more tests on this version.

Latency is insane. I wonder what would be the result with factory firmware

PD: The first attempt to compile version 5.15-qsdk-new-krait-cc has failed. I'll try again in a few days. This weekend I have a busy one.

Your download throughput and ping latency are so 'pathetic" in this concurrent TCP download/upload/ping latency test. Can you try another WIFI client. It looks like your WIFI client spent all its time doing upload instead of download.

Mine was about D/U/P ~ 75 Mbps / 75 Mbps / 20 ms (WIFI-5 80MHz)

I'm using ath10k (non-ct) v157. You're using ath10k-ct.

1 Like

I have tried it, but the secure boot has driven me crazy. It is a usb stick rtl8812u (tp-link T4U v1) and I couldn't install it i will try........

I'm on ath10k-ct.

Interesting deep. Looks good to me in general, ≈20 ms latency, right? Maybe a little less, based on the scale.

Heads up! If anyone tries to test with a macOS, you will face this very same problem, and a VM running in the macOS machine doesn't solve the issue. I thought like sharing it just in case.

2 Likes

Hello,
i got error building the full image, but not running the build of nss packages.
The config is exactly your config with only debug enabled, and i get this, that seems totally uncorrelated with nss:

Collected errors:
 * check_data_file_clashes: Package kmod-ath10k wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/lib/modules/5.15.69/ath10k_core.ko
        But that file is already provided by package  * kmod-ath10k-ct
 * check_data_file_clashes: Package kmod-ath10k wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/lib/modules/5.15.69/ath10k_pci.ko
        But that file is already provided by package  * kmod-ath10k-ct
 * opkg_install_cmd: Cannot install package kmod-ath10k.
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/etc/hotplug.d/ntp/25-dnsmasqsec
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/etc/init.d/dnsmasq
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/etc/uci-defaults/50-dnsmasq-migrate-resolv-conf-auto.sh
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/usr/lib/dnsmasq/dhcp-script.sh
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/usr/sbin/dnsmasq
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/usr/share/acl.d/dnsmasq_acl.json
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/usr/share/dnsmasq/dhcpbogushostname.conf
        But that file is already provided by package  * dnsmasq
 * check_data_file_clashes: Package dnsmasq-dhcpv6 wants to install file /home/massi/rutto/qosmio/openwrt-ip806x/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-ipq806x/usr/share/dnsmasq/rfc6761.conf
        But that file is already provided by package  * dnsmasq
 * opkg_install_cmd: Cannot install package dnsmasq-dhcpv6.
make[2]: *** [package/Makefile:70: package/install] Error 255
make[2]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make[1]: *** [package/Makefile:111: /home/massi/rutto/qosmio/openwrt-ip806x/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_install] Error 2
make[1]: Leaving directory '/home/massi/rutto/qosmio/openwrt-ip806x'
make: *** [/home/massi/rutto/qosmio/openwrt-ip806x/include/toplevel.mk:231: world] Error 2

Do a make menuconfig and deactivate kmod-ath10k-ct and dnsmasq-dhcpv6. Afterwards make -j5 (or whatever you like) should run to the end and provide you with an image.

Please keep in mind that packages (and many of them have kmod dependencies) have to be compiled for the new kernel 5.15, so there's always chance that some of them (especially kmod ones) fail the compile and have to fixed later by their package owners. Try to remove any package that seems to fail the compile (checking the build log when using make -j1).

1 Like

What sounds strange to me Is that i'm using the default diffconfig from @qosmio , how can i get these errors?

1 Like

@qosmio
Can you fix the @amteza's patch in your branch as he mentioned here.

When I run

cat /sys/kernel/debug/ieee80211/*/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000

Thinks for the great work!

It would be even better if you could include samba share and guest wifi.
I somehow could not get them working.

I used putty and WinSCP to browse my USB harddrives (/mnt/sda1 and /mnt/sdb1), they both are shown empty now (worked before, they are ext4).

Guest wifi connection is working and I can use internet, but Android and Windows report is as "No Internet", don't know what I did wrong.

Thanks again!

If you just want to change the AQL txq limits, you can just change them dynamically as follows. I prefer not to hard-code the experimental settings that are different from the default settings in upstream code, if we can dynamically change them via other means. Default settings are there for a good reason. The default AQL txq limits are set to prevent potential throughput drops at very high or very low bitrates.

Put it in /etc/rc.local if you want to make it persistent.

for ac in 0 1 2 3; do echo $ac 2000 4000 > /sys/kernel/debug/ieee80211/phy0/aql_txq_limit; done
for ac in 0 1 2 3; do echo $ac 2000 4000 > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done
1 Like

My fault. I've just thought those settings were part of the NAPI polling patch. After that reading the @amteza's post I imagined that the patch wasn't implemented and working at all. Actually is this NAPI_Polling_8 setting set properly now or we have to wait @qosmio to update his branch.

Good point. However, we discussed it and recognised these values nowadays are too high. It would be good to find a new set that works for most of us in 2022. :wink:

If you removed the piece corresponding to reducing AQL limits from my patches, it's okay. However, if you didn't patches are not correctly applied, it is worth re-verify.

1 Like