Also, when using master there is now qca-nss-mirred at the top of the start up list. It is disabled and when I try to enable or start it, I get this error.
Failed to execute "/etc/init.d/qca-nss-mirred start" action: Command failed
This happens regardless of which start up commands are used. Is this normal?
Hi, just a quick question. How is it with the AX6 issue with the newer firmware? Has it been solved? Is it usable as a main router now, or still just an AP?
# Use "make defconfig" to expand this to a full .config
CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_ipq806x_generic=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_ipq806x_generic_DEVICE_netgear_r7800=y
CONFIG_TARGET_DEVICE_PACKAGES_ipq806x_generic_DEVICE_netgear_r7800="-kmod-ath10k-ct -ath10k-firmware-qca9984-ct kmod-ath10k ath10k-firmware-qca9984"
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
# exfat is patented
CONFIG_BUILD_PATENTED=y
CONFIG_TARGET_ARCH_PACKAGES="arm_cortex-a15_neon-vfpv4"
CONFIG_CPU_TYPE="cortex-a15+neon-vfpv4"
CONFIG_LINUX_5_15=y
CONFIG_HAS_FPU=y
CONFIG_USES_DEVICETREE=y
CONFIG_USES_INITRAMFS=y
CONFIG_USES_SQUASHFS=y
CONFIG_NAND_SUPPORT=y
CONFIG_arm=y
CONFIG_arm_v7=y
CONFIG_ARCH="arm"
CONFIG_TARGET_ROOTFS_INITRAMFS=y
CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE=y
CONFIG_TARGET_ROOTFS_SQUASHFS=y
CONFIG_TARGET_SQUASHFS_BLOCK_SIZE=512
CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP=y
CONFIG_TARGET_UBIFS_JOURNAL_SIZE=""
# Kernel
CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE=y
# 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_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-pptp=y
CONFIG_PACKAGE_kmod-qca-nss-crypto=y
CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y
CONFIG_PACKAGE_kmod-qca-nss-drv-netlink=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
# CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2 is not set
# CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6 is not set
# Longer waiting for failsafe button push
CONFIG_IMAGEOPT=y
CONFIG_PREINITOPT=y
CONFIG_TARGET_PREINIT_TIMEOUT=5
# Busybox tweaks
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_WINCH=y
# Add-on programs
CONFIG_DROPBEAR_ECC=y
CONFIG_PACKAGE_aria2=y
CONFIG_PACKAGE_dnsproxy=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_kmod-cryptodev=y
CONFIG_PACKAGE_libopenssl-devcrypto=y
CONFIG_PACKAGE_kmod-dnsresolver=y
CONFIG_PACKAGE_kmod-ramoops=y
CONFIG_PACKAGE_kmod-pstore=y
CONFIG_PACKAGE_kmod-reed-solomon=y
# CONFIG_PACKAGE_kmod-pppol2tp is not set
CONFIG_PACKAGE_ds-lite=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_wget-ssl=y
CONFIG_PACKAGE_kmod-usb-printer=y
# USB device mount & file systems support
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_cryptsetup=y
CONFIG_PACKAGE_e2fsprogs=y
CONFIG_PACKAGE_f2fs-tools=y
CONFIG_PACKAGE_kmod-crypto-ecb=y
CONFIG_PACKAGE_kmod-crypto-xts=y
CONFIG_PACKAGE_kmod-crypto-iv=y
CONFIG_PACKAGE_kmod-crypto-misc=y
CONFIG_PACKAGE_kmod-crypto-user=y
CONFIG_PACKAGE_kmod-fs-exfat=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-fs-f2fs=y
CONFIG_PACKAGE_kmod-fs-hfs=y
CONFIG_PACKAGE_kmod-fs-hfsplus=y
CONFIG_PACKAGE_kmod-fs-msdos=y
CONFIG_PACKAGE_kmod-fs-nfs=y
CONFIG_PACKAGE_kmod-fs-nfs-common=y
CONFIG_PACKAGE_kmod-fs-nfs-v3=y
CONFIG_PACKAGE_kmod-fs-nfs-v4=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp1250=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-cp850=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-iso8859-15=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_kmod-usb-storage-uas=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_ntfs-3g=y
CONFIG_PACKAGE_nfs-utils=y
# IPv6 support
CONFIG_PACKAGE_6in4=y
CONFIG_PACKAGE_6to4=y
CONFIG_PACKAGE_6rd=y
# WLAN/WPS support
CONFIG_PACKAGE_hostapd-utils=y
CONFIG_WPA_MSG_MIN_PRIORITY=4
CONFIG_PACKAGE_wireless-regdb=y
CONFIG_PACKAGE_wpad-openssl=y
# CONFIG_PACKAGE_wpad-basic-wolfssl is not set
# CONFIG_PACKAGE_libustream-wolfssl is not set
# CONFIG_PACKAGE_libmbedtls is not set
# CONFIG_PACKAGE_libustream-mbedtls is not set
# CONFIG_PACKAGE_wpad-basic-mbedtls is not set
# SSL certificates
CONFIG_PACKAGE_ca-certificates=y
# Luci (SSL from OpenSSL)
CONFIG_LUA_ECO_DEFAULT_OPENSSL=y
CONFIG_LUA_ECO_OPENSSL=y
CONFIG_PACKAGE_luci-ssl-openssl=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-app-commands=y
CONFIG_PACKAGE_luci-app-adblock=y
CONFIG_PACKAGE_luci-app-https-dns-proxy=y
CONFIG_PACKAGE_luci-theme-openwrt-2020=y
CONFIG_PACKAGE_luci-app-sqm=y
CONFIG_PACKAGE_luci-proto-wireguard=y
CONFIG_PACKAGE_kmod-wireguard=y
CONFIG_PACKAGE_wireguard-tools=y
CONFIG_PACKAGE_openssl-util=y
# CONFIG_LUCI_JSMIN is not set
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_OPTIMIZE_SPEED=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_NO_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
# Luci statistics
CONFIG_PACKAGE_luci-app-statistics=y
CONFIG_PACKAGE_collectd-mod-conntrack=y
CONFIG_PACKAGE_collectd-mod-cpufreq=y
CONFIG_PACKAGE_collectd-mod-dhcpleases=y
CONFIG_PACKAGE_collectd-mod-entropy=y
CONFIG_PACKAGE_collectd-mod-exec=y
CONFIG_PACKAGE_collectd-mod-thermal=y
CONFIG_PACKAGE_collectd-mod-wireless=y
CONFIG_PACKAGE_kmod-ath10k-ct=m
CONFIG_PACKAGE_kmod-ath10k=m
CONFIG_PACKAGE_ath10k-firmware-qca988x-ct=m
CONFIG_PACKAGE_ath10k-firmware-qca99x0-ct=m
CONFIG_PACKAGE_ath10k-firmware-qca9984-ct=m
CONFIG_PACKAGE_ath10k-firmware-qca988x=m
CONFIG_PACKAGE_ath10k-firmware-qca99x0=m
CONFIG_PACKAGE_ath10k-firmware-qca9984=m
rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
/sbin/sysctl -w net.core.rmem_max=2500000
# move nss cores to cpu1 and cpu2
i=1
awk '$7=="nss"{gsub(":","");print $1,$7}' /proc/interrupts| while read num irq; do
echo $i > /proc/irq/$num/smp_affinity
i=$((i+1))
done
# move rpm, and usb to cpu2
awk '$7~/qcom_rpm_ack|xhci-hcd/{gsub(":","");print $1,$7}' /proc/interrupts| while read num irq; do
echo 2 > /proc/irq/$num/smp_affinity
done
#
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy1/scaling_governor
# NSS
echo 800000000 > /proc/sys/dev/nss/clock/current_freq
# DISABLE IPV6
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
echo 0 > /proc/sys/net/ipv6/conf/default/forwarding
# hard limit on the number of packets in the fq_codel queue
# default is 8192, this seems a bit excessive
echo fq_limit 1000 >/sys/kernel/debug/ieee80211/phy0/aqm
# 802.11 CoDeL
# 5 seems a bit to agressive sometimes, more testing needed
iw phy0 set codel target 7
iw phy0 set codel interval 50
modprobe act_nssmirred
/etc/init.d/sqm restart
exit 0
I'm really puzzled by the inability to compile my own build.
I've used your older post and successfully compiled a master build without getting an error but to my surprise when I flashed it to my R7800 I've just got non working wlan. The wlan radios simply don't start.
Later I've tried with slightly modified diffconfig but I got qca-nss-crypto compile error as in my all other previous attempts.
This time I tried to compile using your last post info but I just get this unfortunate baffling error again and again.
wow those are some impressive latencies. Would be interesting to see some of that merged in to master. Any downside you are seeing or any weird behavior in your wifi environment?
I have seen this no wifi radios when trying to pare the build down to 1 target just for the R7800 with non-ct firmware ... I've learned to ignore the other targets built and just grab the one i want. I start with diffconfig-ath10k and make diffconfig.
I've no idea if no-radios is related to non-ct but that's what im doing.
I can't comment on your build errors as i build the 23.02 branch, as that seems to be the most current and frequently rebased but it does build fine.
I haven't figured git out enough to update my copy of @ACwifidude's tree after he rebases so i generally end up pulling the whole branch and starting over.
If you have a clone of my repo you can rebase like I do. Read the # comments (those are to help you out) and run the code. I like to place my commits on top of OpenWrt's commits so that it is easy to replicate my build, easier to see the commits all back to back, and so that it is easier to rebase.
(this is how to delete the rebase commit and to set your branch up to be able to rebase from OpenWrt directly)
#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
This is what I do every time to rebase:
#Master Rebase:
git fetch upstream && git rebase upstream/master
I store my default diffconfig in a different folder from my build environment. So I run a command like this:
cp /home/HTPC/OpenWRT/diffconfig diffconfig
When your diffconfig is to your liking - this is how to prep and build (I have a 4 CPU system, change the last line to the number of CPUs in your system, ex 8 CPU system would be "make -j9"):
./scripts/feeds update -a && ./scripts/feeds install -a && cp diffconfig .config && make defconfig && ./scripts/getver.sh
make -j5
Best of luck!
I have more details in post #2 up above if you want to see what my configuration and/or build process looks like:
@Mpilon@nihilt Thanks for your suggestions. I was finally able to compile successfully and flashed my own build. It's working OK now. I first decided to use the @nihilt diffconfig and after the compile was successful I've used my diffconfig (it is negligibly different) to compile my build.
thanks for this - I've worked multiple times from post #2 - but there are gaps in my knowledge ... mainly around stashing my code changes;
... I can 'stash' but have no idea how to restore, what the options mean ... unfortunately w/ git, I'm at the stage of "if the steps aren't explicit and complete, the whole thing is toast!"
you might want to diff the actual .config produced by your negligibly changed diffconfig ! I tried to isolate one target and lost wifi ...
... make menuconfig was attempted at one point to do the same. I think there's a hole in the build dependencies which is auto-magically filled by building all targets, opened when specifying 1.
Stashing sometimes makes a mess. Try with the more straight forward adding and committing things. As you get more cozy with git you'll find there are a number of ways to do things. I find adding and deleting is much easier when you have an example to go off of. It looks something like this:
Start with a clean working tree (type in the command "git status"):
[HTPC@localhost openwrt]$ git status
On branch openwrt-22.03-nss-qsdk10.0
Your branch is ahead of 'upstream/openwrt-22.03' by 32 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
Any time you edit a file, delete a file, or add a file - git will track those changes. As an example I copied a new diffconfig file in to the folder and when I type the command "git status" I get this message:
[HTPC@localhost openwrt]$ git status
On branch openwrt-22.03-nss-qsdk10.0
Your branch is ahead of 'upstream/openwrt-22.03' by 32 commits.
(use "git push" to publish your local commits)
Untracked files:
(use "git add <file>..." to include in what will be committed)
diffconfig
nothing added to commit but untracked files present (use "git add" to track)
I like everything I've added so I'm going to add it. For git to track that file and make the working tree clean it looks like this:
To further the example. "Whoops I don't like that commit". If you don't like the commit you can always delete your work and start over (caution these commands completely removes the file you just added! Make sure you back up any work in progress in another folder outside your build folder!) In this example I deleted the rebase commit too because "whoops I forgot to delete it" (the number you put after the ~ reflects the number of commits you want to delete).
[HTPC@localhost openwrt]$ git reset --hard HEAD~2
HEAD is now at feb3d2c83a vlan panic fix.
[HTPC@localhost openwrt]$ git log --pretty=oneline -6
feb3d2c83a7864836df12215c964ba5046ad87bd (HEAD -> openwrt-22.03-nss-qsdk10.0) vlan panic fix.
230d12f9eca5cf06b2f0bf826e533be8abb81a46 l2tpv2 ops fix.
04b78ceca562bdfd2db6fa2dd473510d7b000474 nlbwmon remove
caaed275d30cab7f98ea9a76e489ab34bca1f046 add NEC Aterm WG2600HP support
4d03f027ca1724d371f884187ad070b5499b6090 add L2TPV2 offloading
0b356ac0f2c1d6c6321f141b44870081e4279988 add DS-Lite offloading
You have a clean tree and you can add or delete and repeat the above process to your heart's delight. Hope that helps!
No downsides whatsoever. Those tests were done with my Clevo laptop with a heavily tweaked modded bios (Prema mod), ultra low latency environment and AX201 proper settings, incl. MSI , without any other devices connected. Still, I've never seen such low wifi latency before.
This test is with all my devices connected/standby, pretty similar results.
Build r22256+28-14334c222e
@notthesun how will you recover if for some reason the radios don't start like sppmaster above?
Nice results. I haven't experienced any downsides either. I'd expect the throughput taking a bigger dive with multiple stations maxing out the connection and perhaps issues with very slow stations but none of that is an issue in my household. Also no issues with CPU load or stability.
That 460Mb/s.. are you hitting the SQM or the WiFi limit? If it's SQM you could try lowering the codel target and perhaps shave off a bit more, I'm currently running 2.5ms (and an interval of 50 ms) without issues.