OpenWrt support for Xiaomi AX9000

This device will not allow you to use all 5G channels - only 5G lower bands

Had the same issue - The workaround proposed by avalentin (to replace QCN9074's BDF) fixed it

Replacement procedure is described here: https://openwrt.org/toh/xiaomi/ax9000#potential_issueslimitations

1 Like

Unfortunately I have no idea - my device had Chinese OEM.
But, according to this documentation (https://openwrt.org/toh/xiaomi/ax9000#for_the_international_oem_firmware_model_only) uart is still needed for EU firmare

Have you tested mwan3 load balancing on the qnap running the nss build, could you confirm the repo containing the nss build?

i used this instructions mostly did i screw up some files i did opkg update
opkg install luci many many times but it doesnt stick last night i made it this morning cant access web gui.. i tried to flash mi stock firmware to do the process all over again but couldnt get into recovery mode to flash miwifi repair tool .. is there a easier way to go back to stock?? and thenn try again from scratch.

What do you exactly mean by saying but it doesnt stick?
It would stay, unless you mess up with its config or you install the default image again it would stick for good :slight_smile:
It is difficult to advise you as your description above do not clearly explain what is the problem and what have you done.
If you still have ssh access ... Have you try opkg install --force---force-reinstall luci ?
Not sure why you want to go back to stock firmware?
I only had to restore stock FW once and I used the TFTP method, described in ax3600 toh, and it worked for me on my ax9000 (https://openwrt.org/toh/xiaomi/ax3600#tftp_recovery)

1 Like

Hi, everybody can reupload this file "openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb" to Google drive or another cloud. Web site https://feed.robimarko.eu not work.

Just use the official OpenWrt images

Sorry, this image for first flashing openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-uImage.itb

I am not following, you have all of the images on the official OpenWrt download site:
https://downloads.openwrt.org/snapshots/targets/ipq807x/generic/

1 Like

Who ask about hardware fan fix, need deattach this cable

1 Like

Will this make it run at 100% all the time?

Yes, but without noise.
You can detach cable and check.
If you not like, you can put back.
Power line for fan 12v but you can connect power cable to 5v line and fan run slowly

1 Like

Gained Telnet/Ssh access with the exploit, then:

Achieved the goal of flashing Openwrt without opening the AX9000 International device with version 3.4.48.

3 Sewing needles, arduino cables to UART:

No correct UART

Correct UART

Commands to disable secure boot:

setenv atf 1

saveenv

And the following process shared above:

Might be easier to just setup Solarwinds TFTP Server instead. Here is the direct link for download.

Just make sure that:

  • Ethernet cable is connected on LAN1 port of the router. This is adjacent to the WAN port;
  • Windows Defender is disabled (And any other active security software you might have);
  • Windows Firewall is disabled (And any other firewall software you might have);
  • Your Ethernet adapter is set like this (Only IPv4 checked):

Very important to set speed to 10MB Half-Duplex:

Double-check that the above settings are applied to the Ethernet card.

Start Solarwinds TFTP Server, go to File => Configure:

Set timeout to 20 (which is maximum) and retries to 6 and make sure it says "Started" under Status, then notice the server root directory (It's C:\TFTP-Root by default). This is where you need to place the file. You can even rename the file to something more easy like image.itb and put it there.

Now, in U-Boot, over UART, you need to set the vars (one line at a time and please type in manually instead of copy-paste since I had issues when doing copy-paste) and boot the image:

nvram set uart_en=1
nvram set atf=1
nvram set boot_wait=on
nvram commit
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.100
tftpboot 0x44000000 image.itb
bootm

This will boot into OpenWRT from RAM, so it's not yet installed. Once booted, you need to SSH in the router via Ethernet (ssh root@192.168.1.1 or use PuTTy).

Grab the latest sysupgrade file from here (xiaomi_ax9000-squashfs-sysupgrade.bin), use SCP or WinSCP to transfer it to the router on /tmp/ and use sysupgrade to flash OpenWRT on the router storage:

cd /tmp
sysupgrade -n openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin

If this fails, then you might need to do:

uci set system.@system[0].compat_version="1.0"
uci commit system
sysupgrade -n -p -F openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin

Router will reboot and you'll have OpenWRT installed on storage. Please note that this is a minimal installation, so it doesn't have LuCi installed and wireless is disabled by default. You will need to SSH into the router via Ethernet again after flashing and, while router is connected to the internet, do:

opkg update
opkg install luci
reboot

Once router is back, you should be able to access LuCi at 192.168.1.1 in the browser (through Ethernet). User is root with no password. After this you'll need to setup Wireless. Good luck!

The expected result.

I hope that even if it is very basic, someone can use it, so as not to lose the guarantee.

12 Likes

That's thinking outside the box :stuck_out_tongue: Great job!

1 Like

Currently textbin.net seems down so I can't move on further and fix the BDF. It seems I didn't understand the impact of DSA not working for the AX9000. I need 802.1q working but as far as I understand it is not possible until DSA will be supported for AX9000. Is this correct? Thanks!

Can anyone share the textbin.net file please

all errors fixed with your support only 160hz channels not available since bdf file link not working anymore can u share maybe

it worked in the meantime but here's another link https://pastebin.com/tax7ZYye . The switch related question is still important. Thanks

I have a Chinese version and I tried to flash robimarko's image to it. After following the instructions on the wiki, the image is not booting and only the LED on 2.5G port is on. After some attempt, I found out that instead of flashing the "squashfs-factory" image, you use the "initramfs-factory" instead (yeah I know it's for booting only and I am not supposed to flash it, but it works for me for some reason). After reboot, it should start successfully and the LuCI should have a banner saying something like "recovery mode please flash a new firmware". Then you flash the "squashfs-sysupgrade" image through LuCI without retaining the config. After reboot the new image should boot fine. Now gonna try the BDF hack and check the radios...

I am not an expert, but maybe this guide would answer your questions https://openwrt.org/docs/guide-user/network/vlan/switch_configuration ?