Adding OpenWrt support for Xiaomi AX3600 (Part 1)

FYI, just make a quick tested on my AX3600, dl-wrx36, and AX9000.
Did not replicate your issue at all.

It was just a one off then.

1 Like

Flashed both DL-WRX36 and AX3600 with your latest 2022-12-11-1339 and didn't had any issue.

I started using dl-wrx36 as my main router yesterday and I'm very happy with it.

Hi boys,

Device: Xiaomi AX3600

At the moment is working well, but the only issue is the radio with 160MHZ is KO when select a manually channel, and when select auto channel the radio directly go OFF

Log of manual channel (36):

daemon.notice hostapd: phy1-ap0: interface state HT_SCAN->DFS

Log of autochannel:

Sun Dec 11 16:21:39 2022 daemon.notice hostapd: Configuration file: /var/run/hostapd-phy1.conf (phy phy1-ap0) --> new PHY
Sun Dec 11 16:21:39 2022 kern.info kernel: [63908.156090] br-lan: port 5(phy1-ap0) entered blocking state
Sun Dec 11 16:21:39 2022 kern.info kernel: [63908.156143] br-lan: port 5(phy1-ap0) entered disabled state
Sun Dec 11 16:21:39 2022 kern.info kernel: [63908.161191] device phy1-ap0 entered promiscuous mode
Sun Dec 11 16:21:39 2022 kern.info kernel: [63908.166956] br-lan: port 5(phy1-ap0) entered blocking state
Sun Dec 11 16:21:39 2022 kern.info kernel: [63908.171278] br-lan: port 5(phy1-ap0) entered forwarding state
Sun Dec 11 16:21:39 2022 daemon.notice hostapd: ACS: Automatic channel selection started, this may take a bit
Sun Dec 11 16:21:39 2022 daemon.notice hostapd: phy1-ap0: interface state UNINITIALIZED->ACS
Sun Dec 11 16:21:39 2022 daemon.notice hostapd: phy1-ap0: ACS-STARTED
Sun Dec 11 16:21:40 2022 kern.info kernel: [63908.816681] br-lan: port 5(phy1-ap0) entered disabled state
Sun Dec 11 16:21:40 2022 daemon.notice netifd: Wireless device 'radio1' is now up
Sun Dec 11 16:21:46 2022 daemon.err hostapd: ACS: Failed to compute ideal channel
Sun Dec 11 16:21:46 2022 daemon.err hostapd: Interface initialization failed
Sun Dec 11 16:21:46 2022 daemon.notice hostapd: phy1-ap0: interface state ACS->DISABLED
Sun Dec 11 16:21:46 2022 daemon.notice hostapd: phy1-ap0: AP-DISABLED
Sun Dec 11 16:21:46 2022 daemon.err hostapd: ACS: Possibly channel configuration is invalid, please report this along with your config file.
Sun Dec 11 16:21:46 2022 daemon.err hostapd: ACS: Failed to start
Sun Dec 11 16:21:46 2022 daemon.notice hostapd: phy1-ap0: AP-DISABLED
Sun Dec 11 16:21:46 2022 daemon.err hostapd: hostapd_free_hapd_data: Interface phy1-ap0 wasn't started
Sun Dec 11 16:21:46 2022 daemon.notice hostapd: nl80211: deinit ifname=phy1-ap0 disabled_11b_rates=0
Sun Dec 11 16:21:46 2022 kern.info kernel: [63915.400469] device phy1-ap0 left promiscuous mode
Sun Dec 11 16:21:46 2022 kern.info kernel: [63915.400684] br-lan: port 5(phy1-ap0) entered disabled state
Sun Dec 11 16:21:46 2022 daemon.notice hostapd: phy1-ap0: interface state DISABLED->DISABLED

Great job and thanks for all @robimarko @Ansuel

Regards, Agustin

Ok, the issue was that I had regdb uploading enabled the binary present but used 2.5 FW which obviously crashes if you try uploading the regdb.

BTW, there is now support for setting the ethernet interface name that will get register in the DTS so we can have predictable names instead of ethN.

I would really like to use that before making a PR, to me it makes way more sense to label the ports as its written on the device or the usually lanN/wan instead of ethwhatever

3 Likes

You cannot do 160MHz on channel 36 as the center channel

1 Like

Are you missing a "w"? :slight_smile: Like "there is now support" ?

Oh yeah, good catch.
There is support for setting the names now

Ok, now it makes sense :slight_smile:

And how can I help you with this? You want me to test something?

Basically I need ideas on how to name the ports and then somebody for the each device to map the ports out to the DP nodes

Once I get a chance I will send a pr to your repo.

fwiw the Redmi AX6 is practically the same as the Xiaomi AX3600 so just changing the vendor, device and board names in the .json should be enough.

thanks

Hi boys,

A few hours ago, i compiled a ROM based in the latest commit of @robimarko + @bitthief to have the best of both worlds.

Information:

KERNEL: 5.15.82
WLAN FW: WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
NSS: 11.5, offloading with ethernet ONLY
VLAN: OKAY
VLAN + PPPOE: OKAY
MIoT: OKAY
WiFi 160 MHZ: OK, but you need to set the country code
Free space: 10.45 MB (dual boot partition)
Governor: performance (CPU is overclocked at 2.2 GHz)
TCP congestion control: BBR

Repos:

https://github.com/AgustinLorenzo/openwrt-bitthief-upstream
https://github.com/AgustinLorenzo/nss-packages-bitthief

Download

Full config used to build: https://raw.githubusercontent.com/AgustinLorenzo/openwrt-bitthief-upstream/ipq807x-5.15-pr/.full_config

Feel free to use.

Thanks for all @robimarko @bitthief

Regards, Agustin

3 Likes

Hi @robimarko

I tried with other channel, 36,40,44,48,52 with 160 MHz and i am getting the same result (RADIO OFF or DFS->SCAN forever)

How can I help you debug the error?

Regards, Agustin

I had the latest build on my AX3600 with 160MHz working perfect, and never got similar issue for long time even with the old build.
Not sure why it didn't work for you!
My logs as below:

Mon Dec 12 10:23:15 2022 kern.info kernel: [ 7530.525880] br-lan: port 7(phy1-ap0) entered blocking state
Mon Dec 12 10:23:15 2022 kern.info kernel: [ 7530.525935] br-lan: port 7(phy1-ap0) entered forwarding state
Mon Dec 12 10:23:15 2022 daemon.notice netifd: Network device 'phy1-ap0' link is up
Mon Dec 12 10:23:16 2022 daemon.notice hostapd: phy1-ap0: interface state DFS->ENABLED
Mon Dec 12 10:23:16 2022 daemon.notice hostapd: phy1-ap0: AP-ENABLED
Mon Dec 12 10:23:16 2022 daemon.notice hostapd: phy0-ap0: DFS-CAC-COMPLETED success=1 freq=5200 ht_enabled=0 chan_offset=0 chan_width=5 cf1=5250 cf2=0

Did you set a wireless country code?

For me, 160 Mhz also does not work from the beginning of using the robimarko build. I thought it was a feature of the early versions, and it must be. Does not have to?

PS. It works. Changing the Country Code helped.

2 Likes

Hi, could you pls run a bench, for example coremark, to see if the CPU is really OC?

AX3600(1.4GHz):

root@X2:~# coremark
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 12463
Total time (secs): 12.463000
Iterations/Sec   : 4814.250181
Iterations       : 60000

DL-WRX36 (2.2GHz):

root@D1:~# coremark
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 14309
Total time (secs): 14.309000
Iterations/Sec   : 7687.469425
Iterations       : 110000

Note: coremark will load only one of the 4 cores.
I runned it with the default Robi governor: schedutil.

You can also use this tool:
https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/7076

I am skeptical that IPQ8071A can be overclocked to Hawkeye clocks

2 Likes

Hi,

the value for country code is: driver default, maybe this is my mistake.

Regards, Agustín

1 Like

Hi boys,

Okay, after set country code the 160 MHz, is UP again :slight_smile:

Regards, Agustin