Annoyingly it doesn't appear to be attempting a network boot, I see the interface on my laptop cycling suggesting that the router is in a boot loop. The wiki suggests that as I hadn't got the modified u-boot in place yet the network boot wont happen, I believe this is what I need to do to get it booted again:

Connect to router via UART
Select Load Image in the u-boot
Set start address to 0x48000000, then set TFTP parameters to load the initramfs-kernel.bin.
Start the loaded kernel, then perform sysupgrade on OpenWrt.

Has anyone had to do this yet - anything specific to share?

1 Like

Uart saved the day, was able to boot, scp the images over etc and get the router sorted.

2 Likes

Hi,
First of all, thank you for the amazing work and research many of you have put into getting the Xiaomi Redmi AX6000 supported. I just received one and it looks like amazing hardware, but even though I have set up OpenWrt on other routers, this one seems a bit problematic for me.

Does anyone run this just as dumb AP? I'm having what seems like ARP issues pretty much out of the box (only with wifi enabled on top of vanilla installation).

Let me explain, I have an OPNsense main router with a number of other dumb APs connected directly to it via an ethernet cable, including the Redmi. Redmi is the only one with issues.

When I reboot the Redmi and SSH onto it and run "arp -a", the MAC address for my gateway 192.168.1.1 is 00:00:00:00:00:00. Strange. If I leave it for a while and try later, it may still be 00:00:00:00:00:00 or it may have got the correct gateway MAC address. Sometimes it can take quite a while. When it's 00:00:00:00:00:00, I can't access internet (or anything that needs to go via the gateway), when it's the correct MAC address, I can. Flushing the ARP table in OPNsense seems to instantly set the correct MAC address for my gateway.

I can live with that I guess or work around it by setting it directly on Redmi with something like:
ip neighbor replace 192.168.1.1 lladdr <gateway_mac_address> nud permanent dev br-lan

Then I connect a device using Redmis wifi, no internet.

Running "tcpdump -ennqti br-lan arp" on the Redmi:

<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<redmi_lan_bridge_mac_address> > <opnsense_gateway_mac_address>, ARP, length 42: Request who-has <gateway_ip> tell <redmi_lan_bridge_ip>, length 28
<opnsense_gateway_mac_address> > <redmi_lan_bridge_mac_address>, ARP, length 60: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 46
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28

Running "tcpdump -ennqti bridge0 arp" on the OPNsense router:

<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 64: Request who-has <gateway_ip> tell <iphone_ip>, length 50
<opnsense_gateway_mac_address> > <iphone_connected_to_redmi_wifi_mac_address>, ARP, length 46: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 32
<redmi_lan_bridge_mac_address> > <opnsense_gateway_mac_address>, ARP, length 64: Request who-has <gateway_ip> tell 192.168.1.51, length 50
<opnsense_gateway_mac_address> > <redmi_lan_bridge_mac_address>, ARP, length 42: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 64: Request who-has <gateway_ip> tell <iphone_ip>, length 50
<opnsense_gateway_mac_address> > <iphone_connected_to_redmi_wifi_mac_address>, ARP, length 46: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 32
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 64: Request who-has <gateway_ip> tell <iphone_ip>, length 50
<opnsense_gateway_mac_address> > <iphone_connected_to_redmi_wifi_mac_address>, ARP, length 46: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 32
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 64: Request who-has <gateway_ip> tell <iphone_ip>, length 50
<opnsense_gateway_mac_address> > <iphone_connected_to_redmi_wifi_mac_address>, ARP, length 46: Reply <gateway_ip> is-at <opnsense_gateway_mac_address>, length 32
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 64: Request who-has <gateway_ip> tell <iphone_ip>, length 50

It looks to me when the iPhone asks the Redmi for the gateway MAC address on ff:ff:ff:ff:ff:ff, that request gets forwarded to the OPNsense router.
OPNsense router receives the iPhone request on its lan bridge and immediately replies with the gateway MAC address back to the iPhone.
This reply however never reaches the Redmi and therefore it's not forwarded back to iPhone, which just keeps trying again and again.

Can anyone else see the same or have any ideas what could be wrong?

I'm running the latest snapshot from yesterday.

Additionally, running "arp -a" on the Redmi returns a bunch or IP address to MAC address records, including the correct gateway one, but I can't see the iPhone connected via wifi on the list at all. I should expect to see the iPhone listed there, no?

I do have some AX6000s as dumb APs, and they work nicely. In particular, MAC learning works fine.

I understand that the router is connected to a port in the br-lan bridge, right?

Please be aware that if you ask for the arp table or run tcpdump on br-lan you'll only see packets reaching the CPU. If you want to watch traffic from the wireless interface or the uplink port, you'll need to point tcpdump to ports such as phy0-ap0 or lan2.

Also, for the full bridge MAC table, use brctl showmacs br-lan

Hi, correct, the OPNsense router is connected to the br-lan bridge which bridges all 4 physical ports (and the phy1-ap0).

I'm not using the latest snapshot (still at OpenWrt SNAPSHOT r21995-059263dd6e), but should work fine. Have you checked with tcpdump at the specific ports that the arp replies are getting to the AX6000 and the iPhone?

On lan4 (where the cable is physically connected to OPNsense) "tcpdump -ennqti lan4 arp" I get the same response as on the br-lan.

On "tcpdump -ennqti phy1-ap0 arp" I get just loads of requests without any replies:

<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28
<iphone_connected_to_redmi_wifi_mac_address> > ff:ff:ff:ff:ff:ff, ARP, length 42: Request who-has <gateway_ip> tell <iphone_ip>, length 28

Hello guys, can you please help me to understand. If i install OpenWrt will it increase my WI-Fi speed?
At the moment i do have 1gb internet and speed is 300-320 mb\250 mb upload. But when i use lan cable it shows 700-800 download.

Can someone help please is it worth it to try OpenWrt?

Thank you so much.

I also just checked on the OPNsense port "igc2" (where the cable to Redmi is directly connected to rather than on the bridge and the replies are there). It seems like replies leave the OPNsense port "igc2", but never arrive at OpenWrt port "lan4". Only those destined for wifi clients though. I really don't know what else to look at other than downgrading the OpenWrt to the version you mentioned to see if that helps.

Have you disabled the firewall in the AX6000, just to be on the safe side? Also, no traffic manager, redirector or similar loaded? Including proxy arp, dhcp, dnsmasq....

Usually the stock drivers are better for pure wifi performance, but it's impossible to say without knowing your testing environment. 300 Mbps sounds like a misconfiguration. Is your client capable of 4x4 160Mhz 802.11ax? That should provide around 1GB/s performance and implies you are using DFS channel 100 in the US.

1 Like

dnsmasq, firewall and odhcpd are disabled
never used traffic manager, redirector or proxy arp, I'm assuming these are not configured by default?

Initial configuration should be fine. Please post configurations.

I know, always was with any other AP until I tried this one. Thanks for your help btw.

network.loopback=interface
network.loopback.device='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.@device[0]=device
network.@device[0].name='br-lan'
network.@device[0].type='bridge'
network.@device[0].ports='lan2' 'lan3' 'lan4' 'wan'
network.lan=interface
network.lan.device='br-lan'
network.lan.proto='static'
network.lan.netmask='255.255.255.0'
network.lan.ipaddr='192.168.1.51'
network.lan.gateway='192.168.1.1'
network.lan.dns='192.168.1.1'

wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.path='platform/soc/18000000.wmac'
wireless.radio0.band='2g'
wireless.radio0.htmode='HE20'
wireless.radio0.country='GB'
wireless.radio0.cell_density='0'
wireless.radio0.channel='5'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.path='platform/soc/18000000.wmac+1'
wireless.radio1.band='5g'
wireless.radio1.htmode='HE80'
wireless.radio1.country='GB'
wireless.radio1.cell_density='0'
wireless.radio1.channel='48'
wireless.wifinet1=wifi-iface
wireless.wifinet1.device='radio1'
wireless.wifinet1.mode='ap'
wireless.wifinet1.key='<key>'
wireless.wifinet1.network='lan'
wireless.wifinet1.ssid='MyNETWORK2'
wireless.wifinet1.encryption='psk2'

Other strange thing is, I do receive an ARP reply on "phy1-ap0" from Apple TV that's on the same network, connected as: Apple TV -> Dynalink OpenWrt -> OPNsense -> Redmi OpenWrt -> iPhone

No problem getting ARP replies from local network devices that need to go through OPNsense. It's just gateway MAC address ARP reply from OPNsense and just to clients on the Redmi wifi seems to be silently dropped somewhere.

I don't see anything wrong there. The only difference with my config is that I've enabled IGMP snooping in br-lan, due to multicast (IPTV) present. You can check that out if it's your case too. If not, probably you'll have to try downgrading.

You don't happen to have the OpenWrt SNAPSHOT r21995-059263dd6e image saved anywhere for a quick test, do you? Might have to build my own otherwise.

I do, but I use u-boot mod layout. Which one are you using?

also u-boot mod layout, could you please share the image? would save me a small headache

Thank you for your reply, Anon. I tested using an iPhone 12. But i did not use OpenWrt for Redmi AX6000 Router yet. I did use 157 channel on 5Ghz in UA and i have noticed the best speed is 371 download and 470 upload....

"Usually the stock drivers" - you do mean stock firmware of Redmi AX6000? Sorry i didn't understand a bit. There is no "huge" settings in Redmi router i tried to use different channel and it helps a bit.