OpenWrt support for Xiaomi AX3000T

Daimian96 - do you have the original firmware?

I am getting about 800/800 Mbps on wifi (5 GHz, 80 MHz channel 44, about 2m from the router), LAN is close to gigabit. I am on 23.05.4 release, with hardware offload and WED enabled (without it CPU usage is high in load and may limit transfer speed).
If you get low speed further from the router, but fast speed close to it, try to use different channel or adjust transmit power (maximum transmit power differs by country code used and channel number).

Maybe you have posted this but if you are running OpenWrt 23.05.4 try a current snapshot build. It contains lots of updates to the wireless driver and firmware which should improve wireless bandwith.

Set back rhe interface to dhcp before using the xiaomi tool
You have to get into recovery mode by holding reset while powering on until you get orange flashes. If that doesnt work try it tomorrow again

1 Like

Thanks, that actually seems super simple to fix! I was worried I would have to use UART or some other method which I don't have access to.
Resetting isn't working right now so I will try tommorow.

Actual lifesaving comment though, I was getting quite worried.

My RD03 arrived this week with v1.0.47 firmware and manufactured in 2024-06. Flashed Snapshot r27229 u-boot according to the wiki as I didn't know how to check NAND flash without unscrew at that time.
Later discovered this topic and managed to confirm the flash is ESMT through physical inspection (as instructed by a previous post) and kernel dmesg log on luci.
Sysupgraded to 23.05.4 without retaining config to reset wireless config. No issue so far, though IPv6 somehow takes a while to be functional compared to my previous openwrt-powered Mi Router 4.

1 Like

Yeah, the snapshot seems to be the way to go for the AX3000T: the 23.05.04 release did have some performance affecting bugs.

Besides that: I've tried but can't enable WED on AX3000T and also have functional fast roaming (it does work on the older ax3200). Same thing with hardware offloading and fast roaming: it will plainly not function at all for fast roaming currently, wasted hours figuring that out...

managed to get 1.0.47 flashed but there appears to be errors when read data off at least one nand chip

cat /proc/mtd looks different too

dev:    size   erasesize  name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00040000 00020000 "Nvram"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00200000 00020000 "Factory"
mtd5: 00200000 00020000 "FIP"
mtd6: 00040000 00020000 "crash"
mtd7: 00040000 00020000 "crash_log"
mtd8: 02200000 00020000 "ubi"
mtd9: 02200000 00020000 "ubi1"
mtd10: 02000000 00020000 "overlay"
mtd11: 00c00000 00020000 "data"
mtd12: 00040000 00020000 "KF"

Unfortunately no.

How have you done it?

Hello,
I recently purchased a router, and unfortunately, I didn't pay attention to the warning at the beginning of the wiki regarding the new NAND flash chip. I tried to read your messages, but I couldn't find a solution to repair my router. Is it possible to detail the steps to either revert the changes or fix the issue directly?

Thank you very much for your help.

I was able to flash temporarily ubootmod-bl31-uboot.fip to router (after restart it returns to previous, stock bootloader) but no luck from there.
I was able to run openwrt kernel but without ethernet communication I can't do much.
In this thread - post 420 - there is information how to flash with USB to UART converter. I used that method to run ubootmod .fip file.

My device is a chinese version ... :roll_eyes:
Do you know if this method works well with the chinese version ?

Resetting worked.
Unfortunately I have run into the same issue that I was getting before.. For some reason, none of the OpenWRT images worked for me.

To be more speciific, today I tried the ImmortalWRT fork .
I was able to access SSH very easily, as usual. However, running cat /proc/cmdline now showed a firmware version of 1instead of 0 like last time. Also, ubiflash warned me when I went to flash the immortalwrt file, saying something along the lines of 'only 90 out of 250 blocks' were going to be flashed.

After flashing, I was automatically assigned an ip of 169.something (i can check if you want), which I forced to 192.168.1.2 in order to try to SSH into the OpenWRT interface. Unfortunately, SSH did not work. Accessing the Web UI did not work either. Neither did pinging the router.

This is an issue I've faced on all builds. I'm completely lost at this point.
One thing to note though is that I did actually notice some wifi networks pop up along the likes of 'MI300-2G' and 'MI300-5G' yesterday when I tried Remitor's build but I had no idea what the username and password were.

Also I ensured that I was not plugged into the WAN port of the router.

Try what Andi-AT-1 said about resetting the device using Xiaomi's Mi Wifi tool/
Worked for me, and yes I also have a chinese device.

When you flash openwrt do u get the white light, or does it stay on orange?

When you geta flash error its quite likely it fails to boot. Do u use the xmir patcher? If not try that.

Easiest way to check out whats happening would be to connect uart.

I get a solid white/blue light.
XMIR patcher has failed for me multiple times, both on linux and windows, with random errors.

I'll try it again and report the errors I'm experiencing.
Unfortunately I do not have a UART cable

I find XiaomiTool V2 but no xiaomi recovery tool. Is this the right one to use or do you have link ?

Try this(scrolldown to unbricking section), but use the 1.0.4.7 firmware that you should already have lying around. I also had to set the IP to 192.168.31.100 on my PC but you may not have to

XMIR shows this error running on Windows with Python 3.12 when trying to patch via SSH. Note it is connected via Wifi as I think the router is trying to use my PC's ethernet connection as a WAN connection


 1 - Set IP-address (current value: 192.168.31.1)
 2 - Connect to device (install exploit)
 3 - Read full device info
 4 - Create full backup
 5 - Install EN/RU languages
 6 - Install Breed bootloader
 7 - Install firmware (from directory "firmware")
 8 - {{{ Other functions }}}
 9 - [[ Reboot device ]]
 0 - Exit

Select: 2

device_name = RD03
rom_version = 1.0.47 release
mac address = 08:6a:c5:1f:48:11
Current CountryCode = CN
Enter device WEB password: 99999999
Run SSH server on port 22 ...
WARNING: SSH server not responding (IP: 192.168.31.1)

Unlock TelNet server ...
Traceback (most recent call last):
  File "d:\python\python38\Lib\site-packages\urllib3/connection.py", line 174, in _new_conn
  File "d:\python\python38\Lib\site-packages\urllib3/util/connection.py", line 96, in create_connection
  File "d:\python\python38\Lib\site-packages\urllib3/util/connection.py", line 86, in create_connection
OSError: [WinError 10065] A socket operation was attempted to an unreachable host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "d:\python\python38\Lib\site-packages\urllib3/connectionpool.py", line 699, in urlopen
  File "d:\python\python38\Lib\site-packages\urllib3/connectionpool.py", line 394, in _make_request
  File "d:\python\python38\Lib\site-packages\urllib3/connection.py", line 239, in request
  File "http\client.py", line 1252, in request
  File "http\client.py", line 1298, in _send_request
  File "http\client.py", line 1247, in endheaders
  File "http\client.py", line 1007, in _send_output
  File "http\client.py", line 947, in send
  File "d:\python\python38\Lib\site-packages\urllib3/connection.py", line 205, in connect
  File "d:\python\python38\Lib\site-packages\urllib3/connection.py", line 186, in _new_conn
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x000001E2C719E610>: Failed to establish a new connection: [WinError 10065] A socket operation was attempted to an unreachable host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "d:\python\python38\Lib\site-packages\requests/adapters.py", line 439, in send
  File "d:\python\python38\Lib\site-packages\urllib3/connectionpool.py", line 755, in urlopen
  File "d:\python\python38\Lib\site-packages\urllib3/util/retry.py", line 574, in increment
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.31.1', port=80): Max retries exceeded with url: /cgi-bin/luci/;stok=d7de071cf080ce6633a9ec1cd76cad52/api/misystem/arn_switch?open=1&mode=1&level=%0Abdata+set+telnet_en%3D1+%0A+bdata+commit%0A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001E2C719E610>: Failed to establish a new connection: [WinError 10065] A socket operation was attempted to an unreachable host'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "connect.py", line 55, in <module>
    import connect6
  File "C:\Users\Harjas Singh\Downloads\xmir-patcher-main\connect6.py", line 79, in <module>
    exec_cmd("bdata set telnet_en=1 ; bdata commit")
  File "C:\Users\Harjas Singh\Downloads\xmir-patcher-main\connect6.py", line 51, in exec_cmd
    res = requests.get(gw.apiurl + api, params = params)
  File "d:\python\python38\Lib\site-packages\requests/api.py", line 75, in get
  File "d:\python\python38\Lib\site-packages\requests/api.py", line 61, in request
  File "d:\python\python38\Lib\site-packages\requests/sessions.py", line 542, in request
  File "d:\python\python38\Lib\site-packages\requests/sessions.py", line 655, in send
  File "d:\python\python38\Lib\site-packages\requests/adapters.py", line 516, in send
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.31.1', port=80): Max retries exceeded with url: /cgi-bin/luci/;stok=d7de071cf080ce6633a9ec1cd76cad52/api/misystem/arn_switch?open=1&mode=1&level=%0Abdata+set+telnet_en%3D1+%0A+bdata+commit%0A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001E2C719E610>: Failed to establish a new connection: [WinError 10065] A socket operation was attempted to an unreachable host'))

Nevertheless, I continued, manually gaining SSH access as outlined in the OpenWRT install instructions.
I got {Code 0} as an output for all my Curl requests and I was able to SSH into the router, being greeted by the following:

BusyBox v1.25.1 (2023-07-30 07:05:14 UTC) built-in shell (ash)

 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@XiaoQiang:~#

Cat /proc/cmdline yields the following:

console=ttyS0,115200n1 loglevel=8 swiotlb=512 rootfstype=squashfs firmware=0 mtd=ubi

I then exited and tried running the XMIR Patcher again, this time selecting 7 and placing the immortalWRT image i tried flashing previously into the firmware folder.

It asked me for a password for the root user, but as there is no password I simply pressed enter.

However, it errored out and showed this:

Enter password for "root" user:
Detect valid SSH server on port 22 (auth OK)
device: "RD03"
img_write = True
Image files in directory "firmware/":
  "firmware/immortalwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi"
Enter password for "root" user:
Detect valid SSH server on port 22 (auth OK)

ERROR: SSH server not responding (IP: 192.168.31.1)

Safe to say XMIR patcher does not work with my system.