Adding OpenWrt support for Xiaomi "Redmi Router AX6S"/"Xiaomi Router AX3200"

Please Post Your Wireless Config... in my case, there is no improvement. iperf3 results shows slower values as before :confused:

Output of uci show wireless:

wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.path='platform/18000000.wmac'
wireless.radio0.channel='6'
wireless.radio0.band='2g'
wireless.radio0.htmode='HT20'
wireless.radio0.disabled='0'
wireless.radio0.cell_density='0'
wireless.radio0.country='CA'
wireless.radio0.noscan='1'
wireless.default_radio0=wifi-iface
wireless.default_radio0.device='radio0'
wireless.default_radio0.network='lan'
wireless.default_radio0.mode='ap'
wireless.default_radio0.ssid='OpenWrt'
wireless.default_radio0.encryption='psk2+ccmp'
wireless.default_radio0.key='*********************************'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.path='1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
wireless.radio1.band='5g'
wireless.radio1.country='CA' #combined Tx-Power: 27 dBm
wireless.radio1.cell_density='0'
wireless.radio1.htmode='HE80'
wireless.radio1.noscan='1'
wireless.radio1.he_su_beamformee='1'
wireless.radio1.he_bss_color='8'
wireless.radio1.channel='157' # Allow  Tx-Power: 27 dBm !!!!
wireless.default_radio1=wifi-iface
wireless.default_radio1.device='radio1'
wireless.default_radio1.network='lan'
wireless.default_radio1.mode='ap'
wireless.default_radio1.ssid='OpenWrt_5G'
wireless.default_radio1.key='*********************************'
wireless.default_radio1.encryption='sae-mixed'

Tests:

iperf3 -c docker -u -b 1G -V
iperf 3.12
Linux t460 6.0.9-x64v1-xanmod1-1 #1 SMP PREEMPT_DYNAMIC Thu, 17 Nov 2022 05:30:14 +0000 x86_64
Control connection MSS 1448
Setting UDP block size to 1448
Time: Mon, 12 Dec 2022 17:47:28 GMT
Connecting to host docker, port 5201
      Cookie: n6oiqehi5szg437lcunpsv335l3doaxwljhn
      Target Bitrate: 1000000000
[  5] local LAPTOP port 53403 connected to DOCKER port 5201
Starting Test: protocol: UDP, 1 streams, 1448 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  50.3 MBytes   422 Mbits/sec  36421
[  5]   1.00-2.00   sec  49.6 MBytes   416 Mbits/sec  35938
[  5]   2.00-3.00   sec  50.0 MBytes   420 Mbits/sec  36229
[  5]   3.00-4.00   sec  50.2 MBytes   421 Mbits/sec  36335
[  5]   4.00-5.00   sec  50.4 MBytes   423 Mbits/sec  36529
[  5]   5.00-6.00   sec  50.1 MBytes   421 Mbits/sec  36307
[  5]   6.00-7.00   sec  50.0 MBytes   420 Mbits/sec  36216
[  5]   7.00-8.00   sec  50.1 MBytes   421 Mbits/sec  36307
[  5]   8.00-9.00   sec  50.3 MBytes   422 Mbits/sec  36435
[  5]   9.00-10.00  sec  50.2 MBytes   421 Mbits/sec  36349
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec   501 MBytes   421 Mbits/sec  0.000 ms  0/363066 (0%)  sender
[  5]   0.00-10.00  sec   501 MBytes   420 Mbits/sec  0.059 ms  0/363052 (0%)  receiver
CPU Utilization: local/sender 26.4% (7.2%u/19.2%s), remote/receiver 7.5% (1.8%u/5.8%s)

iperf Done.

iwconfig wlp4s0 

wlp4s0    IEEE 802.11  ESSID:"OpenWrt_5G"
          Mode:Managed  Frequency:5.785 GHz  Access Point: 5C:02:14:XX:XX:XX
          Bit Rate=866.7 Mb/s   Tx-Power=22 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=69/70  Signal level=-41 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:117   Missed beacon:0
1 Like

I own an earlier (2021 September?) model, with telnet factory-enabled. I've read in this thread that upgrading an AX3200 may be risky nowadays. According to the device page it applies only to "some newer AX6S". How can I tell if an upgrade is safe in my case? Matching the flash layout on device page and on device is enough?

I also have a more general issue, I try to find out if it is device or ISP related. It appears intermittently with no apparent reason:

Wed Dec 14 16:36:13 2022 daemon.notice netifd: Network device 'wan' link is down
Wed Dec 14 16:36:35 2022 daemon.notice netifd: Network device 'wan' link is down
Wed Dec 14 16:37:45 2022 daemon.notice netifd: Network device 'wan' link is down
Wed Dec 14 16:42:17 2022 daemon.notice netifd: Network device 'wan' link is down
Wed Dec 14 16:42:21 2022 daemon.notice netifd: Network device 'wan' link is down

My router is connected to the ISP modem which is in bridged mode.
By googling couldn't find a fitting root cause (no packet loss, cable is fine, keepalive set to 6 10, no missing LCPs, ...). However seeing no apparent reason in 'logread' before the events is suspicious. Slapping log output level to 'alert', and adding "debug kdebug 7" to pppd options didn't add anything to the investigation.

Could you suggest how to tweak log settings even further to make it even more verbose?
Does anyone else has the same problem with AX3200/AX6S?

I've been upgrading an AX3200 (also an early model with Telnet enabled) without any issue (currently in 22.03.2).

Regarding your WAN issue, do you have any 100Mbps device connected to the AX3200 Ehternt ports? If so, try disconnecting it. I had Ethernet issues when connecting a 100Mbps to any of the router ports (but it was quite some time ago, it may be fixed in the more recent builds but I have not tested it anymore).

Thank you for your answer. I've disconnected every 100Mbps devices for the last two days. Sadly, it didn't solve the problem.
I'll give a try sometime for the upgrade, who knows...

My unit was also telnet enabled by factori, rb01 1.0.35 .Tested few days with oe fw for any hw faults the flashed to openwrt. Got some strange hiccups in dap mode first with my opnsense but i solved them.
I also tested builds with MTK closed drivers.
Right now and for quite time i run development builds updated almost dayli with auc, never look back ever since, No NAT, no firewall!

Can you please explain the wiki information about "newer" rb03 versions bricking on sysupdate.

Should I buy an rb03 from china? Is there a way to flash a "newer rb03" without bricking?

Nothing clear about the newer unit batches that soft bricks after doing a sysupgrade but not the first "factory" flash.
Mind that it's a "soft brick", you can debrick back to stock with ease by tftp.
Worth try imo, you'll learn something for shure!

The reason for soft bricking seems to be mediatek bmt present in dts. On my device it marks block 1 (at 0x20000) as bad, shifting all (physical) offsets for linux by 0x20000. But factory u-boot doesn't care about bad block table and still looks for things at previous non-shifted offsets. Commenting out bmt lines in dts fixes the problem.

3 Likes

Guys,

just feeling a bit dumb at the moment...

I'm connected to the UART port.
Fired up cu.
Can see the boot menu

BUT
I cannot select anything.

No arrow down possible.
The beast doesn't accept ANYTHING

I've also changed to minicom
no difference.

How can I select the u-boot option?

Replying to myself:
putty did the trick.

Now, I have OpenWrt on my RB01

PARTY!

3 Likes

Can you explain, please. I have the same problem with a brand-new RB01 item, too.
After doing a sysupgrade it crashes because of mtd layout ("cannot attach mtd10") - but there is no mtd10, just mtd9.
What should I do?

I used this method:

Well, exactly after sysupgrade the following boot attempt fails:

[    1.787544] UBI: auto-attach mtd10
[    1.790964] ubi0: default fastmap pool size: 8
[    1.795401] ubi0: default fastmap WL pool size: 4
[    1.800100] ubi0: attaching mtd10
[    1.803775] ubi0: scanning is finished
[    1.807518] ubi0 error: ubi_read_volume_table: the layout volume was not found
[    1.814756] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd10, error -22
[    1.821911] UBI error: cannot attach mtd10
[    1.826941] /dev/root: Can't open blockdev
[    1.831045] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    1.838537] Please append a correct "root=" boot option; here are the available partitions:
[    1.846891] 1f00             512 mtdblock0 
[    1.846896]  (driver?)
[    1.853425] 1f01             256 mtdblock1 
[    1.853429]  (driver?)
[    1.859955] 1f02             512 mtdblock2 
[    1.859959]  (driver?)
[    1.866480] 1f03             256 mtdblock3 
[    1.866484]  (driver?)
[    1.873013] 1f04             256 mtdblock4 
[    1.873017]  (driver?)
[    1.879543] 1f05             512 mtdblock5 
[    1.879547]  (driver?)
[    1.886068] 1f06             256 mtdblock6 
[    1.886072]  (driver?)
[    1.892598] 1f07             256 mtdblock7 
[    1.892602]  (driver?)
[    1.899127] 1f08            4096 mtdblock8 
[    1.899131]  (driver?)
[    1.905652] 1f09            3968 mtdblock9 
[    1.905656]  (driver?)
[    1.912181] 1f0a             128 mtdblock10 
[    1.912185]  (driver?)
[    1.918797] 1f0b          113664 mtdblock11 
[    1.918801]  (driver?)
[    1.925408] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.933662] SMP: stopping secondary CPUs
[    1.937577] Kernel Offset: disabled
[    1.941055] CPU features: 0x0,00006000,00000802
[    1.945577] Memory Limit: none
[    1.951921] Rebooting in 1 seconds..

Hello, a little bit confused, please help me to understand correct way. Is it possible enable ssh in this way on xiaomi ax3200 rb01 with telnet false and ssh false and use openwrt ? Without having uart and second xiaomi in mesh

You have a different issue: https://github.com/openwrt/openwrt/pull/10872

1 Like

Thanks, this seems to be the issue!

Are there compiled images using this branch, so I can test? To compile by myself, at least I would need a useful .config for the AX3200. Where can this be found?

I doubt there are.

For 22.03.2 you can use https://downloads.openwrt.org/releases/22.03.2/targets/mediatek/mt7622/config.buildinfo as a starting point.

1 Like

Another positive outcome here with a model with no Telnet enabled, I followed the instructions here : https://github.com/mikeeq/xiaomi_ax3200_openwrt and even accessed the serial port wthout disassembling the router.

Some considerations:

  • you have to remove the black plastic part of the Dupont male headers to make them slip through the vents so it s advisable to shrink wrap at least the GND pin header to avoid shortcuts
  • I had to get the latest Ubuntu version for the dnsmasq tftp command to work, not sure what was wrong with an older one, maybe dnsmasq was an older version and the syntax was different but it may be something else
  • the Xiaomi Repair Tool can serve the .bin firmware but not the .itb so you have to get the tftp server working
  • both cu and minicom failed for me at sending back key strokes to the serial console so I used the Arduino IDE (v1) serial monitor, worked just fine!

You have to disable rts/cts on serial port (-f flag for cu, somewhere in port settings in minicom)

1 Like