Qualcommax NSS Build

if you want to build it yourself use @qosmio branch otherwise use either @JuliusBairaktaris or @AgustinLorenzo they both provide binaries for you to sysupgrade your device based on qosmio development efforts. Probably you want 24.10 instead of main as i understood you want a stable build.

1 Like

I have been using @AgustinLorenzo build for a year now, it's very stable and actually feel much more stable than the main branch for my WRX36. I was able to get full speed on my FIOS gigabit plan, 970 down and 940 up. The @AgustinLorenzo build basically is a fully functional build with the most commonly used feature built in, I just need to turn on the dynamic DNS, which is not turned on when booting first time, it's very straightforward upgrade everytime and I was able to keep setting for all the builds so far, I only changed the router setting using LUCI except for Adguard Home setup, but it's only one time and good to go forever.

1 Like

I deleted that patch around a year ago https://github.com/openwrt/openwrt/commit/291b366d17d5e1b1abcd5e4cf2477a97c49ac901. I had it mostly for debugging memory leaks but deleted it after implementing the SKB recycler.

I've been meaning to do another squash commit...

3 Likes

@qosmio First of all, thank you for your work. Today I tried to make ipq5018 support full nss, but encountered some problems. Can you give me some help?
Log:


[   11.501335] l2tp_core: L2TP core driver, V2.0
[   11.503703] urngd: v1.0.2 started.
[   11.503955] l2tp_netlink: L2TP netlink interface
[   11.680105] hotplug: symlinking qca-nss0.bin to /lib/firmware/qca-nss0-retail.bin
[   11.732131] qca-nss 7a00000.nss: NSS fw version: NSS.FW.12.5-210-MP.R
[   11.732200] qca-nss 7a00000.nss: fw of size 792924 bytes copied to addr: 40000000, nss_id: 0
[   11.759077] NSS reserved-memory node not found!
[   11.759134] Using default NSS reserved-memory size of 0x800000 !
[   11.762452] ffffffc079811140: NSS core 0 DDR from 40000000 to 40800000
[   11.805380] NSS reserved-memory node not found!
[   11.805426] Using default NSS reserved-memory size of 0x800000 !
[   11.808789] qca-nss 7a00000.nss: NSS core 0 booted successfully
[   11.877054] nss-dp 39d00000.dp2 eth1: PHY Link is down
[   11.877537] adpt_mp_port_netdev_change_notify[1186]:ERROR:netdev change notify with incorrect port 0
[   11.881192] ssdk_dev_event[2313]:ERROR:netdev change notify failed
[   11.890826] nss-dp 39d00000.dp2 eth1: PHY Link up speed: 1000
[   11.896656] adpt_mp_port_netdev_change_notify[1186]:ERROR:netdev change notify with incorrect port 0
[   11.902237] ssdk_dev_event[2313]:ERROR:netdev change notify failed
[   11.902574] gre: GRE over IPv4 demultiplexor driver
[   11.919812] ip_gre: GRE over IPv4 tunneling driver
[   11.939965] Loading modules backported from Linux version v6.12.6-0-ge9d65b48ce1a
[   11.940016] Backport generated by backports.git v6.1.110-1-35-g410656ef04d2
[   11.983079] NET: Registered PF_QIPCRTR protocol family
[   12.112904] PPP generic driver version 2.4.2
[   12.115052] NET: Registered PF_PPPOX protocol family
[   12.120167] PPTP driver version 0.8.5
[   12.168359] ath11k c000000.wifi: Multipd architecture - userpd: 1
[   12.169236] ath11k c000000.wifi: ipq5018 hw1.0
[   12.173457] ath11k c000000.wifi: FW memory mode: 2
[   12.394470] remoteproc remoteproc1: powering up pd-1
[   12.394752] remoteproc remoteproc1: Booting fw image ath11k/IPQ5018/hw1.0/q6_fw.mdt, size 1820
[   12.399012] remoteproc remoteproc0: powering up cd00000.remoteproc
[   12.407088] remoteproc remoteproc0: Booting fw image ath11k/IPQ5018/hw1.0/q6_fw.mdt, size 1820
[   12.520625] remoteproc remoteproc0: remote processor cd00000.remoteproc is now up
[   12.539631] remoteproc remoteproc1: remote processor pd-1 is now up
[   12.544027] ath11k b00a040.wifi1: Multipd architecture - userpd: 3
[   12.545357] ath11k b00a040.wifi1: qcn6122 hw1.0
[   12.551119] ath11k b00a040.wifi1: FW memory mode: 2
[   12.564594] ath11k c000000.wifi: qmi fail to get qcom,m3-dump-addr, ignore m3 dump mem req
[   12.572201] ath11k c000000.wifi: chip_id 0x0 chip_family 0x4 board_id 0xff soc_id 0xffffffff
[   12.572344] ath11k c000000.wifi: fw_version 0x270206d0 fw_build_timestamp 2022-08-04 13:28 fw_build_id WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
[   12.629589] remoteproc remoteproc2: powering up pd-3
[   12.629891] remoteproc remoteproc2: Booting fw image ath11k/IPQ5018/hw1.0/q6_fw.mdt, size 1820
[   12.644211] remoteproc remoteproc2: remote processor pd-3 is now up
[   12.652607] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[   12.668529] kmodloader: done loading kernel modules from /etc/modules.d/*
[   12.740352] ath11k b00a040.wifi1: qmi ignore invalid mem req type 10
[   12.747712] ath11k b00a040.wifi1: chip_id 0x0 chip_family 0x4 board_id 0xff soc_id 0xffffffff
[   12.747778] ath11k b00a040.wifi1: fw_version 0x270206d0 fw_build_timestamp 2022-08-04 13:28 fw_build_id WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
[   13.035148] Unable to handle kernel execute from non-executable memory at virtual address 0000000000000000
[   13.035209] Mem abort info:
[   13.044124]   ESR = 0x0000000086000005
[   13.046448]   EC = 0x21: IABT (current EL), IL = 32 bits
[   13.050328]   SET = 0, FnV = 0
[   13.055721]   EA = 0, S1PTW = 0
[   13.058604]   FSC = 0x05: level 1 translation fault
[   13.061614] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000045191000
[   13.066511] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
[   13.073145] Internal error: Oops: 0000000086000005 [#1] PREEMPT SMP
[   13.081561] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_inet l2tp_ppp ath11k_ahb(O) ath11k(O) pptp pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject sq nft_log nft_limit nft_hash nft_fullcone(O) nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mac80211(O) cfg80211(O) slhc qrtr_sv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c hwmon crc_ccitt compat(O) ip_gre gre qca_nss_drv(O) l2tp_netlink l2tp_core udp_tunnel ip6_udp_tunnel ip_tunnel sha512_genericy_rng drbg michael_mic hmac geniv cmac leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp(O) qca_ssdk(O) gpio_button_hotplug(O) ext4 mbcache jbd2 crc32c_generic
[   13.144401] CPU: 0 PID: 449 Comm: kworker/u4:5 Tainted: G           O       6.6.74 #0
[   13.166632] Hardware name: GL.iNET B3000 (DT)
[   13.174355] Workqueue: ath11k_qmi_driver_event ath11k_qmi_deinit_service [ath11k]
[   13.178702] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   13.186161] pc : 0x0
[   13.192926] lr : ath11k_dp_rx_pdev_alloc+0x600/0x68c [ath11k]
[   13.195362] sp : ffffffc083193bf0
[   13.201001] x29: ffffffc083193bf0 x28: ffffff800444b000 x27: ffffff8004448000
[   13.204303] x26: 0000000000000001 x25: 0000000000000000 x24: ffffff8004440000
[   13.211422] x23: ffffff8008a92040 x22: ffffff8008a9216c x21: ffffff8008a9229c
[   13.218539] x20: ffffff8008a92000 x19: 0000000000000080 x18: 0000000000000014
[   13.225658] x17: ffffffbf9eb33000 x16: ffffffc080000000 x15: 00000000e01cb3dd
[   13.232776] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001
[   13.239894] x11: 0000000000000000 x10: 0000000000000002 x9 : 0000000000000000
[   13.247012] x8 : ffffffc083193bf0 x7 : 0000000000000ec0 x6 : 0000000000000000
[   13.254130] x5 : ffffffc0799de048 x4 : 0000000020000000 x3 : 000000000000009f
[   13.261248] x2 : ffffffc079b4b590 x1 : 0000000000000000 x0 : ffffffc083193c5c
[   13.268367] Call trace:
[   13.275479]  0x0
[   13.277736]  ath11k_dp_pdev_alloc+0x6c/0x130 [ath11k]
[   13.279823]  ath11k_core_qmi_firmware_ready+0x1ec/0x5b4 [ath11k]
[   13.284771]  ath11k_qmi_deinit_service+0x1224/0x1ac4 [ath11k]
[   13.290847]  process_one_work+0x184/0x2e0
[   13.296488]  worker_thread+0x360/0x484
[   13.300480]  kthread+0x10c/0x110
[   13.304125]  ret_from_fork+0x10/0x20
[   13.307524] Code: ???????? ???????? ???????? ???????? (????????)
[   13.311076] ---[ end trace 0000000000000000 ]---
[   13.317065] Kernel panic - not syncing: Oops: Fatal exception
[   13.321752] SMP: stopping secondary CPUs
[   13.527431] Kernel Offset: disabled
[   13.527445] CPU features: 0x0,00000000,10000000,0000400b
[   13.529708] Memory Limit: none
[   14.135305] Rebooting in 1 seconds..

Hmm, Redmi AX6 failed to boot after update to latest build

Maybe related this recent (today) fix:

1 Like

yes, i can confirm that builds with feeds updated since feb 6 for mainstream and NSS repos have been borked because of this error in the qcom tree.
i'm awaiting a fix on main -
thx all

I tried to build a custom firmware for my Linksys MX4200v1 using @qosmio 24.10 branch yesterday. The build was successful but when I tried to flash the sysupgrade image from official 24.10 release the device keeps flashing green :frowning: . I had to power off/on 3x to get back to the offiicial release. The factory image seems working fine (flashed using the mtd command).

Has anyone experience this?

@nn5 - its the issue referenced in the 2 posts prior - started to appear on feb 6. there are fixes percolating through the snapshot builds, so you might have to wait.
the other approach might be to rebase to qosmio's orginal version, and don't update your git. i successfully rebuilt a snapshot build pulled from my dup of qosmio's git this way. i'm not sure if it will work for 24.10.

1 Like

Great, with latest rebase, now it can boot without any issues

1 Like

Hi boys,

This version include NSS offload for WiFi

I am redo the repos over the latest commit from OpenWRT.

Changelog (include upstream of OpenWRT):

  • Updated kernel and NSS software to version 6.6.74.
  • Updated hostapd to version “2025-02-09”, more info at: https://github.com/openwrt/openwrt/pull/17423
  • Updated “APK” to version “2025-02-08”, more info at : https://github.com/openwrt/openwrt/pull/17925 (fixed double output when updating packages in LUCI)
  • Added the latest changes developed by @qosmio for NSS.
  • Added the following device to the build: Linksys MX8500, ping @jlvlnzl
  • WARNING: (IN CASE YOU USE THEM). The following services are disabled on first startup: mwan3, sqm, mesh11sd (MESH build) and you have to re-enable them from: Luci -> System -> Startup

Notes:

Sources:

BUILDED (NORMAL): https://github.com/AgustinLorenzo/openwrt/releases/tag/ipq807x-nsswifi-2025-02-09-2231

BUILDED (MESH BUILD): https://github.com/AgustinLorenzo/openwrt/releases/tag/ipq807x-nsswifi-mesh-2025-02-10-0126

NOTE: I am now only compiling for AX3600, AX6, AX9000, Buffalo WXR-5950AX12, Dynalink DL-WRX36, QNAP 301W, Netgear RAX120v2, SXR80, SXS80, WAX218, Arcadyan AW1000, Zyxel NBG7815, Linksys MX4200 (v1 and v2), MX4300, MX5300, MX8500 and Spectrum SAX1V1K devices, if someone has used my versions with other devices (and it is supported), let me know and I will add it.

7 Likes

This 2025-02-09-2231 build caused my WRX36 not showing any app installed, the list is completely empty. Tried to install adguard home, couldnt complete due to ca-bundle missing, installed ca-bundle and adguardhome, no record in installled app but adguard is working.

1 Like

@AgustinLorenzo with 2025-02-10-0126 is the same. Software installed is empty, after press "update list" the avalibal apps are shown.


2 Likes

@AgustinLorenzo with kernel 6.6.76 for atomic error in nss patch
you can use below patch
thanks to the chatgpt :slight_smile:

diff -ruN a/target/linux/qualcommax/patches-6.6/0604-1-qca-add-mcs-support.patch b/target/linux/qualcommax/patches-6.6/0604-1-qca-add-mcs-support.patch
--- a/target/linux/qualcommax/patches-6.6/0604-1-qca-add-mcs-support.patch	2025-01-24 19:13:11.421427193 +0300
+++ b/target/linux/qualcommax/patches-6.6/0604-1-qca-add-mcs-support.patch	2025-02-09 19:19:13.377185772 +0300
@@ -519,8 +519,8 @@
 +
 +	mrt->vif_table[vif].pkt_in += pkts_in;
 +	mrt->vif_table[vif].bytes_in += bytes_in;
-+	cache->_c.mfc_un.res.pkt  += pkts_out;
-+	cache->_c.mfc_un.res.bytes += bytes_out;
++	atomic64_add(pkts_out, &cache->_c.mfc_un.res.pkt);
++	atomic64_add(bytes_out, &cache->_c.mfc_un.res.bytes);
 +
 +	for (vifi = cache->_c.mfc_un.res.minvif;
 +			vifi < cache->_c.mfc_un.res.maxvif; vifi++) {
@@ -806,8 +806,8 @@
 +
 +	mrt->vif_table[vif].pkt_in += pkts_in;
 +	mrt->vif_table[vif].bytes_in += bytes_in;
-+	cache->_c.mfc_un.res.pkt += pkts_out;
-+	cache->_c.mfc_un.res.bytes += bytes_out;
++	atomic64_add(pkts_out, &cache->_c.mfc_un.res.pkt);
++	atomic64_add(bytes_out, &cache->_c.mfc_un.res.bytes);
 +
 +	for (vifi = cache->_c.mfc_un.res.minvif;
 +			vifi < cache->_c.mfc_un.res.maxvif; vifi++) {
1 Like

Hi @PhoenixG36,

Can you report on the PR where the update is being discussed?

Link: https://github.com/openwrt/openwrt/pull/17925

You may be interested @Ansuel

Regards, Agustin

@AgustinLorenzo Thank you! Unfortunately it seems iperf3 performance over 5GHz has become worse with more losses.


I was building my own derivative from yours thanks to @Twingo and @rmandrad and found this issue, thought I had messed something up and ended up trying out your build.

Same here. apk list works though.

@AgustinLorenzo Could you please add this line https://github.com/arix00/openwrt-mx4300/blob/79024d0fc08b5315765a280d1670ecbc77b890e8/include/feeds.mk#L41 to the build so that we can get kmods so we don't have to rebuild the firmware ourselves? Thank you

2 Likes

Many thanks to @AgustinLorenzo for your builds and repo. I build firmwares for my MX4200v1 and MX5300 from your repo customized to my liking and except for some errors when compiling some packages, the firmwares were successfully built.
Please pardon my newbie question but I have been wondering about the differences between your main_nss and main_nss_mesh branches? Does the latter include 802.11s and the former doesn't?
TIA

1 Like

One difference I know of is that the mesh branches need to use Qualcomm NSS firmware version 11.4 since later ones don't support mesh. The non-mesh version has v12.2.