Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Hello, I noticed an issue when I tested ipq807x-5.15 on my AX6.
I use wan to lan with PPPoE and fand that the speed can't reach to 930Mbps. However, only 25% of CPU were used. Only one single core is working when I running speedtest, even if the single core is nearly 100%.
The following speed is 392.57Mbps DL(WAN to LAN).

I also noticed @dchard's test. Although he got 930Mbits DL with PPPoE, it seems only core0 is working.

Blockquote
I am getting 930Mbits with PPPoE, single core is at 70-80%. Uplink my line is 320Mbits max, and I get that with barely any CPU load (3-5%) spread across all cores.
This is 930Mbits DL with PPPoE:
image

From what I've read in the thread:
Try with packet steering and SW offload enable.
If you want also try irqbalance, smp_affinity or both.
CPU governor is now schedutil and I'm using that.

The tasks that are single thread are bound to 1 core only.
I think I've read that HW offload is not enable.

Read here:

3 Likes

Hello, I need a help. I've the Redmi AX6 which has identical hardware to AX3600. And as there is no separate thread for AX6 I'm posting this here.
Basically I gained SSH and executed this "mtd write /tmp/xiaomimtd12.bin rootfs" and then ". /lib/upgrade/platform.sh" and "switch_layout boot; do_flash_failsafe_partition a6minbib "0:MIBIB"." Basically extended the partitions. Then normally installed the Almighty Edition firmware from github. After that I installed immortalwrt firmware which is around 27MB through web sysupgrade and then the router restared and showed yellow light. Now it boots and shows yellow light (system light) only but doesn't reboot automatically. And my pc gets an ip (169.254.253.181) but nothing else.
I know my router is bricked now and the possible solutions are ttl for extended partitions. But it's not a possible option for now as I don't own an usb-ttl device. Is there any other way to restore my router? I saw a post on the openwrt wiki about the ax3600. TFTP Debricking method but I'm not sure if the process will work for my case or is it same for my router! Please rescue me...

Thinks. That helps a lot. I will have a try.

The single core load is normal, but you should be getting 900+Mbits for sure in DL. I have packet steering enabled although that does not change the single core nature of PPPoE. Maybe you have some advanced firewalling or something like that? FQ-Codel or Cake?

I'm also confused. I did change something. I changed dnsmasq to dnsmasq-full and firewall4 to firewall. I also added block-mount, kmod-ipt-raw, kmod-nf-nathelper, kmod-nf-nathelper-extra.
Here are my packages. If this can help?

6in4	28	-	-	
aq-fw-download	1	-	-	
ath11k-firmware-ipq8074	2022-03-04-4abc7856-1	-	-	
autocore-arm	2-0	-	-	
base-files	1472-r19218-b2a888d4da	-	-	
block-mount	2021-11-16-77c02889-1	-	-	
busybox	1.35.0-1	-	-	
ca-bundle	20211016-1	-	-	
cgi-io	2021-09-08-98cef9dd-20	-	-	
coreutils	9.0-2	-	-	
coreutils-base64	9.0-2	-	-	
curl	7.82.0-2	-	-	
dns2socks	2.1-2	-	-	
dnsmasq-full	2.86-11	-	-	
dropbear	2020.81-2	-	-	
firewall	2022-01-10-0f16ea5f-2	-	-	
fstools	2021-11-16-77c02889-1	-	-	
fwtool	2019-11-12-8f7fe925-1	-	-	
getrandom	2021-08-03-205defb5-2	-	-	
hostapd-common	2022-01-16-cff80b4f-6	-	-	
htop	3.1.2-1	-	-	
ip-full	5.15.0-2	-	-	
ip6tables-legacy	1.8.7-6	-	-	
ip6tables-mod-nat	1.8.7-6	-	-	
ipq-wifi-redmi_ax6	1	-	-	
ipset	7.15-2	-	-	
iptables-mod-tproxy	1.8.7-6	-	-	
ipv6helper	1.0-4	-	-	
iw	5.16-1	-	-	
iwinfo	2022-03-01-90bfbb9a-1	-	-	
jshn	2021-11-20-cce5e351-1	-	-	
jsonfilter	2018-02-04-c7e938d6-1	-	-	
kernel	5.15.27-1-140e4f71…	-	-	
kmod-asn1-decoder	5.15.27-1	-	-	
kmod-ath	5.15.27+5.15.8-1-2	-	-	
kmod-ath11k	5.15.27+5.15.8-1-2	-	-	
kmod-ath11k-ahb	5.15.27+5.15.8-1-2	-	-	
kmod-cfg80211	5.15.27+5.15.8-1-2	-	-	
kmod-crypto-acompress	5.15.27-1	-	-	
kmod-crypto-aead	5.15.27-1	-	-	
kmod-crypto-arc4	5.15.27-1	-	-	
kmod-crypto-ccm	5.15.27-1	-	-	
kmod-crypto-cmac	5.15.27-1	-	-	
kmod-crypto-crc32c	5.15.27-1	-	-	
kmod-crypto-ctr	5.15.27-1	-	-	
kmod-crypto-ecb	5.15.27-1	-	-	
kmod-crypto-gcm	5.15.27-1	-	-	
kmod-crypto-gf128	5.15.27-1	-	-	
kmod-crypto-ghash	5.15.27-1	-	-	
kmod-crypto-hash	5.15.27-1	-	-	
kmod-crypto-hmac	5.15.27-1	-	-	
kmod-crypto-kpp	5.15.27-1	-	-	
kmod-crypto-lib-blake2s	5.15.27-1	-	-	
kmod-crypto-lib-blake2s-generic	5.15.27-1	-	-	
kmod-crypto-lib-chacha20	5.15.27-1	-	-	
kmod-crypto-lib-chacha20poly1305	5.15.27-1	-	-	
kmod-crypto-lib-curve25519	5.15.27-1	-	-	
kmod-crypto-lib-poly1305	5.15.27-1	-	-	
kmod-crypto-manager	5.15.27-1	-	-	
kmod-crypto-michael-mic	5.15.27-1	-	-	
kmod-crypto-null	5.15.27-1	-	-	
kmod-crypto-rng	5.15.27-1	-	-	
kmod-crypto-seqiv	5.15.27-1	-	-	
kmod-crypto-sha1	5.15.27-1	-	-	
kmod-crypto-sha256	5.15.27-1	-	-	
kmod-gpio-button-hotplug	5.15.27-3	-	-	
kmod-hwmon-core	5.15.27-1	-	-	
kmod-ip6tables	5.15.27-1	-	-	
kmod-ipt-conntrack	5.15.27-1	-	-	
kmod-ipt-core	5.15.27-1	-	-	
kmod-ipt-ipset	5.15.27-1	-	-	
kmod-ipt-nat	5.15.27-1	-	-	
kmod-ipt-nat6	5.15.27-1	-	-	
kmod-ipt-raw	5.15.27-1	-	-	
kmod-ipt-tproxy	5.15.27-1	-	-	
kmod-iptunnel	5.15.27-1	-	-	
kmod-iptunnel4	5.15.27-1	-	-	
kmod-leds-gpio	5.15.27-1	-	-	
kmod-lib-crc-ccitt	5.15.27-1	-	-	
kmod-lib-crc32c	5.15.27-1	-	-	
kmod-lib-lzo	5.15.27-1	-	-	
kmod-lib-textsearch	5.15.27-1	-	-	
kmod-mac80211	5.15.27+5.15.8-1-2	-	-	
kmod-mppe	5.15.27-1	-	-	
kmod-nf-conntrack	5.15.27-1	-	-	
kmod-nf-conntrack-netlink	5.15.27-1	-	-	
kmod-nf-conntrack6	5.15.27-1	-	-	
kmod-nf-flow	5.15.27-1	-	-	
kmod-nf-ipt	5.15.27-1	-	-	
kmod-nf-ipt6	5.15.27-1	-	-	
kmod-nf-nat	5.15.27-1	-	-	
kmod-nf-nat6	5.15.27-1	-	-	
kmod-nf-nathelper	5.15.27-1	-	-	
kmod-nf-nathelper-extra	5.15.27-1	-	-	
kmod-nf-reject	5.15.27-1	-	-	
kmod-nf-reject6	5.15.27-1	-	-	
kmod-nf-tproxy	5.15.27-1	-	-	
kmod-nfnetlink	5.15.27-1	-	-	
kmod-nft-core	5.15.27-1	-	-	
kmod-nft-nat	5.15.27-1
kmod-nft-offload	5.15.27-1	-	-	
kmod-nls-base	5.15.27-1	-	-	
kmod-ppp	5.15.27-1	-	-	
kmod-pppoe	5.15.27-1	-	-	
kmod-pppox	5.15.27-1	-	-	
kmod-qca-nss-dp	5.15.27+2021-03-26-e0c89348-6	-	-	
kmod-qca-ssdk-nohnat	5.15.27+2021-04-28-c9bc3bc3-8	-	-	
kmod-qcom-qmi-helpers	5.15.27-1	-	-	
kmod-qrtr	5.15.27-1	-	-	
kmod-qrtr-smd	5.15.27-1	-	-	
kmod-sit	5.15.27-1	-	-	
kmod-slhc	5.15.27-1	-	-	
kmod-thermal	5.15.27-1	-	-	
kmod-tun	5.15.27-1	-	-	
kmod-udptunnel4	5.15.27-1	-	-	
kmod-udptunnel6	5.15.27-1	-	-	
kmod-usb-core	5.15.27-1	-	-	
kmod-usb-dwc3	5.15.27-1	-	-	
kmod-usb-dwc3-qcom	5.15.27-1	-	-	
kmod-usb-xhci-hcd	5.15.27-1	-	-	
kmod-usb3	5.15.27-1	-	-	
kmod-wireguard	5.15.27-1	-	-	
libatomic1	11.2.0-3	-	-	
libblobmsg-json20211120	2021-11-20-cce5e351-1	-	-	
libbpf20220308	2022-03-08-04c465fd-1	-	-	
libc	1.2.2-3	-	-	
libcap	2.63-1	-	-	
libcap-ng	0.8.2-1	-	-	
libcurl4	7.82.0-2	-	-	
libelf1	0.186-1	-	-	
libev	4.33-1	-	-	
libgcc1	11.2.0-3	-	-	
libgmp10	6.2.1-1	-	-	
libgnutls	3.7.1-2	-	-	
libip4tc2	1.8.7-6	-	-	
libip6tc2	1.8.7-6	-	-	
libipset13	7.15-2	-	-	
libiptext0	1.8.7-6	-	-	
libiptext6-0	1.8.7-6	-	-	
libiwinfo-data	2022-03-01-90bfbb9a-1	-	-	
libiwinfo-lua	2022-03-01-90bfbb9a-1	-	-	
libiwinfo20210430	2022-03-01-90bfbb9a-1	-	-	
libjson-c5	0.15-2	-	-	
libjson-script20211120	2021-11-20-cce5e351-1	-	-	
liblua5.1.5	5.1.5-10	-	-	
liblucihttp-lua	2022-02-13-cc851838-1	-	-	
liblucihttp0	2022-02-13-cc851838-1	-	-	
libminiupnpc	2.2.3-1	-	-	
libmnl0	1.0.4-2	-	-	
libnatpmp1	20150609-3	-	-	
libncurses6	6.2-3	-	-	
libnetfilter-conntrack3	1.0.9-2	-	-	
libnettle8	3.7.3-2	-	-	
libnfnetlink0	1.0.1-4	-	-	
libnftnl11	1.2.1-1	-	-	
libnghttp2-14	1.44.0-1	-	-	
libnl-tiny1	2021-11-21-8e0555fb-1	-	-	
libopenssl1.1	1.1.1n-1	-	-	
libpcre	8.45-2	-	-	
libpthread	1.2.2-3	-	-	
librt	1.2.2-3	-	-	
libsodium	1.0.18-4	-	-	
libstdcpp6	11.2.0-3	-	-	
libtasn1	4.16.0-2	-	-	
libubox20211120	2021-11-20-cce5e351-1	-	-	
libubus-lua	2022-02-28-584f56a2-2	-	-	
libubus20220228	2022-02-28-584f56a2-2	-	-	
libuci-lua	2021-10-22-f84f49f0-6	-	-	
libuci20130104	2021-10-22-f84f49f0-6	-	-	
libuclient20201210	2021-05-14-6a6011df-1	-	-	
libudns	0.4-1	-	-	
libustream-wolfssl20201210	2022-01-16-868fd881-1	-	-	
libuuid1	2.37.3-3	-	-	
libuv1	1.41.1-1	-	-	
libwebsockets-full	4.2.1-2	-	-	
libwolfssl5.1.1.31258522	5.1.1-stable-2	-	-	
libxml2	2.9.13-1	-	-	
libxtables12	1.8.7-6	-	-	
logd	2021-08-03-205defb5-2	-	-	
lua	5.1.5-10	-	-	
luci	git-20.074.84698-ead5e81	-	-	
luci-app-arpbind	1	-	-	
luci-app-autoreboot	1.0	-	-	
luci-app-firewall	git-22.046.84457-2178444	-	-	
luci-app-opkg	git-22.043.53495-1e6f630	-	-	
luci-app-ssr-plus	185	-	-	
luci-app-ttyd	git-21.281.64389-70f3ae5	-	-	
luci-app-upnp	git-20.332.74200-03c77da	-	-	
luci-app-wireguard	git-21.322.66896-8ae208d	-	-	
luci-app-zerotier	1.0	-	-	
luci-base	git-22.083.68981-15bbe69	-	-	
luci-compat	git-22.069.45071-03bb0e2
luci-lib-base	git-20.232.39649-1f6dc29	-	-	
luci-lib-ip	git-20.250.76529-62505bd	-	-	
luci-lib-ipkg	git-18.318.71164-4bbe325	-	-	
luci-lib-jsonc	git-19.317.29469-8da8f38	-	-	
luci-lib-nixio	git-20.234.06894-c4a4e43	-	-	
luci-mod-admin-full	git-19.253.48496-3f93650	-	-	
luci-mod-network	git-22.049.73249-8890111	-	-	
luci-mod-status	git-22.041.71554-e6f21f8	-	-	
luci-mod-system	git-22.019.40203-e0ff3ff	-	-	
luci-proto-ipv6	git-21.148.48881-79947af	-	-	
luci-proto-openconnect	git-21.074.38504-171ef77	-	-	
luci-proto-ppp	git-21.158.38888-88b9d84	-	-	
luci-proto-wireguard	git-21.336.35676-ff4f529	-	-	
luci-theme-bootstrap	git-22.084.38997-8e09f18	-	-	
microsocks	1.0.3-0	-	-	
miniupnpd-nftables	2.2.3-4	-	-	
mtd	26	-	-	
netifd	2022-02-20-136006b8-1	-	-	
nss-firmware-ipq8074	2021-09-13-b06171cb-1	-	-	
odhcp6c	2021-12-05-39b584bc-18	-	-	
odhcpd-ipv6only	2021-08-11-01b4e604-1	-	-	
openconnect	8.20-1	-	-	
openwrt-keyring	2021-02-20-49283916-2	-	-	
opkg	2022-01-09-2edcfad1-1	-	-	-		
ppp	2.4.9.git-2021-01-04-3	-	-	
ppp-mod-pppoe	2.4.9.git-2021-01-04-3	-	-	
procd	2022-02-19-ad652490-3	-	-	
procd-seccomp	2022-02-19-ad652490-3	-	-	
procd-ujail	2022-02-19-ad652490-3	-	-	
resolveip	2	-	-	
rpcd	2022-02-07-909f2a04-1	-	-	
rpcd-mod-file	2022-02-07-909f2a04-1	-	-	
rpcd-mod-iwinfo	2022-02-07-909f2a04-1	-	-	
rpcd-mod-luci	20210614	-	-	
rpcd-mod-rrdns	20170710	-	-	
swconfig	12	-	-	
tcping	0.3-1	-	-	
terminfo	6.2-3	-	-	
ttyd	1.6.3-3	-	-	
ubi-utils	2.1.4-1	-	-	
uboot-envtools	2022.01-21	-	-	
ubox	2021-08-03-205defb5-2	-	-	
ubus	2022-02-28-584f56a2-2	-	-	
ubusd	2022-02-28-584f56a2-2	-	-	
uci	2021-10-22-f84f49f0-6	-	-	
uclient-fetch	2021-05-14-6a6011df-1	-	-	
uhttpd	2022-02-07-2f8b1360-1	-	-	
uhttpd-mod-ubus	2022-02-07-2f8b1360-1	-	-	
urandom-seed	3	-	-	
urngd	2020-01-21-c7f7b6b6-1	-	-	
usign	2020-05-23-f1f65026-1	-	-	
vpnc-scripts	20151220-2	-	-	
wget-ssl	1.21.2-1	-	-	
wireguard-tools	1.0.20210424-3	-	-	
wireless-regdb	2022.02.18-1	-	-	
wpad-wolfssl	2022-01-16-cff80b4f-6	-	-	
xtables-legacy	1.8.7-6	-	-	
zerotier	1.8.6-1	-	-	
zlib	1.2.11-3

Did you get any response or any hints?

Hi there!

I'm finally here (it took almost week to read all the post since I was here in Nov'21).

So, this post looks like there is a sparkle in the total darkness. // but the darkness is full of monsters

Btw, talking on the idea of making "big" overlapping rootfs mtd partition "on top of" those two existing:
If we'll just use it as rootfs for owrt, and won't delete the "underlying" ones, in my POV it should keep the compatibility with tftp-recovery, and will give the possibility to use "big" rootfs.

Although, there is a culprit:

last time I had experiments with building owrt images in november-december, image was made in such fashion, that "overlay" partition only takes "what's left on the rootfs partition between last block of the RO-image and the end of partition (and there should be not least then 1.5MiB, otherwise it will fail back to "overlay in RAM" and won't even save (between reboots) any settings made in luci/uci/manually in configs). So, for example, I have the following:

root@router:~#  df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                21.3M     21.3M         0 100% /rom
tmpfs                   203.4M    340.0K    203.0M   0% /tmp
/dev/ubi0_2               1.6M   1008.0K    476.0K  68% /overlay
overlayfs:/overlay        1.6M   1008.0K    476.0K  68% /

So, my point is in that if we do want to utilize the other half of the nand (and I personally do), we'd need to either:

  • rewrite all that... uhm... stuff to correspond our cases (and as far as I talked with author of that utility last year, he's not really fan of the idea, and thinks that we should take the second way;
  • play with DTS to make overlay partition on the "unused" part of the NAND.
    But IIRC, that wouldn't be enough on it's own, since image builder still makes "overlay" partition on remainings of rootfs one.
    So, we'll still need to rewrite some stuff :person_shrugging:

// Unfortunatelly, I'm both too busy on my work and feel like my patch-fu is not enough for such quest :face_with_diagonal_mouth:

I did not ask, newer got around to sending it.
Cant really tell you when I will get around to it.

hi, I'm in the same situation, tried all your suggestions but it still runs single core.

so 5.15 is out now ! @Ansuel on the news :slight_smile: ipq807x next

2 Likes

what is actually the issue (apart from ax9000 others aspects ...) with the ax9000 vs ax36000 (off topic here sorry perhaps) ? is this the pci support ...

hard f#! work ansuel ... i feel openwrt needs to be much more agile with kernel support bearing in mind we are now with 5.17 kernel... i know it is hard with so many devices out there

I have explained it couple of times already, the issue is that currently ath11k is broken if you try using it on the AHB and PCI radios at the same time

Can anyone please help me with this?

I don't use PPPoE, I use DHCP in WAN, plus I'm using dumb APs, so no WAN traffic or firewall for me now.
For wifi use, I went from one core load only, to load being distributed in all cores.

Read what dchard posted:

1 Like

ok .. so it would be the issue something like this
https://yhbt.net/lore/linux-wireless/1642337235-8618-8-git-send-email-quic_mpubbise@quicinc.com/#

eg the hybrid ahb vs pure pci?

No, thats completely unrelated.
PCI QCN9024 card works as long as AHB module is not loaded, its some kind of a QMI issue it seems

Hi guys. I'm using OpenWrt on my AX3600 and I'm loving it. Thanks for the great work.
Just a question. Is is possible to exchange tmp storage for definitive storage?

(Inverting the actual storage)

1 Like