| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| inbox:toh:xiaomi:xiaomi_redmi_ax6_ax3000 [2023/04/10 14:37] – [TFTP recovery] private MAC address removed in example of "ip ling" kingcze | inbox:toh:xiaomi:xiaomi_redmi_ax6_ax3000 [2024/08/07 00:41] – [Potential issues / Limitations] jiejianshiwaxinge |
|---|
| |
| Supported since [[commit>8253cb2de59aff81e576ea2655b1d290e4098001]] | Supported since [[commit>8253cb2de59aff81e576ea2655b1d290e4098001]] |
| ---- datatable ---- | <!-- ToH: { |
| cols : Brand, Model, Supported Current Rel, OEM 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. |
| |
| ===== Hardware highlights ===== | ===== Hardware highlights ===== |
| ---- datatable ---- | <!-- ToH: { |
| cols : Model, CPU, CPU MHz, CPU Cores_numcores, Flash MB_mbflashs, RAM MB_mbram, WLAN Hardware, WLAN 2.4GHz, WLAN 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: { |
| template: meta:template_datatemplatelist | "source": "json", |
| cols : Brand, Model, Versions, Device Type, Availability, Supported Since Commit_git, Supported since Rel, Supported current Rel, Unsupported, Instruction Set, Sub Instruction Set, Bootloader, Platform, Target, CPU MHz, Flash MBs, RAM MB, Switch, Ethernet 100M ports_, Ethernet Gbit ports_, Comments network ports_, Modem, VLAN, WLAN 2.4GHz, WLAN 5.0GHz, WLAN Hardwares, WLAN Comments_, Detachable Antennas_, USB ports_, SATA ports_, Comments USB SATA ports_, Serial, JTAG, LED count, Button count, Power supply, Device Techdata_pageid, Forum topic URL_url, wikidevi URL_url, OEM Device Homepage URL_url, Firmware OEM Stock URL_url, Firmware OpenWrt Install URL_url, Firmware OpenWrt Upgrade URL_url, Comments_ | "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 === |
| ==== Firmware download ==== | ==== Firmware download ==== |
| /* snapshot table */ | /* snapshot table */ |
| ---- datatable ---- | <!-- ToH: { |
| cols : Model, Supported Current Rel, Firmware OpenWrt snapshot Install URL_url, Firmware 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> |
| 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> |
| 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 -f /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 -n /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]]. |
| |
| |
| 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 |
| * 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.2 --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 again, release 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> |