OpenWrt support for Xiaomi AX3000T

Yes, for RD23, it was necessary in my case.
After I performed the last step of the OpenWrt installation with ubiformat for ..ax3000t-initramfs-factory.ubi, I did a basic router configuration and rebooted the router a few times. After one of the reboots, the router didn't load quickly, but instead the orange light blinked for a long time, and after that it loaded with the default OpenWrt configuration. It was unexpected for me.

I investigated fw_printenv and found that I had:

flag_try_sys1_failed=1
flag_try_sys2_failed=6

After several trial and errors I detected that:

  1. reset to default occurs if I changing flag_try_sys2_failed to any value.
  2. reset to default occurs if I changing flag_try_sys1_failed to ≥ 5 (and for 8 too!).

I have the following explanation based on this bootloader code for AX3000T shared by @remittor (please feel free to correct me if I'm wrong):

  • In Xiaomi routers (new versions) if boot occurs from non-official firmware, after each reboot router adds +1 to counter for flag_try_sys1_failed. If router reaches flag_try_sys1_failed=6, it switch loading from firmware=0 to firmware=1, and tries to boot from another partition (firmware=1). But because after OpenWrt installation I have only mtd8 (and no mtd9), router 6 times tried to load from firmware=1 (it can explain the flag_try_sys2_failed=6 and pretty long boot), and again switching back to load from firmware=0 with default OpenWrt settings. That's why it's important to set fw_setenv flag_try_sys1_failed 0 into /etc/rc.local for RD23.

I do not think so. Otherwise it would also be mentioned in the wiki for the AX3000T RD03.

2 Likes