| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| inbox:toh:xiaomi:xiaomi_mi_router_4a_gigabit_edition [2023/09/25 15:47] – Fix gbit port filter under [Hardware Highlights] mkrle | inbox:toh:xiaomi:xiaomi_mi_router_4a_gigabit_edition [2024/02/12 13:41] – [Hardware Highlights] revert Version change bill888 |
|---|
| {{media:xiaomi:xiaomi_mi_router_4a_gigabit_edition_transparent.png?200|Xiaomi Mi Router 4A Gigabit Edition}} | {{media:xiaomi:xiaomi_mi_router_4a_gigabit_edition_transparent.png?200|Xiaomi Mi Router 4A Gigabit Edition}} |
| |
| | ===== How to tell the different versions apart ===== |
| | There are multiple versions of the Xiaomi Mi Router 4A, International and Chinese and the method used to install OpenWRT differs. The SKU printed on the box differs according to the year of manufacture. This table is an intent to list them all so as to avoid bricking. |
| | |
| | ^ Model | Mi Router 4A (MIR4A) || | | | | |
| | ^ <color #ffaec9>Alternate model name</color> | R4AC || R4AG |||| |
| | ^ Version | 100M || Gigabit |||| |
| | ^ Target market | [[https://openwrt.org/toh/xiaomi/mi_router_4a_mir4a_100m#photos|Chinese]] | //International?// | Chinese | International | International | ¿? | |
| | ^ SKU | DVB4222CN | DVB4230GL | DVB4218CN | DVB4224GL | ¿? | ¿? | |
| | ^ Firmware | | | | 2.28.132 | [[https://forum.openwrt.org/t/observations-on-xiaomi-mir4ag-newer-firmware/127373/3|2.28.84]] | 2.20.30 | |
| | ^ Firmware language | | English | Chinese | //English?// | | | |
| | ^ Label language | | English | Chinese | //English?// | | | |
| | ^ PCB marking code | M49 R0101 | ¿? | M43 R0101 | | [[https://forum.openwrt.org/t/observations-on-xiaomi-mir4ag-newer-firmware/127373/3|M43 R0201]] | | |
| | ^ Year available | //[[https://openwrt.org/toh/xiaomi/mi_router_4a_mir4a_100m#info|2019]]?// | | 2019 | | 2021 | //2022?// | |
| | ^ Other notes | | | 2019 model is shielded | unshielded since 2020 | | | |
| ===== OpenWrt support ===== | ===== OpenWrt support ===== |
| |
| ---- datatable ---- | <!-- ToH: { |
| cols : Brand, Model, Versions, Supported Current Rel, OEM device homepage URL_url, Forum Search_search-forums, Device Techdata_pageid | "source": "json", |
| headers : Brand, Model, Version, Current Release, OEM Info, Forum Search, Technical Data | "dom": "t", |
| align : c,c,c,c,c,c,c | "paging": false, |
| filter : Model=Mi Router 4A (MIR4A) | "shownColumns": ["brand", "model", "version", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"], |
| filter : Version=Gigabit Edition | "filterColumns": {"model": "^Mi Router 4A \\(MIR4A\\)$", "version": "^Gigabit Edition$"} |
| ---- | } --> |
| |
| |
| The device is the same as MIR3G v2 (which is supported as per the [[https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=522d5ff42835f7ad01c090b9ea1863f5d56b91d3|Git Commit]]), but explicit support was added in commit [[commit>?p=openwrt/openwrt.git;a=commit;h=a51e46e543ef2e923fb97fb092d04355dfca7d7d|a51e46e543ef2e923fb97fb092d04355dfca7d7d]]. | The device is the same as MIR3G v2 (which is supported as per the [[https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=522d5ff42835f7ad01c090b9ea1863f5d56b91d3|Git Commit]]), but explicit support was added in commit [[commit>?p=openwrt/openwrt.git;a=commit;h=a51e46e543ef2e923fb97fb092d04355dfca7d7d|a51e46e543ef2e923fb97fb092d04355dfca7d7d]]. |
| |
| The new EON/cFeon EN25QX128A chip support was added by "[[commit>?p=openwrt/openwrt.git;a=commit;h=d7876daf6552a9f39bd5e0bf50b554e9406ec275|generic: add support for EON EN25QX128A spi nor flash]]", and is backported to 22.03 and 21.02. | The new EON/cFeon EN25QX128A chip support was added by "[[commit>?p=openwrt/openwrt.git;a=commit;h=d7876daf6552a9f39bd5e0bf50b554e9406ec275|generic: add support for EON EN25QX128A spi nor flash]]". It is supported starting from 22.03.3 and 21.02.6 stable releases. |
| |
| |
| </code> | </code> |
| | |
| ===== Notes on firmware exploit procedure ===== | ==== Installation via Software exploit ==== |
| | |
| | The OpenWRTInvasion is an exploit that allows to get a shell access to the router. You will be able to connect with Telnet, SSH and FTP. Then you can upload OpenWrt image and overwrite the stock firmware. |
| | |
| | Find the instructions in the [[https://github.com/acecilia/OpenWRTInvasion|OpenWRTInvasion repository]] and a video guide can be found here: [[https://youtu.be/VxzEvdDWU_s|Installing OpenWrt on the Xiaomi 4A, 4C, 3Gv2, 4Q, miWifi 3C and debrick method OLD VERSION]] or a new version [[https://www.youtube.com/watch?v=SLbkce-M2nE|Installing OpenWrt on the Xiaomi 4A, 4C, 3Gv2, 4Q, miWifi 3C and debrick method New 2022]]. |
| | |
| | === Notes on firmware exploit procedure === |
| | Some instructions that may help you: |
| |
| * To get stok | * To get stok |
| * Reset router if necessary to restore default settings. | * Reset router if necessary to restore default settings. |
| * Connect computer to ethernet LAN port. | * Connect computer to Ethernet LAN port. |
| * connect xiaomi router to the internet with the wan port | * Connect Xiaomi router to the internet with the wan port |
| * enter 192.168.31.1 | * Open in a browser http://192.168.31.1 |
| * configure device | * Configure device |
| * select language, accept terms | * select language, accept terms |
| * Enter a wifi password (that is the admin password) | * Enter a wifi password (that is the admin password) |
| * go to 192.168.31.1 and enter the root password | * go to http://192.168.31.1 and enter the root password |
| * when you are in, your link changed and now it have a part with something similar to ''stok=3700b146c87e45fea51170f87f47d34c'' | * when you are in, your link changed and now it have a part with something similar to ''stok=3700b146c87e45fea51170f87f47d34c'' |
| * ''git clone https://github.com/acecilia/OpenWRTInvasion'' | * ''git clone https://github.com/acecilia/OpenWRTInvasion'' |
| |
| <code>Could not open mtd device: OS1 | <code>Could not open mtd device: OS1 |
| Can't open device for writing! </code> | Can't open device for writing!</code> |
| |
| You can run ''cat /proc/mtd'' to check the flash layout. In this case, your router is having a different flash layout and you should not proceed with the installation using mtd. | You can run ''cat /proc/mtd'' to check the flash layout. In this case, your router is having a different flash layout and you should not proceed with the installation using mtd. |
| ===== Installation ===== | ===== Installation ===== |
| /* stable release table - used instead of previous snapshot table */ | /* stable release table - used instead of previous snapshot table */ |
| ---- datatable ---- | <!-- ToH: { |
| cols : Model, Versions, Supported Current Rel, Firmware OpenWrt Install URL_url, Firmware OpenWrt Upgrade URL_url, Firmware OEM Stock URL_url, Device Techdata_pageid | "source": "json", |
| headers : Model, Version, Current Release, Firmware OpenWrt Install, Firmware OpenWrt Upgrade, Firmware OEM Stock, Technical Data | "dom": "t", |
| align : c,c,c | "paging": false, |
| filter : Brand=Xiaomi | "rotate": true, |
| filter : Model=Mi Router 4A (MIR4A) | "shownColumns": ["model", "version", "supportedcurrentrel", "firmwareopenwrtinstallurl", "firmwareopenwrtupgradeurl", "firmwareoemstockurl", "deviceid"], |
| filter : Version=Gigabit Edition | "filterColumns": {"brand": "^Xiaomi$", "model": "^Mi Router 4A \\(MIR4A\\)$", "version": "^Gigabit Edition$"} |
| ---- | } --> |
| |
| **OpenWrt Factory Firmware:** Use this file the first time you flash OpenWrt onto the router - i.e. use with the above mentioned exploit / install method. \\ | **OpenWrt Factory Firmware:** Use this file the first time you flash OpenWrt onto the router - i.e. use with the above mentioned exploit / install method. \\ |
| **OEM Stock Firmware:** The above mentioned exploit provides a stock firmware image in its repository.\\ | **OEM Stock Firmware:** The above mentioned exploit provides a stock firmware image in its repository.\\ |
| |
| | ==== Flash Layout ==== |
| | This is the Flash layout under the 2.28.62 OEM firmware, after using OpenWRTInvasion to get //root// access. |
| | |
| | ^ Xiaomi Mi Router 4A (100M, Chinese version) Flash Layout ||||||||||| |
| | ^ Layer0 | [[wp>Serial Peripheral Interface Bus|spi]]0.0: [[https://pdf1.alldatasheet.com/datasheet-pdf/download/1151510/GIGADEVICE/GD25Q127CSIG.html|25Q127CSIG]] 16384KiB |||||||||| |
| | ^ Layer1 | mtd0 **//ALL//** 16384KiB |||||||||| |
| | ^ Layer2 | mtd1 **//Bootloader//** 192KiB | mtd2 **//Config//** 64KiB | mtd3 **//Bdata//** 64KiB | mtd4 **//Factory//** 64KiB | mtd5 **//crash//** 64KiB | mtd6 **//cfg_bak//** 64KiB | mtd7 **//overlay//** 1024KiB | mtd8 **//OS1//** 13312KiB || mtd10 **//disk//** 1536KiB | |
| | | **Layer2 boundaries** | 0x0000000-0x0030000 | 0x0030000-0x0040000 | 0x0040000-0x0050000 | 0x0050000-0x0060000 | 0x0060000-0x0070000 | 0x00070000-0x00080000 | 0x00080000-0x00180000 | 0x00180000-0x00e80000 || 0x00e80000-0x01000000 | |
| | ^ Layer3 | | | | | | | | //firmware_partition// 1856KiB | mtd9 **//rootfs//** 11456KiB | | |
| | | **Layer3 boundaries** | | | | | | | | 0x0180000-0x0350000 | 0x0350000-0x0e80000 | | |
| | ^ Size in KiB | 192KiB | 64KiB | 64KiB | 64KiB | 64KiB | 64KiB | 1024KiB | 1856KiB | 11456KiB | 1536KiB | |
| | ^ Name | **//Bootloader//** | **//Config//** | **//Bdata//** | **//Factory//** | **//crash//** | **//cfg_bak//** | **//overlay//** | **//firmware_partition//** | **//rootfs//** | **//disk//** | |
| | ^ <color magenta>mountpoint</color> | //none// | //none// | //none// | //none// | //none// | //none// | ''/etc''''/data''''/mnt'' | //none// | ''/'' | | |
| | ^ filesystem | //unknown// | //unknown// | //unknown// | //unknown// | //unknown// | //unknown// | [[docs:techref:filesystems#JFFS2]] | | [[docs:techref:filesystems#SquashFS]] | [[docs:techref:filesystems#JFFS2]] | |
| | |
| | ***Note*** The partitions "mtd1 **//config//**", "mtd5 **//caldata//**", "mtd6 **//unkown//**" and "mtd8 **//caldata_copy//**" contain vendor specific raw (without filesystem) config values about your router, like WiFi calibration data, MAC addresses, etc. It's a good idea to [[docs:guide-user:installation:generic.backup|make a backup from them]]. |
| | |
| | ***Note2*** You can check mtd partitions of your router yourself by using commands "''cat /proc/mtd''" and "''dmesg''". Refer to [[https://www.mail-archive.com/kernelnewbies@nl.linux.org/msg02774.html|this link]]. |
| ===== Debricking ===== | ===== Debricking ===== |
| Using Mi Wifi Repair tool: | Using Mi Wifi Repair tool: |
| |
| ===== Hardware Highlights ===== | ===== Hardware Highlights ===== |
| ---- datatable ---- | <!-- ToH: { |
| cols : Model, Versions, CPU, CPU MHz, CPU Cores_numcores_,Flash MB_mbflashs, RAM MB_mbram, WLAN Hardware, WLAN 2.4GHz, WLAN 5.0GHz, Ethernet 100M ports_, Ethernet 1Gbit ports_, Modem, USB ports_ | "source": "json", |
| header : Model, Version,SoC,CPU MHz,CPU Cores,Flash MB,RAM MB,WLAN Hardware,WLAN2.4,WLAN5.0,100M ports,Ethernet 1Gbit ports,Modem,USB | "dom": "t", |
| align : c,c,c,c,c,c,c,c,c,c,c,c,c | "paging": false, |
| filter : Model=Mi Router 4A (MIR4A) | "rotate": true, |
| filter : Version=Gigabit Edition | "shownColumns": ["model", "version", "cpu", "cpumhz", "cpucores", "flashmb", "rammb", "wlanhardware", "wlan24ghz", "wlan50ghz", "ethernet100mports", "ethernet1gports", "modem", "usbports"], |
| ---- | "filterColumns": {"model": "^Mi Router 4A \\(MIR4A\\)$", "version": "^Gigabit Edition$"} |
| | } --> |
| |
| |
| Here are pictures of the **chinese** version which ships with chinese language firmware v2.x. The earliest **Global** international model is labelled the '**Giga**' version (SKU: DVB4224GL, Model R4A) which shipped with v2.28.132, upgradable to v3.0.x. A revised Global international model is labelled the '**Gigabit**' version shipped with v3.x firmware. | Here are pictures of the **chinese** version which ships with chinese language firmware v2.x. The earliest **Global** international model is labelled the '**Giga**' version (SKU: DVB4224GL, Model R4A) which shipped with v2.28.132, upgradable to v3.0.x. A revised Global international model is labelled the '**Gigabit**' version shipped with v3.x firmware. |
| |
| ^ Retail box (chinese) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-case.jpg|Xiaomi Mi Router 4A Gigabit Edition retail box}} | | ^ Retail box (chinese) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-case.jpg|Xiaomi Mi Router 4A Gigabit Edition retail box}} | |
| ^ Top view | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-top.jpg|Xiaomi Mi Router 4A Gigabit Edition top view}} | | ^ Top view | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-top.jpg|Xiaomi Mi Router 4A Gigabit Edition top view}} | |
| ^ Rear view | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-back.jpg|Xiaomi Mi Router 4A Gigabit Edition rear view}} | | ^ Rear view | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-back.jpg|Xiaomi Mi Router 4A Gigabit Edition rear view}} | |
| ^ Bottom view (chinese) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-bottom.jpg|Xiaomi Mi Router 4A Gigabit Edition bottom view}} | | ^ Bottom view (chinese) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-edition-bottom.jpg|Xiaomi Mi Router 4A Gigabit Edition bottom view}} | |
| | Label (R4A Giga) | {{media:xiaomi:xiaomi-mi-router-4a-giga-global-label.jpg?600|Xiaomi Mi Router 4A Giga label view}} | | ^ Label (R4A Giga, first international version) | {{media:xiaomi:xiaomi-mi-router-4a-giga-global-label.jpg?600|Xiaomi Mi Router 4A Giga label view}} | |
| | Label (R4A Gigabit) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-global-label.jpg?600|Xiaomi Mi Router 4A Giga label view}} | | ^ Label (R4A Gigabit, revised International version) | {{media:xiaomi:xiaomi-mi-router-4a-gigabit-global-label.jpg?600|Xiaomi Mi Router 4A Giga label view}} | |
| |
| //**BOARD**// | //**BOARD**// |
| |
| ==== Unable to install OpenWrt to new R4A 'Gigabit' edition ==== | ==== Unable to install OpenWrt to new R4A 'Gigabit' edition ==== |
| | |
| | **<color #ed1c24>Update (2023)</color>**: EON EN25QX128 flash chip is supported starting from 22.03.3 and 21.02.6 stable releases. |
| | |
| [[https://forum.openwrt.org/t/xiaomi-r4a-gigabit-upgrade-to-squashfs-sysupgrade-bin-from-initramfs-kernel-bin/122334/25|New EON EN25QX128 flash chip found in Chinese Language firmware model]] | [[https://forum.openwrt.org/t/xiaomi-r4a-gigabit-upgrade-to-squashfs-sysupgrade-bin-from-initramfs-kernel-bin/122334/25|New EON EN25QX128 flash chip found in Chinese Language firmware model]] |
| [[https://forum.openwrt.org/t/xiaomi-4a-3-gigaport-cannot-flash-openwrt-21/122878|Second reported case found in Chinese Language firmware model]] [[https://forum.openwrt.org/t/new-xiaomi-4c-cannot-install-openwrt-flash-chip-changed-to-en25qx128a/|Same flash chip (EON EN25QX128A, ID 1c7118) found in a new 4C]] | [[https://forum.openwrt.org/t/xiaomi-4a-3-gigaport-cannot-flash-openwrt-21/122878|Second reported case found in Chinese Language firmware model]] [[https://forum.openwrt.org/t/new-xiaomi-4c-cannot-install-openwrt-flash-chip-changed-to-en25qx128a/|Same flash chip (EON EN25QX128A, ID 1c7118) found in a new 4C]] |