Xiaomi WiFi Router 3G

Where can i find a good working sysupgrade.bin that i can flash with luci?
I am confused because here https://lede-project.org/toh/hwdata/xiaomi/xiaomi_miwifi_3g i only find a sysupgrade.tar

Use the sysupgrade.tar to upgrade. It works.

Is there any change to flash lede on this router without needing to do the long manufacturer-process:

  1. learn chinese
  2. register
  3. learn more chinese
  4. get the dev rom and flash
  5. show your chinese skills
  6. download a untrusty app and install on your phone
  7. and so on.....

ok it worked Thanks.
but all settings and scripts are gone... much to do...

This is one of the reasons I compile the image with ImageBuilder, so that all of my settings and additional luci-apps would still intact after upgrade.

ok thank you i will try this.

I used this video (https://www.youtube.com/watch?v=fKlEKfQqC2w&vl=en) to get me through the Chinese menus and it was not easy. Note that it also is not the procedure to flash Lede; but it was helpful when I was following the instructions in the OP when attempting to find where to flash the developer firmware in step 8.

For me 2.4GHz WiFi is very unstable. I don't know what to do.

In Syslog i get this message: "disconnected due to excessive missing ACKs". I tried "disassoc_low_ack" in wireless config and this error is gone from my logs, but WiFi is still unstable. While this I can ping websites, but they are not accesible from any browser. Ethernet is file, 5Ghz band also, just this 2.4Ghz band... Disabling WMM (only for 2.4) solves my problem, but it slows down my internet dramatically. Please tell me what I can do to resolve this issue.

I experienced exactly same problem with 7-years old D-Link router.
For me it happens sometime, when I disable and enable Wi-Fi in LuCI (for example, when changing config).
But reboot always helps.

Also, with same D-Link I experiencing very strange problem - when I enable static IP from my provider my WiFi stops working completely after 5-10 minutes when I connect any Wi-Fi device (disabling and enabling won't help), and then it looks like router CPU is overloaded (it is very unresponsive and network is extremly slow and only reboot helps until next Wi-Fi connect).
But after disabling static IP and receiving dynamic IP all problems disappears.
Don't know, how it even technically possible, but it is.
Maybe there are very rare undiscovered bugs in LEDE/OpenWrt.

Does anyone happen to have experience with both this device and the DIR-860L? I'm wondering whether the newer wifi chips are worth the upgrade. Seeing the complaints about unstable 2.4ghz wifi I'd think not, but if someone has experience with both it would be very appreciated to have a direct comparison :slight_smile:

My WAN is static too, but only becouse router (MiR3G) can't resolve adress by itself via DHCP. My old TP-Link on OpenWrt doesn't have any problem with DHCP over WAN. On stock firmware same...

DHCP only works when i connect my Mi Router to TP-Link's LAN port.

EDIT: I changed MAC addr to MAC of TP-Link and DHCP is working now. Now i will test Wifi stability.

Have you been able to unbrick? i have the same problem.
thanks

Yes I have unbricked the router with a serial cable.

If I remember correctly, I changed the boot parameter again to kernel0, had a working kernel0 partition, and put a stock mi-r3g image on a fat formatted usb stick.
Now reboot the router with the usb stick put in.

To change boot parameter to kernel0 I run
setenv flag_last_success=0
in Uboot cmdline.

1 Like

tried that code, still the same thing

i get this on console

[    5.585573] ubi0: background thread "ubi_bgt0d" started, PID 373
[    5.585598] hctosys: unable to open rtc device (rtc0)
[    5.597112] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    5.604583] Please append a correct "root=" boot option; here are the available partitions:
[    5.612915] 1f00             512 mtdblock0 [    5.616901]  (driver?)
[    5.619251] 1f01             256 mtdblock1 [    5.623245]  (driver?)
[    5.625597] 1f02             256 mtdblock2 [    5.629579]  (driver?)
[    5.631941] 1f03             256 mtdblock3 [    5.635925]  (driver?)
[    5.638274] 1f04             256 mtdblock4 [    5.642273]  (driver?)
[    5.644626] 1f05             256 mtdblock5 [    5.648607]  (driver?)
[    5.650969] 1f06             256 mtdblock6 [    5.654952]  (driver?)
[    5.657301] 1f07            4096 mtdblock7 [    5.661294]  (driver?)
[    5.663646] 1f08            4096 mtdblock8 [    5.667628]  (driver?)
[    5.669976] 1f09          120320 mtdblock9 [    5.673970]  (driver?)
[    5.676322] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    5.686848] Rebooting in 1 seconds..

i'm having the same error, how did ou boot the stock firmware? setenv flag_last_success=0 don't work
Thanks

Out of curiosity, are iperf results totally inconsistent or are they fine on this router?

I did also struggle a bit to make it boot the stock kernel.
There is a description in this commit https://github.com/lede-project/source/commit/f2107fc328ff7f9817fe9ca64f84bba9e32abfc6 if you search for the section "uboot behaviour & system 'recovery'". I think I modified both flag_try_sys1_failed & flag_try_sys2_failed and maybe also flag_last_success to make it boot the stock kernel. And as far as I remember it only booted the stock firmware once and then reverted to my broken lede kernel because I forgot to hold the reset button when rebooting. Then I had to change the nvram flags again, reboot - this time holding the reset button until it started flashing the .bin file from my usb drive.
Maybe this is not 100% correct but it was a while ago and it was in the middle of the night.
Good luck recovering your rooter.

1 Like

You are not alone, but the problem is not the Xiaomi in special but the mediatek chipset. In addition have a Netgear R6220 (same cpu+wifi chipsets) with exactly the same behaviour.


Now my router is bricked… first, led is orange for 10sec than the led blinks one time blue to get orange again for 5 sec than led turns off for less than a sec and the whole process begins from the beginning…

[ 5.486107] ubi0: scanning is finished
[ 5.505873] ubi0: attached mtd9 (name “ubi”, size 117 MiB)
[ 5.511401] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 5.518241] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[ 5.525012] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 5.531956] ubi0: good PEBs: 940, bad PEBs: 0, corrupted PEBs: 0
[ 5.537932] ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
[ 5.545136] ubi0: max/mean erase counter: 4/2, WL threshold: 4096, image sequence number: 719383500
[ 5.554156] ubi0: available PEBs: 916, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
[ 5.563454] ubi0: background thread “ubi_bgt0d” started, PID 353
[ 5.563475] hctosys: unable to open rtc device (rtc0)
[ 5.574963] VFS: Cannot open root device “(null)” or unknown-block(0,0): error -6
[ 5.582439] Please append a correct “root=” boot option; here are the available partitions:
[ 5.590800] 1f00 512 mtdblock0 [ 5.594791] (driver?)
[ 5.597143] 1f01 256 mtdblock1 [ 5.601149] (driver?)
[ 5.603503] 1f02 256 mtdblock2 [ 5.607485] (driver?)
[ 5.609834] 1f03 256 mtdblock3 [ 5.613834] (driver?)
[ 5.616187] 1f04 256 mtdblock4 [ 5.620169] (driver?)
[ 5.622542] 1f05 256 mtdblock5 [ 5.626526] (driver?)
[ 5.628876] 1f06 256 mtdblock6 [ 5.632875] (driver?)
[ 5.635228] 1f07 4096 mtdblock7 [ 5.639210] (driver?)
[ 5.641583] 1f08 4096 mtdblock8 [ 5.645568] (driver?)
[ 5.647917] 1f09 120320 mtdblock9 [ 5.651917] (driver?)
[ 5.654269] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 5.664701] Rebooting in 1 seconds…

I've been able to unbrick, what i did was:

1 - Conect to Serial
2 - type 4 to enter command prompt
3 - type this commands:
setenv flag_try_sys1_failed=0 (check if flag name is correct with printenv)
setenv flag_try_sys2_failed=0 (check if flag name is correct with printenv)
setenv flag_last_success=0
saveenv
4 - connect pendrive with original stock dev firmware renamed to miwifi.bin
5 - default brick recovery process: reboot pressing reset button until yellow led start flashing, then release reset button.
6 - wait completion
7 - Done.

Thanks Hammer and Rising_sun for the help.

1 Like

hi everybody:
Today I was trying to flash my miwifi 3g with lede,but unfortunately I had my usb port broken, I plug a bad usb disk on it by mistake and after that the usb port not function :scream:
I'm wondering if there is any way to flash lede without usb port? I can connect the uart ,but the stock firmware did not allow write by default (uart_en 0),so I can't interrupt the u-boot and choose from the u-boot menu.I have flashed the developer rom in it(miwifi_r3g_firmware_c2175_2.25.122.bin),but not flash miwifi_ssh.bin yet. any help?
BTW,I saw a SPI pad on the board,so I think it can be used for SPI boot, if so, that would be easy to flash rom with cheap SPI flash programers, Does anyone have interest and work on it?