Router bricked after trying to flash openwrt-24.10.1-qualcommax-ipq807x-xiaomi_ax9000-squashfs-factory
First time flash, chinese version router, starting from 1.0.108
I have .bin files backed up but no way to access the router
If UART is the only way, then now im stuck with a fancy doorstop
Is there any way to recover?
Hi all,
I’m using a Linksys EA8500 with OpenWrt, but after switching to a 1Gbps fiber ISP, I’m only getting ~300Mbps through the router (wired). I’m considering the Xiaomi AX9000 as an upgrade to handle that network.
A few quick questions—any info or real-world experience appreciated!
- How much free storage is left after installing OpenWrt on the AX9000?
- Can the AX9000 handle full gigabit speeds on OpenWrt?
- Are there any memory leak or stability issues with OpenWrt on the AX9000?
Thanks!
I create a pull request for AX9000 fan support based on @devrus91's work qualcommax: ipq807x: Xiaomi AX9000 add EMC2305 fan controller support · openwrt/openwrt
Hello!
I have a Xiaomi AX9000 router running the global firmware version 3.0.40. I need to flash it with OpenWRT. Is there any reliable and working guide for this? I've read through the forum thread, but nothing works for me so far. The official website provides the OpenWRT firmware itself, but there are no clear instructions on how to flash it.
Also, is UART access strictly necessary, or is there a way to do it without UART?
Huge thanks in advance!
Can someone test my pull request? Looking forward to feedback, thanks!
The UART is required. Check out this post; it was the one I followed and it worked for me. You may need to enter the command fw_setenv atf 1 before uploading sysupgrade.bin via SSH.
Hello. Many thanks to all the dear ones who share their experiences here
I recently got the international version, I was able to get ssh with xmir-patcher and flash it with urat.
And I was able to install wrt. Version 24.10.2
I changed the bdfs posted here in this thread every time I rebooted, even with my own patch that I made, I changed it and rebooted, I also set the country to America 160 MHz, channel 36 is selected and the power is on 1000 mW
The problem is that my phone, the S24 Ultra, does not connect at all and gives an error that the password is wrong. Even though the password is correct and I checked it many times. Even I chose a simple password 1 to 8, it still says it is wrong. When I scan with radio 3, it works correctly. The only way I have been able to connect to this radio so far is to remove its encryption. When the encryption is removed, it connects easily and works great.
Where is the problem?
I had the same symptoms until I replaced board-2 file with the hack correctly.
I kept the original file as board-2.bin_stock, and the hack is saved as board-2.bin
Could you check what's the fingerprint of your board-2.bin (located in the /lib/firmware/ath11k/QCN9074/hw1.0 directory)?
Should be:
/lib/firmware/ath11k/QCN9074/hw1.0# md5sum board-2.bin
5f8ac964e0d8ba50ef4ecb89676d193b board-2.bin
Instead of
/lib/firmware/ath11k/QCN9074/hw1.0# md5sum board-2.bin_stock
95ee5b69d01f44bab9f4fa333fe51018 board-2.bin_stock
Hi, thank u for reply . after a lot of trial and error I was able to figure out what the problem was. It was having problems on 24.10.2.
After changing to 24.10 it works great by changing the .bin .
Recently, I found a firmware by searching the web and GitHub, which I will put the link below.
The build is very good, even on its snapshot.
Someone i see even installed the Fan Control program on this snapshot firmware.
And my internet speed, which is gigabit, is not between 600 and 700, it gives full speed.
NSS is active and does not put pressure on the CPU.
If someone can build a build on the stable version of 24.10 (with mesh enabled), it will be great, so that there is no need for manipulation and changes in the long term.
I tried many times, more than 20 times, and all of them failed during the build, and I got bored because it takes two hours to build each time and I wanted to throw the router out of window.
I need a stable version for my packages, such as dnsmasq full and ... which are missing on the snapshot, or this fan.
Although it is very strange to me why this router, which has been on the market for several years, has not yet produced a proper firmware for us that is complete or somewhat complete in its features.
The company that manufactured this router has abandoned the device to God's mercy and does not even remember what it produced.
![]()
Please, if anyone can help me, please build it. I am not very good at coding and... We have just been introduced to WRT.
Beginner's Guide (like me): Flashing Xiaomi AX9000 with OpenWrt
I created this step-by-step guide to flash your Xiaomi AX9000 router with OpenWrt from scratch for casual users, not developers or engineers, who may want to improve the powerful but limited Xiaomi router. Advanced users might find it unnecessary, but it can help bring OpenWrt closer to others. All you need is basic knowledge of Linux console and commands.
I chose Manjaro because I am familiar with it, but you can easily replace it with another distribution. The process involves setting up a TFTP server on Manjaro and executing specific commands in the router’s bootloader.
Warning: Flashing your router carries risks. Proceed at your own responsibility.
Warning2: this worked for me after reading a lot and try from scratch, I’m not able to provide support, but if you have any troubles post them here and some people might help you.
Prerequisites:
-
Xiaomi AX9000 Router: With access to UART pins (https://www.youtube.com/watch?v=MQkqniY5gWU ). You only need to remove the top cover; the UART access can be seen here: https://openwrt.org/toh/xiaomi/ax9000 .
-
USB to TTL/UART Adapter: The wiki recommends one with 1.8V, although connecting VCC isn’t necessary. I bought this one for €2: https://es.aliexpress.com/item/1005006127199624.html?spm=a2g0o.order_list.order_list_main.5.4e29194dYB85mj&gatewayAdapt=glo2esp .
-
Ethernet Cable: To connect the router to your PC.
-
Manjaro USB: A clean installation of Manjaro (the latest stable version is recommended). I used GNOME, but any desktop environment should work.
-
File openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb
-
File openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin
These files can be downloaded from the official repository: https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/ or https://github.com/AgustinLorenzo/openwrt/releases (this last option is recommended).
-
Basic knowledge of Linux and command-line operations.
Step 1: Prepare the Manjaro Environment
-
Boot Manjaro from USB: Start your computer from the Manjaro USB.
-
Update the system (optional but recommended): Open a terminal and run:
sudo pacman -Syu -
Install the TFTP server (tftp-hpa):
sudo pacman -S tftp-hpa -
Enable and start the TFTP service:
sudo systemctl enable tftpdsudo systemctl start tftpdsudo systemctl status tftpdVerify that the service is active and working correctly.
-
Configure the IP address of your Manjaro PC: For the router to communicate with your PC, configure a static IP address on the Ethernet network interface within the same subnet as the TFTP server IP (192.168.1.100). Assign your PC the IP 192.168.1.100. For simplicity, I did this using Network Manager, but you can also do it with:
sudo ip addr add 192.168.1.100/24 dev <lan_interface> -
Place the OpenWrt files in the TFTP directory /srv/tftp:
sudo cp openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb /srv/tftp/sudo cp openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin /srv/tftp/Ensure the files have the correct permissions so the TFTP server can read them (usually sudo chmod 644 /srv/tftp/* if there are issues).
Step 2: Connect the Router and Access U-Boot
-
Connect the USB to TTL/UART adapter: Connect the adapter to your PC and the TX, RX, and GND pins to the corresponding pins on the AX9000 router board. Do not connect VCC. Note: TX on the router goes to RX on the USB adapter and vice versa.
-
Connect the router to your PC via Ethernet: From one of the LAN ports on the router to the network interface on your Manjaro PC configured in Step 1.
-
Open a serial terminal: First, identify the serial port (e.g.,
/dev/ttyUSB0):ls /dev/ttyUSB*
Then, start the serial connection (e.g., with screen at 115200 baud):
sudo screen /dev/ttyUSB0 115200
(Press Ctrl+A and then K to exit screen if needed).
Power on the router and access U-Boot: As it boots, observe the output in the serial terminal. Press any key when prompted to stop the boot process and enter the U-Boot prompt.
Step 3: Flash the OpenWrt Initramfs from U-Boot
Once in the U-Boot prompt (usually IPQ807x# or similar), execute the following commands:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.100
tftpboot 0x44000000 openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb
bootm
-
setenv ipaddr 192.168.1.1: Sets the router's IP address for TFTP communication. -
setenv serverip 192.168.1.100: Sets the IP address of your Manjaro PC (the TFTP server). -
tftpboot 0x44000000 openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb: Downloads the OpenWrt initramfs file from your TFTP server to memory address0x44000000on the router. -
bootm: Boots the Linux kernel from memory where the initramfs was loaded.
The router should now boot into an in-memory version of OpenWrt (initramfs). Nothing has been overwritten yet.
Step 4: Flash the Sysupgrade Image and Initial Configuration
Once the router has booted into OpenWrt (initramfs), you will need to copy the sysupgrade image to the router and flash it.
Option 1:
If you used Agustin Lorenzo’s image, access the web interface at http://192.168.1.1 and update with the file openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin.
Option 2 (official image):
Copy the sysupgrade file to the router (SCP): From your PC, open a new terminal (not the serial one) and use scp to copy the sysupgrade.bin file to the /tmp directory on the router. The router’s IP will be 192.168.1.1 (configured earlier in U-Boot):
scp /srv/tftp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
You will be prompted for the router's root password. By default, in OpenWrt initramfs images, there is no password.
-
Flash the sysupgrade image: Return to the serial terminal connected to the router and run the
sysupgradecommand:sysupgrade -n /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin
- The
-noption means "do not save configuration," which is recommended for a clean install.
The router will reboot after a successful flash. This reboot may take a few minutes.
VERY IMPORTANT: If the router continues to reboot after flashing, use the following command before running sysupgrade (a restart will be required). In my case, this was necessary (and drove me a bit crazy). Thanks to @psi-c: https://forum.openwrt.org/t/openwrt-support-for-xiaomi-ax9000/98908/1345?page=67
fw_setenv atf 1
Step 5: Post-Flash Configuration and LUCI Installation
Once the router has rebooted with the sysupgrade image of OpenWrt, you can access it via SSH and configure LUCI (the OpenWrt web interface).
Common Issues:
-
TFTP Problems: Make sure the Manjaro firewall isn’t blocking the TFTP port (UDP 69). You can temporarily disable it with
sudo systemctl stop firewalldor open the specific port. -
Can't Access U-Boot: Check your UART connections (TX, RX, GND) and the serial terminal settings (baud rate, etc.). Make sure to press the correct key at the right time during boot.
-
Sysupgrade Errors: Ensure the
sysupgrade.binfile has been copied correctly to the router and that the path is correct. The Luci interface performs a sha256sum check to ensure consistency.
Congratulations! You should now have OpenWrt running on your Xiaomi AX9000. Welcome to a world without manufacturer-imposed limits! It may be frustrating at first and require some learning, but it’s worth it!
I understand you, i wasted 3 entires days trying to compile NSS + FAN Control and in the end couldn't make it work, both at the same time, i tried agustin lorenzo, seromantic, quosmos, openwrt 24.10, the info is there, but im just a home user, chat gpt helps me but a lot of error 1, error 2, header error, packets dont exist, kernel mismatch hasher, im getting crazy, i just measure the temps, never go higher than 60º C , so i needed to stop researching about it, if anyone can helps to create ( if already exist tell me ) an image with NSS + FAN Control, ill apreciate it, thanks in advance!
Hi again.
I saw a month ago in the russia froum someone build . I test it fan work great also nss .
I have a special thank to her or his
You can download it on my telegram ch ![]()
@ ax9000files
I hope to fix yor problem
But still me need a stable version for dnsmasq full and some kmod ![]()
Sorry, duplicated
Hi. I'm interested in installing the fan controller on Agustin Lorenzo's version. This build works great for me, and I don't want to change it. Could you ask someone you know how they did it?
Thank you very much.
I'm looking for the kmod-usb-storage version for OpenWrt SNAPSHOT r0-957029c3 / LuCI Master 25.285.64289~ad6591f
Is it possible to install it on a Xiaomi AX9000 router? Thanks
Should we be able to use the adguardhome-107.69-r2.apk from https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages/adguardhome-0.107.69-r2.apk although we are on ipq807x branch ?
Hello,
I was wondering - if anyone can help me with installing openwrt on this damn hardware. I used to install openwrt hundred of times - literally - on different devices - but i can't deal with this one bastard ![]()
I've attached uart as explained it wiki but i can't use it - as i have problem with rooting device and enabling RX pin (TX one works as expected) and bootloader wait keystroke
I've tried both methods explained in wiki:
- exploit way - works fine until i get 1,2,3.bin files. I'cant upload it - i receive file verification error from gui. Retested whole procedure on 3 different PCs - both linux and windows, firefox and chrome
- second router way - i've prepared second router with openwrt 22 (last one that supports lua files in path mentioned in wiki)- even tested for proper luci response. Unfortunately - I get Path not found error from AX9000 when i try to call extendwifi_connect_inited_router endpoint. So whole preparation was pretty usesless.
My device is International version with 3.0.40. Pretty common in this thread - multiple people updated it without problems.
Openwrt 24 with NSS image is already compiled - but there is no way to load it ![]()
Any ideas how to proceed?
