Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Hi there does the mesh wireless system work fine? I have a mikrotik router and want 3 ap with ax capabilities and cheap this router seams best option i have 3 vlan so I need open wert since xiaomi does not allow vlan! How s the performance in wireless mesh with openwrt?

For some packages you can use opkg installer inside the menu of openwrt, but read here for the exceptions: https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/6928

If you need further information about configuring openwrt as a dumb AP you can find the docs here: https://openwrt.org/docs/guide-user/network/wifi/dumbap

Anything that doesnt require a kernel module can be installed using OPKG from the standard feeds, but if a kmod is required then it has to be manually built.

1 Like

Did you change the default value of CPU irq ?

I didn't change irqs.
Only had Packet Steering enable.
When test aren't running the cpu is idle.
When laptop sends to router you can try more streams (-P 3 or -P 4).
When router sends to laptop, you need to run 2 servers.
Laptop was 1,5 meters away from the router, I was worried signal could be too strong, but it's the way the desk is placed here, I didn't tried other distances.

Hi all,

Just to let you know that after lurking for a few month on this thread, I followed the installation process on my ax3600. And even if I'm a bit rusty (from the wrt54g glory days), it was quite straightforward with the prebuilt image 2022-04-22 (wiki is still good).
Dumb wireless AP configuration for now (fr regulation), with the opportunity to re-learn the basics of openwrt on my homelab now (and experiment with a custom build once I feel ready). Seemingly stable for more than 48h :smiley:

Thanks a lot to all of the active devs an testers, even if some readers seems ungrateful (I bet there's quite a few lurkers there that can and are learning a lot from you, as I did)

Will keep reading you here robimarko, ansuel , dchard and others :slight_smile:

9 Likes

Hi guys, tell me, I uploaded the firmware robimarko to AX3600, everything works fine, but when there is interference from other routers (bad packets are coming on the radio), the ath11k driver crashes, here is the full log:

 28.878602] br-lan: port 4(wlan2) entered blocking state
[ 28.883828] br-lan: port 4(wlan2) entered forwarding state
[ 32.488329] pmd9655_ldo11: disabling
[ 261.933173] qcom-q6v5-wcss-pil cd00000.q6v5_wcss: fatal error received:
[ 261.933173] QC Image Version: QC_IMAGE_VERSION_STRING=WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
[ 261.933173] Image Variant : IMAGE_VARIANT_STRING=8074.wlanfw.eval_v2Q
[ 261.933173]
[ 261.933173] NOC_error.c:474 NOCError: FATAL ERRORparam0 :zero, param1 :zero, param2 :zero.
[ 261.933173] Thread ID : 0x0000006f Thread name : ABTIST182 Process ID : 0
[ 261.933173] Register:
[ 261.933173] SP : 0x4b5901e8
[ 261.933173] FP : 0x4b5901f0
[ 261.933173] PC : 0x4b195a10
[ 261.933173] SSR : 0x00000008
[ 261.933173] BADVA : 0x00020000
[ 261.933173] LR : 0x4b1951ac
[ 261.933173]
[ 261.933173] Stack Dump
[ 261.933173] from : 0x4b5901e8
[ 261.933173] to : 0x4b5902c0
[ 261.933173]
[ 261.980069] remoteproc remoteproc0: crash detected in cd00000.q6v5_wcss: type fatal error
[ 262.002336] remoteproc remoteproc0: handling crash #1 in cd00000.q6v5_wcss
[ 262.010522] remoteproc remoteproc0: recovering cd00000.q6v5_wcss
[ 262.043352] remoteproc remoteproc0: stopped remote processor cd00000.q6v5_wcss
[ 262.290422] ath11k c000000.wifi: failed to transmit frame -108
[ 262.449733] ath11k c000000.wifi: failed to transmit frame -108
[ 262.996177] ath11k c000000.wifi: failed to transmit frame -108
[ 264.081703] ath11k c000000.wifi: failed to transmit frame -108
[ 265.051274] ath11k c000000.wifi: bss channel survey timed out
[ 265.051643] ath11k c000000.wifi: failed to send WMI_PDEV_SET_PARAM cmd
[ 265.056001] ath11k c000000.wifi: Failed to set beacon mode for VDEV: 1
[ 265.062462] ath11k c000000.wifi: failed to send WMI_BCN_TMPL_CMDID
[ 265.068936] ath11k c000000.wifi: failed to submit beacon template command: -108
[ 265.075113] ath11k c000000.wifi: failed to update bcn template: -108
[ 267.291304] qcom-q6v5-wcss-pil cd00000.q6v5_wcss: start timed out
[ 267.291349] remoteproc remoteproc0: can't start rproc cd00000.q6v5_wcss: -110
[ 270.801757] ath11k_warn: 30 callbacks suppressed
[ 270.801814] ath11k c000000.wifi: failed to transmit frame -108
[ 271.088041] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[ 271.088081] ath11k c000000.wifi: failed to send pdev bss chan info request
[ 271.094807] ath11k c000000.wifi: failed to send WMI_PDEV_SET_PARAM cmd
[ 271.101381] ath11k c000000.wifi: Failed to set beacon mode for VDEV: 1
[ 271.107889] ath11k c000000.wifi: failed to send WMI_BCN_TMPL_CMDID
[ 271.114398] ath11k c000000.wifi: failed to submit beacon template command: -108
[ 271.120549] ath11k c000000.wifi: failed to update bcn template: -108
[ 271.127775] ath11k c000000.wifi: failed to send WMI_VDEV_SET_PARAM_CMDID
[ 271.134364] ath11k c000000.wifi: Failed to set dtim period for VDEV 1: -108
[ 277.142819] ath11k_warn: 27 callbacks suppressed
[ 277.142841] ath11k c000000.wifi: failed to send WMI_PDEV_BSS_CHAN_INFO_REQUEST cmd
[ 277.146530] ath11k c000000.wifi: failed to send pdev bss chan info request
[ 277.154242] ath11k c000000.wifi: failed to send WMI_PDEV_SET_PARAM cmd
[ 277.160764] ath11k c000000.wifi: Failed to set beacon mode for VDEV: 1
[ 277.167309] ath11k c000000.wifi: failed to send WMI_BCN_TMPL_CMDID
[ 277.173794] ath11k c000000.wifi: failed to submit beacon template command: -108
[ 277.179948] ath11k c000000.wifi: failed to update bcn template: -108
[ 277.187171] ath11k c000000.wifi: failed to send WMI_VDEV_SET_PARAM_CMDID
[ 277.193763] ath11k c000000.wifi: Failed to set dtim period for VDEV 1: -108
[ 277.200562] ath11k c000000.wifi: failed to send WMI_VDEV_SET_PARAM_CMDID
Restarting the router helps how to solve this problem?

looks good so far.... do you guys have an optimal wireless config to enable all the bells and whistles... ?

so far I'm at...

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi'
        option band '5g'
        option cell_density '0'
        option beacon_int '100'
        option htmode 'HE80'
        option channel '36'
#       option noscan '1'
        option txpower '30'
        option su_beamformer '1'
        option su_beamformee '1'
        option mu_beamformer '1'
        option mu_beamformee '1'
        option vht160 '1'

config wifi-iface '5G'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 't2_5G'
        option dtim_period '1'
        option disassoc_low_ack '0'
        option ieee80211w '1'
        option encryption 'sae-mixed'

this got my pings from

ping 10.0.10.21                                                                                      ✔ 
PING 10.0.10.21 (10.0.10.21) 56(84) bytes of data.
64 bytes from 10.0.10.21: icmp_seq=1 ttl=64 time=65.3 ms
64 bytes from 10.0.10.21: icmp_seq=2 ttl=64 time=3.22 ms
64 bytes from 10.0.10.21: icmp_seq=3 ttl=64 time=15.8 ms
64 bytes from 10.0.10.21: icmp_seq=4 ttl=64 time=233 ms
64 bytes from 10.0.10.21: icmp_seq=5 ttl=64 time=262 ms
64 bytes from 10.0.10.21: icmp_seq=6 ttl=64 time=295 ms
64 bytes from 10.0.10.21: icmp_seq=7 ttl=64 time=5.82 ms
64 bytes from 10.0.10.21: icmp_seq=8 ttl=64 time=16.7 ms
64 bytes from 10.0.10.21: icmp_seq=9 ttl=64 time=128 ms
64 bytes from 10.0.10.21: icmp_seq=10 ttl=64 time=30.7 ms
64 bytes from 10.0.10.21: icmp_seq=11 ttl=64 time=59.6 ms
64 bytes from 10.0.10.21: icmp_seq=12 ttl=64 time=90.2 ms
64 bytes from 10.0.10.21: icmp_seq=13 ttl=64 time=119 ms
64 bytes from 10.0.10.21: icmp_seq=14 ttl=64 time=22.8 ms
64 bytes from 10.0.10.21: icmp_seq=15 ttl=64 time=51.8 ms
64 bytes from 10.0.10.21: icmp_seq=16 ttl=64 time=82.9 ms
64 bytes from 10.0.10.21: icmp_seq=17 ttl=64 time=115 ms
64 bytes from 10.0.10.21: icmp_seq=18 ttl=64 time=15.0 ms
64 bytes from 10.0.10.21: icmp_seq=19 ttl=64 time=45.8 ms
64 bytes from 10.0.10.21: icmp_seq=20 ttl=64 time=76.6 ms
64 bytes from 10.0.10.21: icmp_seq=21 ttl=64 time=107 ms
64 bytes from 10.0.10.21: icmp_seq=22 ttl=64 time=8.91 ms
64 bytes from 10.0.10.21: icmp_seq=23 ttl=64 time=41.5 ms
64 bytes from 10.0.10.21: icmp_seq=24 ttl=64 time=331 ms
64 bytes from 10.0.10.21: icmp_seq=25 ttl=64 time=311 ms
64 bytes from 10.0.10.21: icmp_seq=26 ttl=64 time=6.75 ms
^C

to

ping 10.0.10.21                                                                              ✔  10s  
PING 10.0.10.21 (10.0.10.21) 56(84) bytes of data.
64 bytes from 10.0.10.21: icmp_seq=1 ttl=64 time=136 ms
64 bytes from 10.0.10.21: icmp_seq=2 ttl=64 time=76.4 ms
64 bytes from 10.0.10.21: icmp_seq=3 ttl=64 time=7.24 ms
64 bytes from 10.0.10.21: icmp_seq=4 ttl=64 time=6.59 ms
64 bytes from 10.0.10.21: icmp_seq=5 ttl=64 time=7.04 ms
64 bytes from 10.0.10.21: icmp_seq=6 ttl=64 time=6.31 ms
64 bytes from 10.0.10.21: icmp_seq=7 ttl=64 time=7.49 ms
64 bytes from 10.0.10.21: icmp_seq=8 ttl=64 time=4.60 ms
64 bytes from 10.0.10.21: icmp_seq=9 ttl=64 time=5.28 ms
64 bytes from 10.0.10.21: icmp_seq=10 ttl=64 time=5.19 ms
64 bytes from 10.0.10.21: icmp_seq=11 ttl=64 time=4.73 ms
64 bytes from 10.0.10.21: icmp_seq=12 ttl=64 time=4.53 ms
64 bytes from 10.0.10.21: icmp_seq=13 ttl=64 time=6.01 ms
^C

any other ideas to improve the ping further?
PS: using AX3600 as an AP only

@Ansuel I went on a bit of an upstreaming spree yesterday for PCI 2.0 and clocks, and something broke remoteproc, more precisely SCM call to auth and reset the remoteproc in 5.17 and 5.18 which is just great.

qcom_scm_pas_auth_and_reset() fails with -EINVAL but the weird thing is that qcom_scm_pas_supported() which tells you if its supported to try and auth to the peripheral succeeds and returns true.

3 Likes

Well, it actually even allows to mount the roots, the issue is that even when mounted the configuration will not stick... I have no idea why...

Yeah, ipv6 works fine, the issue is with ipv6

Oh ok, UAU, I wasn't aware of that

Thanks, yeah, I didn't notice that too untill after a few reboots

Btw, is there a reason why frame_mode=2 isn't added by default in the package build?

I've read all those unnecessary comments, and from my side you have all the help you need and I can provide, along with a massive thanks for all the work, really, just great work and effort! :grin:

1 Like

Hm, it seems that they sorted this exact error in QSDK 11.5 CSU1, now its a matter in which Q6 FW version was it fixed.

Ok, it looks like WLAN.HK.2.6-02451-QCAHKSWPL_SILICONZ-1 should sort it out, but its not out in the public repo yet, and unlike other 2.6 FW-s it boots fine

2 Likes

I have used the failsafe three of four times after messing my network configuration. I managed to mount the /etc/config/ directory with my messed up network file, edit it and reboot after again with normal operation mode.

Replying to myself, found the culprit commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.18-rc4&id=3a99f121fe0bfa4b65ff74d9e980018caf54c2d4

4 Likes

Am I reading it correctly that with this patch there is a chance that previously released WiFi firmware v.2.6.* might now work and don't crash remoteproc?

No, the unreleased much newer WLAN.HK.2.6-02451-QCAHKSWPL_SILICONZ-1 works and according to the QCA release notes for 11.5 CSU1 which uses that one it fixes like 10+ Q6 crashes

So we just need to wait for release I guess.

Yeah, we cant do anything until they decide to finally push it.

Would the older board-2.bin file work with the never firmware? Or we'd also need to wait for corresponding BDF to be released for the new firmware?

Upstream BDF-s arent used anyway

By upstreamed BDF you mean a version from codeaurora, right?
Do you know what tweaks needs to be done to that BDF or is it KValo's secret knowledge?