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/31 14:16] – [TFTP recovery] The TFTP recovery would not wourk by the previous guide. Privileges for TFTP server to reach the firmware added, information how to obtain the ethernet device name added, dnsmasq added more detailed logging, corrected information how to ge 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 =====
----- datatable ---- +<!-- ToH: { 
-cols    ModelCPUCPU MHzCPU Cores_numcores, Flash MB_mbflashs, RAM MB_mbram, WLAN Hardware, WLAN 2.4GHzWLAN 5.0GHz, Ethernet Gbit ports_, USB ports_ +  "source""json", 
-align   c,c,c,c,c,c,c,c,c,c +  "dom": "t", 
-filter  : Brand=Xiaomi +  "paging": false, 
-filter  Model=Redmi AX6 +  "rotate": true
-----+  "shownColumns"["model""cpu""cpumhz""cpucores""flashmb""rammb""wlanhardware""wlan24ghz""wlan50ghz", "ethernet1gports", "usbports"]
 +  "filterColumns"{"brand": "^Xiaomi$", "model""^Redmi AX6$"} 
 +-->
  
 ==== More Info ==== ==== More Info ====
  
----- datatemplatelist dttpllist ---- +<!-- ToH: { 
-templatemeta:template_datatemplatelist +  "source""json", 
-cols    BrandModelVersionsDevice TypeAvailabilitySupported Since Commit_gitSupported since RelSupported current RelUnsupportedInstruction SetSub Instruction SetBootloaderPlatformTargetCPU MHzFlash MBsRAM MBSwitchEthernet 100M ports_Ethernet Gbit ports_Comments network ports_ModemVLANWLAN 2.4GHzWLAN 5.0GHzWLAN HardwaresWLAN Comments_Detachable Antennas_USB ports_SATA ports_Comments USB SATA ports_SerialJTAGLED countButton countPower supplyDevice Techdata_pageidForum topic URL_urlwikidevi URL_urlOEM Device Homepage URL_urlFirmware OEM Stock URL_urlFirmware OpenWrt Install URL_urlFirmware OpenWrt Upgrade URL_urlComments_ +  "dom""t", 
-filter  : Brand=Xiaomi +  "paging"false, 
-filter  Model=Redmi AX6 +  "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 === === Notes ===
Line 84: 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 161: 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 178: 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 208: 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>
   * To ensure that the TFTP server has access to the firmware, set the privileges:<code>sudo chmod -R 755 /tmp/tftp   * To ensure that the TFTP server has access to the firmware, set the privileges:<code>sudo chmod -R 755 /tmp/tftp
Line 217: Line 228:
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00     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 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
-    link/ether 1a:2b:3c:4d:5e:6f brd ff:ff:ff:ff:ff:ff+    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 3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
-    link/ether 4a:5b:6c:7d:8e:9f brd ff:ff:ff:ff:ff:ff</code>+    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>   * 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 --log-dhcp --log-facility=-</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> 
-  * Unplug the power, press and hold the reset button, plug the power back while holding the button.<WRAP info> +  * Unplug the power, press and hold the reset button, plug the power back while still holding the button.<WRAP info> 
-  * Hold the reset button.  +  * Hold the reset button until the router's LED starts flashing orange.  
-  * The led will go solid orange, then it starts flashing orange.  +  * then it goes solid orange againrelease the button
-  * then it goes solid orange again. Now 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 flashing with orange (amber) light. Wait for until blue led to goes 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>
  • Last modified: 2024/08/11 10:04
  • by jiejianshiwaxinge