Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
inbox:toh:xiaomi:xiaomi_redmi_ax6_ax3000 [2022/07/01 14:24] – [Experimental firmware] kingczeinbox:toh:xiaomi:xiaomi_redmi_ax6_ax3000 [2024/08/07 00:41] – [Potential issues / Limitations] jiejianshiwaxinge
Line 1: Line 1:
 ====== Xiaomi Redmi AX6 Wi-Fi 6 Mesh Router====== ====== Xiaomi Redmi AX6 Wi-Fi 6 Mesh Router======
-~~NOTOC~~ 
- 
 /* This template is intended to be used via https://openwrt.org/meta/create_new_device_page . */ /* This template is intended to be used via https://openwrt.org/meta/create_new_device_page . */
  
-{{page>meta:infobox:construction&noheader&nofooter&noeditbtn}}+/* {{page>meta:infobox:construction&noheader&nofooter&noeditbtn}} +/ 
 + 
 + 
 +/*****/ 
 +/* How to add images ========> https://openwrt.org/meta/adding_images_to_openwrt_wiki */ 
 +/*****/
  
 Xiaomi Redmi AX6 is a Wi-fi 6 (802.11ax) capable mesh router, with 4+2 core ARM CPU, 512MB RAM, 128MB flash and 1+3 gigabit capable ethernet ports. Xiaomi Redmi AX6 is a Wi-fi 6 (802.11ax) capable mesh router, with 4+2 core ARM CPU, 512MB RAM, 128MB flash and 1+3 gigabit capable ethernet ports.
  
-{{media:xiaomi:xiaomi_ax6_ax3000_back.jpg?400|}} {{media:xiaomi:xiaomi_ax6_ax3000_front.jpg?400 |}} 
-===== OpenWrt support ===== 
  
-<color red>**Not supported.**</color> 
  
 +{{  media:xiaomi:xiaomi_ax6_ax3000_front.jpg?400|}}
  
 +The Xiaomi Redmi AX6 Router is an 802.11ax OFDMA and MU-MIMO Dual-Band WiFi router, which has the following WiFi Interfaces.:
  
-===== Supporting activities ===== +  * one 2.4GHz (QCN5024 2x2/40MHz ax) 
-//Describe if there are any ongoing activities that might lead to OpenWrt support.//+  * one 5GHz (QCN5054 4x4/80 or 2x2/160MHz ax)
  
-  * OpenWrt forum thread: [[https://forum.openwrt.org/t/add-support-for-redmi-ax6-ax3000-wi-fi-6-mesh-router/76071]] +The radios support up to 4K QAM (through MCS0 MCS15), for devices and paths that are compatible with those high-density modulationsSupports DFS channels, from channel 36 up to 165 (may vary on each region).
-  * China Openwrt installation [[https://www.acwifi.net/14253.html]]+
  
 +This is a router based on a Qualcomm IPQ8071A / QCA8074 V2 4-core SoC (up to 1.4GHz).
  
 +It has three 1G LAN ports, one 1G WAN port and 6 non-detachable external antennas. 
  
 + Xiaomi is shipping the router only in a variant with Chinese OEM firmware. The router has support for OpenWrt. 
  
  
-===== Experimental firmware =====+===== OpenWrt support =====
  
-At the time there is an experimental fork with support for this device.+Supported since [[commit>8253cb2de59aff81e576ea2655b1d290e4098001]] 
 +<!-- ToH: { 
 +  "source": "json", 
 +  "dom": "t", 
 +  "paging": false, 
 +  "shownColumns": ["brand", "model", "supportedcurrentrel", "oemdevicehomepageurl", "forumsearch", "deviceid"], 
 +  "filterColumns": {"brand": "^Xiaomi$", "model": "^Redmi AX6$"
 +} -->
  
-  Robimarko's fork: https://github.com/robimarko/openwrt/tree/ipq807x-5.15-pr you can get ready to install images build from this fork [[https://github.com/robimarko/openwrt/releases|here]]+==== Potential issues / Limitations ====  
 +  The ''sysupgrade'' command may fail due to a [[https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/9156|random issue]] of ''wpad'' not being effectively stopped while upgrading Openwrt. **Stopping the wpad service with ''service wpad stop'' before doing the ''sysupgrade'' fixes the issue**. 
 +  * Ath11k memory: The ath11k driver needed for the main wireless radios uses a lot of memory when there are few stations connected and low bandwidth traffic flowing.After testing, this problem has been improved in version 23.05.4. 
 +  * NSS acceleration: the Qualcom NSS hardware acceleration is not available and maybe never will be. There is a community effort to enable it [[https://forum.openwrt.org/t/ipq807x-nss-build/148529|in the forum]] but this does not guarantee that it will be officially supported in the future. 
 +  * The IPQ807x target has not yet support for [[:docs:guide-user:network:dsa:dsa-mini-tutorial|DSA]], on OpenWrt: [[https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/9060|See this forum post]]. The regular DSA instructions on [[:docs:guide-user:network:dsa:dsa-mini-tutorial|the mini tutorial]] do demonstrably work however; wireless interfaces need to be set up in the Network->Wireless section and then be bridged in their Interface Configuration->General Setup->Network menu to connect them to wired interfaces, and the contributor making this statement only uses tagged VLANs on the wired ports. 
 + 
 +===== Supporting activities ===== 
 + 
 +  * OpenWrt forum thread: [[https://forum.openwrt.org/t/add-support-for-redmi-ax6-ax3000-wi-fi-6-mesh-router/76071]] 
 +  * China Openwrt installation [[https://www.acwifi.net/14253.html]] 
 +  * Experimental community OpenWrt with NSS acceleration support [[https://forum.openwrt.org/t/ipq807x-nss-build/148529]]
  
-Potential issues: 
-  * Ath11k memory: With some (older) firmware versions, the ath11k driver needed for the main wireless radios uses a lot of memory when there are few stations connected and low bandwidth traffic flowing. Getting a recent version using the link immediately above will resolve this problem. 
-  * Some packages/apps (and/or dependencies) may not be available for installation from Software/Update List on this device yet. You can, however, compile your own firmware together with the packages/apps of your choice. 
  
  
 ===== Hardware highlights ===== ===== Hardware highlights =====
-^ CPU                                      ^ Ram      ^ Flash      ^ Network       ^ WLAN2.4     ^WLAN5.0   ^ USB    ^ Serial   ^ JTag   ^ +<!-- ToH: { 
-| Qualcomm IPQ8071A 4core A53 1.4GHz    512 MiB   128 MiB   4x 10/100/1000  |  b/g/n     | a/n/ac/ax |  No    |   Yes    |   ?    |+  "source": "json", 
 +  "dom": "t", 
 +  "paging": false, 
 +  "rotate": true, 
 +  "shownColumns": ["model", "cpu", "cpumhz", "cpucores", "flashmb", "rammb", "wlanhardware", "wlan24ghz", "wlan50ghz", "ethernet1gports", "usbports"], 
 +  "filterColumns": {"brand": "^Xiaomi$", "model": "^Redmi AX6$"
 +} -->
  
 +==== More Info ====
 +
 +<!-- ToH: {
 +  "source": "json",
 +  "dom": "t",
 +  "paging": false,
 +  "rotate": true,
 +  "shownColumns": ["brand", "model", "version", "devicetype", "availability", "supportedsincecommit", "supportedsincerel", "supportedcurrentrel", "unsupported_functions", "bootloader", "target", "cpumhz", "flashmb", "rammb", "switch", "ethernet100mports", "ethernet1gports", "commentsnetworkports", "modem", "vlan", "wlan24ghz", "wlan50ghz", "wlanhardware", "wlancomments", "detachableantennas", "usbports", "sataports", "commentsusbsataports", "serial", "jtag", "ledcount", "buttoncount", "powersupply", "deviceid", "owrt_forum_topic_url", "wikideviurl", "oemdevicehomepageurl", "firmwareoemstockurl", "firmwareopenwrtinstallurl", "firmwareopenwrtupgradeurl", "comments"],
 +  "filterColumns": {"brand": "^Xiaomi$", "model": "^Redmi AX6$"}
 +} -->
 +
 +=== Notes ===
 +   * Flash chips known is ESMT F59D1G81MB-AZM1P9ACX. Maybe there are more variations of Flash Chips soldered on it. Needs more investigation.
 +   * Stock partitioning assumes ~35M size for each of `rootfs` MTD partitions, and ~30M for `overlay` MTD partition (and even with that, mounted `/overlay` partition somewhy only have size of 15M)
  
 ===== Installation ===== ===== Installation =====
Line 48: Line 86:
   - → [[:downloads|Latest OpenWrt release]]   - → [[:downloads|Latest OpenWrt release]]
 ***/ ***/
 +
 +==== Firmware download ====
 +/* snapshot table  */
 +<!-- ToH: {
 +  "source": "json",
 +  "dom": "t",
 +  "paging": false,
 +  "rotate": true,
 +  "shownColumns": ["model", "supportedcurrentrel", "firmwareopenwrtsnapshotinstallurl", "firmwareopenwrtsnapshotupgradeurl"],
 +  "filterColumns": {"brand": "^Xiaomi$", "model": "^Redmi AX6$"}
 +} -->
 +
 +<WRAP round info>
 +Snapshot versions don't have ''luci'' installed. If you want it, you can create your own customized firmware using for example the [[https://firmware-selector.openwrt.org/|Firmware selector]] or you can install the package once installed (look at this guide [[docs:guide-user:luci:luci.essentials|LuCI essentials]]).
 +</WRAP>
  
 ==== Installing OpenWrt ==== ==== Installing OpenWrt ====
  
-To flash this image there is a need for SSH access to the OEM firmware. It is not possible for now to flash OpenWRT from the stock FW with the OpenWRT Factory image. +To flash this image there is a need for SSH access to the OEM firmware. It is not possible for now to flash OpenWrt from the stock FW with the OpenWrt Factory image. 
-To gain SSH access, you will need a second router (any device) with OpenWRT firmware (further refered to as Router B).+To gain SSH access, you will need a second router (any device) with OpenWrt firmware (further refered to as Router B).
  
 === SSH Access === === SSH Access ===
Line 115: Line 168:
 After getting SSH access, you will now be able to flash a previously compiled image (by you since for the time being there are no official automated images): After getting SSH access, you will now be able to flash a previously compiled image (by you since for the time being there are no official automated images):
  
-  - Copy the OpenWrt generated image (the ''openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.ubi'' one) to the ''/tmp'' folder over SCP for example+  - Copy the OpenWrt generated image (the ''openwrt-ipq807x-generic-xiaomi_ax6-initramfs-nand-factory.ubi'' one) to the ''/tmp'' folder over SCP for example (note that since OpenSSH 9.0 you have to add the `-O` for compatability with the dropbear server)
   - This is a device with a dual partition scheme layout, so you need to find out which one is running with the command <code>nvram get flag_boot_rootfs</code>   - This is a device with a dual partition scheme layout, so you need to find out which one is running with the command <code>nvram get flag_boot_rootfs</code>
   - The output should be the partition number where the current system was booted from <code>mtd12: 023c0000 00020000 "rootfs"  - is the 0   - The output should be the partition number where the current system was booted from <code>mtd12: 023c0000 00020000 "rootfs"  - is the 0
 mtd13: 023c0000 00020000 "rootfs_1"  - is the 1</code> mtd13: 023c0000 00020000 "rootfs_1"  - is the 1</code>
   - Since you can't flash the current partition because it's locked you can only flash the opposite one by replacing the ''mtd'' number in the following command <code>   - Since you can't flash the current partition because it's locked you can only flash the opposite one by replacing the ''mtd'' number in the following command <code>
-ubiformat /dev/mtd12 -f /tmp/openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.ubi -s 2048 -O 2048+ubiformat /dev/mtd12 -f /tmp/openwrt-ipq807x-generic-xiaomi_ax6-initramfs-nand-factory.ubi -s 2048 -O 2048
 </code> </code>
   - After flashing the image you need to configure the u-boot to boot from the recently flashed image by replacing the ''1'' with the number of the opposite partition (1 or 0) and running the commands:<code>   - After flashing the image you need to configure the u-boot to boot from the recently flashed image by replacing the ''1'' with the number of the opposite partition (1 or 0) and running the commands:<code>
Line 132: Line 185:
 reboot reboot
 </code> </code>
-  - After the router boots it should be running the OpenWrt image, but now you need to flash the other partition to be able to sysupgrade without soft-bricking your router by replacing the ''mtd'' number with the one of the opposite partition with the command <code>ubiformat /dev/mtd13 -/tmp/openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.ubi -s 2048 -O 2048</code> +  - Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue with the next steps in order to permanently flash OpenWrt.  
-  - After this you can flash future OpenWrt images/upgrades as usual+  - SSH into OpenWrt from one of the LAN ports 
 +  Copy the file ''openwrt-ipq807x-generic-redmi_ax6-squashfs-sysupgrade.bin'' to the /tmp directory 
 +  - Sysupgrade the device:<code>sysupgrade -/tmp/openwrt-ipq807x-generic-redmi_ax6-squashfs-sysupgrade.bin</code> 
 + 
 +Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Although, see [[#potential_issueslimitations|potential issues limitations]].
  
-<WRAP info> 
-Sysupgrade does work, but for now there is currently a know issue where you need to flash the device two or more times (via sysupgrade) for the firmware to be upgraded, it should be fixed in the official firmware 
-</WRAP> 
  
 <WRAP info> <WRAP info>
Line 165: Line 219:
 These are the steps to do it for Linux (this can be adapted to the tftpd64's graphical interface very easily): These are the steps to do it for Linux (this can be adapted to the tftpd64's graphical interface very easily):
  
-  * Create a folder somewhere to place your firmware for the tftp server and download the OEM firmware (the file name is a very important part):<code>mkdir -p /tmp/tftp+  * Create a folder somewhere to place your firmware for the tftp server and download the OEM firmware (the file name is a very important part; if you have previously had installed Xiaomi firmware version 1.1.14, you might need to adjust the name of the .img file to a different one. The router will be looking for a specific file name on the tftp – if it does not match the one you have in the tmp folder, rename it accordingly and proceed again):<code>mkdir -p /tmp/tftp
 wget https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra69/miwifi_ra69_all_81ac71_1.1.10.bin -O /tmp/tftp/C0A81F02.img</code> wget https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra69/miwifi_ra69_all_81ac71_1.1.10.bin -O /tmp/tftp/C0A81F02.img</code>
-  * Set a static address on your PC to serve the firmware from:<code>sudo ip address flush dev <adapter name>+  * To ensure that the TFTP server has access to the firmware, set the privileges:<code>sudo chmod -R 755 /tmp/tftp 
 +sudo chown -R nobody:nogroup /tmp/tftp</code> 
 + 
 +  * Obtain the name of the ethernet adapter (to be used in further steps):<code>ip link</code> 
 +  * The result will loke something like (in this case, the name of the ethernet adapter is enp2s0):<code>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 
 +    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
 +2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 
 +    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 
 +3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 
 +    link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff</code> 
 +  * Set a static address on your PC to serve the firmware from: <code>sudo ip address flush dev <adapter name>
 sudo ip address add 192.168.31.100/24 dev <adapter name></code> sudo ip address add 192.168.31.100/24 dev <adapter name></code>
-  *Run the server with the following command:<code>sudo dnsmasq --no-daemon --listen-address=192.168.31.100 --bind-interfaces --dhcp-range=192.168.31.2,192.168.31.--enable-tftp --tftp-root=/tmp/tftp</code> +  * Run the server with the following command:<code>sudo dnsmasq --no-daemon --listen-address=192.168.31.100 --bind-interfaces --dhcp-range=192.168.31.2,192.168.31.254 --enable-tftp --tftp-root=/tmp/tftp --log-dhcp --log-facility=-</code> 
-  * Keep reset button pressed and power on your ax6 <WRAP info> +  * Unplug the power, press and hold the reset button, plug the power back while still holding the button.<WRAP info> 
-  * Keep it pressed until you see the system led blinking orange+  * Hold the reset button until the router's LED starts flashing orange.  
 +  * then it goes solid orange again, release the button. 
 +  * If in the terminal, you see that the router requests a different firmware file (different name; if you have previously had a Xiaomi firmware v.1.1.14 on the router), rename the file in the tmp folder and repeat the procedures from the IP flush again.
   </WRAP>   </WRAP>
-  * When the device finished loading the firmware, the led starts blink. Wait for until blue led get solid! <WRAP info> +  * When the device finished loading the firmware, the led starts flashing with orange (amber) light. Wait for until blue led to goes solid! <WRAP info> 
-  * It Might take some time for the Led go get to solid blue+  * It might take some time for the led to go solid blue
   * If the recovery doesn't accept the downloaded file the led switches to solid white - if this is the case, restart the recovery process with other file   * If the recovery doesn't accept the downloaded file the led switches to solid white - if this is the case, restart the recovery process with other file
   * If the led is blinking blue led it means the device was flashed successfully and can be restarted   * If the led is blinking blue led it means the device was flashed successfully and can be restarted
Line 258: Line 324:
  
 ==== Photos ==== ==== Photos ====
 +{{media:xiaomi:xiaomi_ax6_ax3000_back.jpg?400|}} 
  
 **Redmi AX6 front PCB** **Redmi AX6 front PCB**
Line 1618: Line 1685:
 ===== Tags ===== ===== Tags =====
 [[meta:tags|How to add tags]] [[meta:tags|How to add tags]]
-{{tag>IPQ8071 ipq807x 128NAND 512RAM GigabitEthernet 802.11ax wifi6 CortexA53 QCN5054 QCN5024 4x4 mu-mimo VHT160 4core LDPC QPF4550 QPF4200 TXBF txpa serial U-Boot ARMv8 unsupported}}+{{tag>ipq807x IPQ8071 128NAND 512RAM 4port GigabitEthernet 802.11ax wifi6 CortexA53 QCN5054 QCN5024 4x4 mu-mimo VHT160 4core LDPC QPF4550 QPF4200 TXBF txpa serial U-Boot ARMv8}}
  • Last modified: 2024/08/11 10:04
  • by jiejianshiwaxinge