Qualcommax NSS Build

I would still like to try it never the less. See what i can adapt from it what nss packages you are using etc.

I tried compiling @qosmio repo for the ax3600 with the default config so i have a working baseline. I selected just the target and the build fails. Config can be found here: https://github.com/starraiderx/Qualcommax_NSS_Builder/blob/main/ax3600.config I get the same result locally as well as on github actions: https://github.com/starraiderx/Qualcommax_NSS_Builder/actions/runs/7942855449/job/21686578563

Is the repo currently buildable for ax3600?

You must selected nss*
And the bare minimum for wifi + lan acceleration

CONFIG_ATH11K_NSS_SUPPORT
CONFIG_PACKAGE_kmod-qca-nss-dp=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-ssdk=y
CONFIG_PACKAGE_kmod-qca-nss-ecm=y

The repo is buildable for ax3600.

2 Likes

Hi,
i have 1000mbit/1000mbit fiber internet
latest with my builds have upload speed capped to 500mbit via ethernet (qosmio or bitthief sources)
has anyone same problem
last known good bitthief build 6.1.68 without capped

Thanks for the reply. I finally got a working build with your package suggestion. https://github.com/starraiderx/Qualcommax_NSS_Builder/actions/runs/7943237127

Afterwards I enabled all kmod-qca-nss-drv-* build options and it failed again: https://github.com/starraiderx/Qualcommax_NSS_Builder/commit/c1185303d6bdc21996b657ab71cd421fc0d3639a

@AgustinLorenzo config also currently fails with @qosmio repo. Tested here: https://github.com/starraiderx/Qualcommax_NSS_Builder/actions/runs/7943158693

Do you know which once currently dont work so i dont have to trial and error all of them?

Thanks in advance!

1 Like

Hello!
Is there any advantage using ImmortalWrt over OpenWrt for the AX3600? Like some ready to use "official" NSS build are available ?

The "NSS" repo just I merge qosmio's code to immortalwrt.
About advantage?You can try immortalwrt official release firmware(like openwrt official).

The baseline (without setting extra_pbuf_core0, n2h_high_water_core0, n2h_wifi_pool_buf) should be good for 1-65 wireless clients, from my limited understanding of how those settings work. I know 5Ghz clients have double the memory requirements than that of 2Ghz. I have a sneaking suspicion that the stalling is actually related to ecm though. Hoping the next time I notice stalling I'll be able to login over UART and enable dynamic debug for the whole module.

I can't remember off the top of my head, but I believe it was related to the patch dealing with the M3 dump region section. I had introduced it to a while back to address the "qmi ignore invalid memory req type 3" warning but it actually wasn't needed at all. It would also cause a kernel panic during reboots. I reworked it to simply ignore it. But that change was a while ago, had you been regularly building and keeping in sync with my latest commits?

Actually it is difficult to say exactly because I had an intermediate compile that had a bug fixed by Robimarko but I had to revert to my older working build. Maybe ~3 weeks ago it was the last build that still needed the cold reboot after firmware flashing.
I usually compile new build on every set of commits you push to NSS wifi repo. I'm glad it's not needed any more.
About the case when the LAN stalls I noticed that I was able to use SSH without any delay via wifi client but all wired devices experienced huge delays.

1 Like

Hey, I am currently working on creating a NSS build for the Xiaomi AX3600. I already have full wifi NSS working with minimal bloat. I am currently working on implementing the rest of the NSS packages.

You can grab the working builds from: https://github.com/starraiderx/Qualcommax_NSS_Builder/releases/tag/Qualcommax-6.1-nss-wifi

ImmortalWRT is directed towards mainland china users. So if you are not from there I would recommend sticking to OpenWRT, since its easier to find documentation on if something goes wrong.

1 Like

This should properly build with latest commit

Glad to hear that its not a me issue. Was already trying the trial and error approach. I still have 3000 build minutes left that expire in 3 days so if you need me to test smth, let me know or make a pull.

Updated the .config again and started a build here: https://github.com/starraiderx/Qualcommax_NSS_Builder/actions/runs/7944690934/job/21690475921

If you have further config suggestions please let me know!

The biggest annoyance comes from selecting nssinfo. Its dependency on qca-nss-drv-netlink brings a whole slew of nested dependency hell, most of which aren't even required in using the nssinfo package (it only uses 5 of its libraries ipv4, ipv6, n2h, dynamic_interface, ethrx, and lso_rx out of 28...).

I personally have stopped using that utility. It's half-baked code that hasn't been updated in a while in QSDK. I stick with viewing plain old stas in /sys/kernel/debug/qca-nss-drv/stats/*

BTW, I currently use the following for getting full NSS offload in my own builds.

CONFIG_ATH11K_NSS_SUPPORT=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_NSS_MEM_PROFILE_MEDIUM=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-ecm=y

I let make oldconfig deal with enabling the required CONFIG_NSS_DRV_* dependancies.

And if you're using a platform that also has a third radio based on ath10k

CONFIG_PACKAGE_MAC80211_NSS_REDIRECT=y
2 Likes

Awesome tip! Appreciate it!

Just to verify:

#
# Automatically generated file; DO NOT EDIT.
# OpenWrt Configuration
#
CONFIG_TARGET_qualcommax=y
CONFIG_TARGET_qualcommax_ipq807x=y
CONFIG_TARGET_qualcommax_ipq807x_DEVICE_xiaomi_ax3600=y
CONFIG_ATH11K_NSS_SUPPORT=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_PACKAGE_MAC80211_NSS_REDIRECT=y
CONFIG_NSS_MEM_PROFILE_MEDIUM=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-ecm=y
CONFIG_PACKAGE_sqm-scripts-nss=y
CONFIG_PACKAGE_luci-app-banip=y
CONFIG_PACKAGE_luci-ssl=y
CONFIG_PACKAGE_luci-app-sqm=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_GCC_VERSION="13.2.0"

This enables full NSS Offloading capabilities in my build? Because a lot of CONFIG_NSS_DRV_* dependencies are now disabled. (Excuse me if its a stupid question. I am still new to NSS builds)

1 Like

@qosmio ; I just did a new build from your repos (just before the latest commit to nss-packages), and I'm finding a performance regression on wifi. Seems to be hitting a wall at about 600 mbps download (should be 1,500). Upload is fine, getting 1,000. Wired is fine, getting about 950/950 since its 1000BT.

The latest builds seem fixed wifi connection issue.
Now my all devices are successfully connected to wifi with wpa2-psk.

Have you read this?

I have 1Gbps download but I only got 600Mbps wifi
without that option with latest build.

1 Like

Unfortunately, the build still fails.

However, following your suggestion, I altered the method by which the .config is created, utilizing yes "" | make oldconfig to inherit default options unless specified.

The new build is available here: https://github.com/starraiderx/Qualcommax_NSS_Builder/actions/runs/7944942663

I also incorporated configuration printing to facilitate easier debugging.

2 Likes

This happens when you have a mix of WiFi 5 and 6 clients on the 5Ghz band that cannot use 80/160mhz channels and are actively transmitting.

My Sonos Ones were configured to connect to both 2G/5G. Anytime they were connected to the 5G AP my speeds would cap at 600mbps Making them stick to 2G has solved that issue.

If you were to restart your 5Ghz AP and immediately reconnect to it and run an iPerf/Speedtest you'll see it back to 1200+ up/down.

You should be able to use "make defconfig" to have it automatically expand without prompting. But the former approach of using yes "" | make oldconfig will produce logging output in case you needed to see all the options being selected. Which in your case, is what you want.