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 [2023/03/26 21:55] – Obsolete information about failed sysupgrade deleted; Obsolete information about experimental firmware deleted; Firmware Download section (in Installation) added kingczeinbox:toh:xiaomi:xiaomi_redmi_ax6_ax3000 [2024/08/07 00:41] – [Potential issues / Limitations] jiejianshiwaxinge
Line 32: Line 32:
  
 Supported since [[commit>8253cb2de59aff81e576ea2655b1d290e4098001]] Supported since [[commit>8253cb2de59aff81e576ea2655b1d290e4098001]]
----- datatable ---- +<!-- ToH: { 
-cols    BrandModelSupported Current RelOEM device homepage URL_url, Forum Search_search-forums, Device Techdata_pageid +  "source""json", 
-align   c,c,c,c,c,c,c +  "dom": "t", 
-filter  : Brand=Xiaomi +  "paging": false
-filter  Model=Redmi AX6 +  "shownColumns"["brand""model""supportedcurrentrel""oemdevicehomepageurl""forumsearch""deviceid"]
-----+  "filterColumns"{"brand": "^Xiaomi$", "model""^Redmi AX6$"} 
 +-->
  
 ==== Potential issues / Limitations ====  ==== 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**.   * 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.+  * 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.   * 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.   * 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.
Line 54: Line 55:
  
 ===== 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 68: Line 89:
 ==== Firmware download ==== ==== Firmware download ====
 /* snapshot table  */ /* snapshot table  */
----- datatable ---- +<!-- ToH: { 
-cols    ModelSupported Current RelFirmware OpenWrt snapshot Install URL_urlFirmware OpenWrt snapshot Upgrade URL_url +  "source""json", 
-align   c,c,c +  "dom": "t", 
-filter  : Brand=Xiaomi +  "paging": false
-filter  : Model=Redmi AX6 +  "rotate"true
-----+  "shownColumns"["model", "supportedcurrentrel", "firmwareopenwrtsnapshotinstallurl", "firmwareopenwrtsnapshotupgradeurl"], 
 +  "filterColumns"{"brand": "^Xiaomi$", "model": "^Redmi AX6$"} 
 +-->
  
 <WRAP round info> <WRAP round info>
Line 145: 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 162: 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]].
  
  
Line 192: 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
  • Last modified: 2024/08/11 10:04
  • by jiejianshiwaxinge