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

I have followed the steps, created the file and it doesn't work for me... but surely it's my fault.

two archives:

https://github.com/AgustinLorenzo/openwrt/tree/9c20f0ebb55972d75376c8594a096c49c868b46c/target/linux/ipq807x/base-files/etc/init.d

Fixed the chromium diffconfig. Thanks for pointing that out!

Master, 23.05, and 22.03 are all freshly built within the last day or so. Enjoy everyone!

3 Likes

You can sysupgrade and can keep your current settings.

Seriously? I've read several times that settings only can be kept from v21 and up. I'm also coming from v19.07. I was planning to wipe the config because of that.
@bigfist how did you go with the settings after your upgrade?

Just before preparing the flash I noticed a new build grew on Github :slight_smile: Thanks! Any important changes?

And with checking SHA-256 I got confused, I selected R7800-20230607-Stable2203NSS-sysupgrade.bin for NSS/ath10k-ct, but strange enough the proper checksum is found in sha256sums-Stable2203NSS-ath10k and not in sha256sums-Stable2203NSS as I would think (reading the #1 post description). What do you think of this @ACwifidude ?

@acwifidude, 5.15 doesn't have wireguard? I can't get it to work, and neither can openVPN

Delete
CONFIG_PACKAGE_luci-app-wireguard=y

Add these instead.

CONFIG_PACKAGE_luci-proto-wireguard=y
CONFIG_PACKAGE_kmod-wireguard=y
CONFIG_PACKAGE_wireguard-tools=y
3 Likes

Thanks friend, but I don't know how to compile, I was referring to the version that is discussed in the thread.

Now you know the package names you may try to install them via the Software menu?

Error kernel compilation

The 22.03 build has kmod-wireguard included so you should be able to configure wireguard and add wireguard packages.

Didn’t catch that wireguard has changed its nomenclature for the luci package.

2 Likes

Yes, problem is 23.05 anda 5.15 kernel.

1 Like

Has anyone tested Ansuel's latest krait cache scaling driver patch?

I had tested kernel5.15-nss-qsdk11 branch with Ansuel’s patch for 22 days.
It seems stable.
I built latest with the patch today.

3 Likes

openVPN (as a server) is working for me at least on ACwifidude's 23.05 branch (as on previous branches).

1 Like

Dear Any and All,
Hello and I hope that all is well with everyone. I have one simple question - make that two questions
any assistance will be greatly appreciated - thanks in advance

Question # 1 -  AcWifiDude states that his Build is 
Stable2305NSS is stable - I thought 2305 Branch 
is on RC1 -what am I missing if anything ?

Question #2 - Can anyone layout the exact steps 
necessary to REBASE Stable2305NSS. I am just 
asking for future reference as I have begun to 
compile my own Builds.

Maybe the thread can be updated to detail the rebase process for the new Branch 23.05.0-rc1 or Stable2305NSS

Thanks and Peace

EDIT

For those who may wish to REBASE 23.05-nss - see below :

Main Original Rebase Directions REBASE DIRECTIONS

git clone -b openwrt-23.05-nss-qsdk11 https://github.com/ACwifidude/openwrt.git
#Remove “rebase” commit (this gives you a clean build environment )
 - it deletes the final bin content and diffconfig files, I’d copy the diffconfig 
to a separate folder before running this command)
git reset --hard HEAD~1
git remote add upstream https://git.openwrt.org/openwrt/openwrt.git

OpenWrt 23.05 Rebase:

git fetch upstream && git rebase upstream/openwrt-23.05
2 Likes

It is rc1 currently but will soon be the next official stable release (1-2 months at most). I kept the nomenclature the same to make it easy to replicate like you found. :sunglasses:

1 Like

Thank you for the clarification and information regarding 23.05. I speak for all ( I am sure ) when I say I appreciate your continued dedication, expertise and time which you devote to this outstanding project.
God Bless You and Yours
Peace

3 Likes

Current build is pretty amazing. Thanks @ACwifidude. :muscle:.

3 Likes

I do have bad 2.4Ghz WiFi Latency / connection. (40Mhz channel 6) on the latest master ath10k build. Not sure what's the cause. Might check it on the next build. The last stable 23.05 ath10k one works great by the way.

Have you checked this info probably this one is related too.

1 Like

In case anyone wants to try it out... here is the "apccv build: as close to vanilla as possible with NSS support".
Images for all supported devices in the bin directory.

Scant build instructions on GitHub readme. I don't see the reason why anybody would prefer to re-build this instead of OP build on post #1 but the details are available and it is straightforward. As with any other release build, as long as no modules are added or dropped from config (ie, only switched between <*> and <M> in config so they are/aren't part of the image, but not dropped altogether) and .config keeps the ALL_MODULES=y, the modules in repo above will be reusable for any other built image. Just mind the keys.

Part of the value of posting this in GitHub is the commit history. Feel free to check it on this or any of the previous repos. It is usually clear from it which commits need to be cherry-picked to add NSS to the vanilla image.

One issue that tripped me to no end (beyond the missing dependencies on NSS Makefiles for packages that will never be used like the noload versions) was that the toolchain build has a "defect" (up to smarter people to determine if it is or not) that requires additional headers on the build machine. For builds failing to find asm/types.h refer to the build instructions on the repo.

If there's interest I'll upload the ImageBuilder and add link here.

Similarly to previous ones:

  • All generic images are built. All modules are built.
  • Key for package signature verification is in package_key folder and can be copied to /etc/opkg/keys directory after flash to use this repo for packages.
  • /etc/opkg/distfeeds.conf can be updated after flash to point to this repo for packages. Replace https://downloads.openwrt.org/releases/23.05.0-rc1/targets/ipq806x/generic/packages/ url with https://raw.githubusercontent.com/APCCV/OpenWRT-23.05.0-rc1-NSS/23.05.0-rc1/bin/targets/ipq806x/generic/packages/. Should look like this:
root@OpenWrt:~# ls -la /etc/opkg/keys/
drwxr-xr-x    1 root     root             0 Jun 17 01:23 .
drwxr-xr-x    1 root     root             0 Jun  3 09:42 ..
-rw-r--r--    1 root     root           124 Jun  3 09:42 b5043e70f9a75cde
-rw-r--r--    1 root     root            92 Jun 17 01:23 fd81d652ea5b7033

root@OpenWrt:~# cat /etc/opkg/distfeeds.conf 
#src/gz openwrt_core https://downloads.openwrt.org/releases/23.05.0-rc1/targets/ipq806x/generic/packages
src/gz openwrt_core https://raw.githubusercontent.com/APCCV/OpenWRT-23.05.0-rc1-NSS/23.05.0-rc1/bin/targets/ipq806x/generic/packages/
src/gz openwrt_base https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/base
src/gz openwrt_luci https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/luci
#src/gz openwrt_nss https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/nss
src/gz openwrt_packages https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/23.05.0-rc1/packages/arm_cortex-a15_neon-vfpv4/telephony

It's alive...

Seems to be NSS-ing alright...

root@OpenWrt:~# dmesg | grep -i nss
[    6.390093] * Driver    :NSS GMAC Driver - RTL v(3.72a)
[    6.414072] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_FS(1)(0x3cd8): 0x8
[    6.419424] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC_CTL(1)(0x3cc0): 0x2
[    6.432224] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC0_MD(1)(0x3cc4): 0x7f0000
[    6.445280] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC1_MD(1)(0x3cc8): 0x7f0000
[    6.459178] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC0_NS(1)(0x3ccc): 0x142
[    6.472798] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC1_NS(1)(0x3cd0): 0x142
[    6.486076] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + CLK_HALT_NSSFAB0_NSSFAB1_STATEA(0x3c20): 0x5b00
[    6.499447] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_CTL(1)(0x3cd4): 0x50
[    6.513504] (unnamed net_device) (uninitialized): nss_gmac_dev_init: nss_base(0xdf560000) + NSS_GMACn_CTL(1)(0x34): 0x90c0c
[    6.526437] (unnamed net_device) (uninitialized): nss_gmac_dev_init: nss_base(0xdf560000) + NSS_ETH_CLK_DIV0(0xc): 0x100
[    6.564780] ipq8064-mdio 37000000.mdio (unnamed net_device) (uninitialized): nss_gmac_ipc_offload_init: enable Rx checksum
[    6.566815] ipq8064-mdio 37000000.mdio eth0: Initialized NSS GMAC1 interface eth0: (base = 0x37200000, irq = 38, PhyId = 4, PollLink = 0)
[    6.578064] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_FS(2)(0x3cf8): 0x8
[    6.589737] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC_CTL(2)(0x3ce0): 0x2
[    6.602406] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC0_MD(2)(0x3ce4): 0x7f0000
[    6.615503] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC1_MD(2)(0x3ce8): 0x7f0000
[    6.629412] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC0_NS(2)(0x3cec): 0x142
[    6.643024] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_SRC1_NS(2)(0x3cf0): 0x142
[    6.656302] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + CLK_HALT_NSSFAB0_NSSFAB1_STATEA(0x3c20): 0x5b00
[    6.669676] (unnamed net_device) (uninitialized): nss_gmac_clk_ctl_dev_init: ctx->clk_ctl_base(0xdf2f4000) + GMAC_COREn_CLK_CTL(2)(0x3cf4): 0x50
[    6.683731] (unnamed net_device) (uninitialized): nss_gmac_dev_init: nss_base(0xdf560000) + NSS_GMACn_CTL(2)(0x38): 0x80c0c
[    6.696670] (unnamed net_device) (uninitialized): nss_gmac_dev_init: nss_base(0xdf560000) + NSS_ETH_CLK_DIV0(0xc): 0x100
[    6.707505] (unnamed net_device) (uninitialized): nss_gmac_qsgmii_dev_init: QSGMII_PHY_SGMII_1_CTL(0x13c) - 0xc09c408f
[    6.718632] (unnamed net_device) (uninitialized): nss_gmac_qsgmii_dev_init: NSS_QSGMII_CLK_CTL(0x2c) - 0x0
[    6.763215] ipq8064-mdio 37000000.mdio (unnamed net_device) (uninitialized): nss_gmac_ipc_offload_init: enable Rx checksum
[    6.765067] ipq8064-mdio 37000000.mdio eth1: Initialized NSS GMAC2 interface eth1: (base = 0x37400000, irq = 39, PhyId = 0, PollLink = 0)
[    7.002467] nss_driver - fw of size 544712  bytes copied to load addr: 40000000, nss_id : 0
[    7.003278] nss_driver - Turbo Support 1
[    7.056904] bf071880: nss core 0 booted successfully
[    7.128615] nss_driver - fw of size 218860  bytes copied to load addr: 40800000, nss_id : 1
[    7.176165] bf075fc0: nss core 1 booted successfully
[   11.004393] ipq8064-mdio 37000000.mdio eth1: nss_gmac_start_up: Force link up
[   11.010628] ipq8064-mdio 37000000.mdio eth1: nss_gmac_dev_set_speed:NSS_ETH_CLK_DIV0(0xc) - 0x100
[   11.016610] ipq8064-mdio 37000000.mdio eth1: nss_gmac_dev_set_speed: qsgmii_base(0xdf580000) + PCS_MODE_CTL(0x68): 0x80008082
[   11.025658] ipq8064-mdio 37000000.mdio eth1: nss_gmac_reset: eth1 resetting...
[   12.101452] ipq8064-mdio 37000000.mdio eth1: nss_gmac_change_mtu: Enabling Normal Frame MTU (Requested MTU [1500])
[   12.109913] ipq8064-mdio 37000000.mdio eth1: nss_gmac_change_mtu: Enabling Jumbo Frame MTU for eth1 (Requested MTU [1500])
[   12.131103] ipq8064-mdio 37000000.mdio eth1: nss_gmac_ipc_offload_init: enable Rx checksum
[   12.137531] ipq8064-mdio 37000000.mdio eth1: nss_gmac_config_flow_control:
[   12.145925] ipq8064-mdio 37000000.mdio eth1: nss_gmac_rx_pause_disable: disable Rx flow control
[   12.152799] ipq8064-mdio 37000000.mdio eth1: nss_gmac_tx_pause_disable: disable Tx flow control
[   12.161924] ipq8064-mdio 37000000.mdio eth1: nss_gmac_linkup: data plane open command successfully issued
[   69.607008] <NSS-CRYPTO>:module loaded (platform - IPQ806x, build - Build_ID - 06/15/23, 18:43:46)
[   69.607283] <NSS-CRYPTO>:Register with NSS driver-
[   69.720098] <NSS-CRYPTO>:NSS Firmware initialized
[   69.720361] <NSS-CRYPTO>:probing engine - 0
[   69.723787] <NSS-CRYPTO>:Device Tree node found
[   69.727943] <NSS-CRYPTO>:init completed for Pipe Pair[0]
[   69.732395] <NSS-CRYPTO>:init completed for Pipe Pair[1]
[   69.755802] <NSS-CRYPTO>:probing engine - 1
[   69.755836] <NSS-CRYPTO>:Device Tree node found
[   69.758878] <NSS-CRYPTO>:init completed for Pipe Pair[0]
[   69.763400] <NSS-CRYPTO>:init completed for Pipe Pair[1]
[   69.791492] <NSS-CRYPTO>:probing engine - 2
[   69.791527] <NSS-CRYPTO>:Device Tree node found
[   69.794567] <NSS-CRYPTO>:init completed for Pipe Pair[0]
[   69.799015] <NSS-CRYPTO>:init completed for Pipe Pair[1]
[   69.815040] <NSS-CRYPTO>:probing engine - 3
[   69.820728] <NSS-CRYPTO>:Device Tree node found
[   69.824633] <NSS-CRYPTO>:init completed for Pipe Pair[0]
[   69.829071] <NSS-CRYPTO>:init completed for Pipe Pair[1]
[   73.390232] wlan0: Created a NSS virtual interface
[   76.710319] wlan1: Created a NSS virtual interface
[   88.387584] ipq8064-mdio 37000000.mdio eth1: nss_gmac_start_up: Force link up
[   88.393830] ipq8064-mdio 37000000.mdio eth1: nss_gmac_dev_set_speed:NSS_ETH_CLK_DIV0(0xc) - 0x100
[   88.399894] ipq8064-mdio 37000000.mdio eth1: nss_gmac_dev_set_speed: qsgmii_base(0xdf580000) + PCS_MODE_CTL(0x68): 0x80008082
[   88.420105] ipq8064-mdio 37000000.mdio eth1: nss_gmac_ipc_offload_init: enable Rx checksum
[   88.426443] ipq8064-mdio 37000000.mdio eth1: nss_gmac_config_flow_control:
[   88.434851] ipq8064-mdio 37000000.mdio eth1: nss_gmac_rx_pause_disable: disable Rx flow control
[   88.441724] ipq8064-mdio 37000000.mdio eth1: nss_gmac_tx_pause_disable: disable Tx flow control
[   88.453444] ipq8064-mdio 37000000.mdio eth1: nss_gmac_linkup: data plane open command successfully issued
[   88.521965] ipq8064-mdio 37000000.mdio eth0: nss_gmac_start_up: Force link up
[   88.528161] ipq8064-mdio 37000000.mdio eth0: nss_gmac_dev_set_speed:NSS_ETH_CLK_DIV0(0xc) - 0x100
[   88.534334] ipq8064-mdio 37000000.mdio eth0: nss_gmac_reset: eth0 resetting...
[   89.599678] ipq8064-mdio 37000000.mdio eth0: nss_gmac_change_mtu: Enabling Normal Frame MTU (Requested MTU [1500])
[   89.618260] ipq8064-mdio 37000000.mdio eth0: nss_gmac_ipc_offload_init: enable Rx checksum
[   89.624752] ipq8064-mdio 37000000.mdio eth0: nss_gmac_config_flow_control:
[   89.633060] ipq8064-mdio 37000000.mdio eth0: nss_gmac_rx_pause_disable: disable Rx flow control
[   89.639934] ipq8064-mdio 37000000.mdio eth0: nss_gmac_tx_pause_disable: disable Tx flow control
[   89.653146] ipq8064-mdio 37000000.mdio eth0: nss_gmac_linkup: data plane open command successfully issued
[   90.311510] wlan0: Destroyed NSS virtual interface
[   90.761324] phy0-sta0: Created a NSS virtual interface

On wired Ethernet performs as expected with barely any CPU use:

Routing WiFi also behaves as expected, with CPU usage below 50%:
Screenshot from 2023-06-16 21-36-56

It is not easy to compare with 22.03.x especially with only 1-2 tests but maybe marginally better. It feels more responsive than 22.03.x versions. Builds more cleanly (GRE compilation issue is gone). I am tempted to use it beyond simple testing but it's too much a hassle for a -rc. I'll be looking forward to the final version being released.

Good luck to anyone running this build... please share how it goes. Cheers!

6 Likes