Adding OpenWrt support for Xiaomi AX3600 (Part 1)

the patch is the 207... ignoring all the limitation about max client and all the main part seems to be setting the qmi target_mem_mode to 1 instead of 0
that seems to be the quickest way to test with ath11k crash with reduced q6

1 Like

Yeah, looks like that is the one.
No idea how to implement that per device properly.

the mode table is interesting and useful and i agree can't see a way to add support for this in a clean way than using a hack and make it model specific...

Yeah, its always gonna be a hack as that is never going to be upstreamed.
I would rather use 40MB of RAM more instead of limiting the number of clients and performance for it.
And not having to have the patch and somehow implement it is a bonus.

3 Likes

So...I've been following this forum and I'm pretty damn technical, but I'm loosing track of where this is at. Only really have a quick question...these are on sale right now I think. Is it worth buying one? I'm really only planning on running as an AP. My unifi nanoHD is NOT cutting it. Can it run as an AP with where development is at today? Or the QMDK version? Sorry for asking here, but I'm just curious at a high level how much is left to do for actual OpenWRT?

1 Like

Yes, Netgear RBK850 (also HK01 based). They have an i2c-LED-Controller connected to it.

Huh, they forget to push their lua through their custom luac again?

Additionally, last time I looked they sanitised most of the os.execute params through a common function.

Some of the more indirect calls were missed though.

1 Like

I successfully run mine as an AP with proper OpenWrt (off @robimarko's AX3600-5.10-restart branch) since as early as just before Pentecost. But, of course, you still need to do your own builds and stuff...

However, for it to get merged might still take quite a while longer. E.g. @slh just talked about a potential X-mas timeframe.

Well, I will need to find a call next week after AX9000 arrives to enable UART

1 Like

It is completely off topic but I have the router with Chinese firmware 1.1.15 and my problem is that the speed for WiFi 5Ghz is correct (530-550 Mbps) but for ethernet it is much lower (230-250 Mbps). Any ideas?

Is @robimarko 's https://github.com/robimarko/openwrt/commits/AX3600-5.10-restart still the branch to try?
Wifi performance on the upload (client to AP) is quite bad with quite high retry count, download is OK though with Intel AC-9560:

$ iperf3  -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.169 port 40346 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.70 MBytes  31.1 Mbits/sec  261   14.1 KBytes       
[  5]   1.00-2.00   sec  3.75 MBytes  31.5 Mbits/sec  246   22.6 KBytes       
[  5]   2.00-3.00   sec  3.54 MBytes  29.7 Mbits/sec  271   14.1 KBytes 

and download

iperf3 -R -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
Reverse mode, remote host 192.168.1.1 is sending
[  5] local 192.168.1.169 port 40342 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  74.3 MBytes   623 Mbits/sec                  
[  5]   1.00-2.00   sec  76.8 MBytes   644 Mbits/sec                  
[  5]   2.00-3.00   sec  78.1 MBytes   655 Mbits/sec

On a related note, is there any better way to flash a newly built image other than serial + tftpboot? Or will it have to do for the moment?

Only the initial install. Afterwards, just do regular sysupgrades just like on any other OpenWrt device.

sysupgrade doesn't work for me, that's why I was asking. Everytime I do it I end up stuck in next boot with Waiting for root... kernel message

You need to use ubiformat when flashing from the stock FW, and then you can use sysupgrade like always.

I guess that you are using the images without offloading, for offloading you need to include the NSS firmware, NSS-DRV and NSS-ECM.
If you need PPoE offloading, there is a package for that as well.
Simply select them in menuconfig.

1 Like

Right got it, I tried to enable NSS-DRV but it fails to build:

/srv/backup/work/openwrt-ax3600/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/qca-nss-drv-2021-04-26-1cf4bf81/nss_core.c: In function 'nss_core_set_skb_classify':
/srv/backup/work/openwrt-ax3600/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/qca-nss-drv-2021-04-26-1cf4bf81/nss_core.c:1078:3: error: implicit declaration of function 'skb_set_tc_classify_offload'; did you mean 'skb_skip_tc_classify'? [-Werror=implicit-function-declaration]
   skb_set_tc_classify_offload(nbuf);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   skb_skip_tc_classify
cc1: all warnings being treated as errors
make[5]: *** [scripts/Makefile.build:279: /srv/backup/work/openwrt-ax3600/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/qca-nss-drv-2021-04-26-1cf4bf81/nss_core.o] Error 1

I see you had the same problem before in the thread, but No idea what was the solution..

Hm, no idea but I tried rebuilding from scratch today and it builds fine with all of the offloading stuff.

I switched your nss-packages feed to the NSS-11.3 branch and now it compiles.

That should not be needed at all.
11.3 branch should not be used by default
Were you previously building before the switch to the external package feed?

Because if you did that it requires forcing the packages to be replaced instead of using the local ones

I checked-out https://github.com/robimarko/openwrt.git branch AX3600-5.10-restart clean just to be sure, did it twice and got the above error. Normally the nss-packages feed is using the master branch.