Adding OpenWrt support for Xiaomi AX3600 (Part 1)

OpenWrt support: Not supported.
https://openwrt.org/inbox/toh/xiaomi/xiaomi_ax3600

Any chance to get the global firmware, patch it for SSH support and flash it on a chinese ax3600?

No, at the moment. They not released the international firmware yet

1 Like

Once you get SSH access I believe you can stop the "auto updates" by going to the /etc/config folder and modifying the vas and/or vas_user config files accordingly.

I am personally very interested in making useful modifications to the factory firmware such to be able to easily add/enable OPENWRT features/packages without actually waiting for official OPENWRT support.

Any suggestions or modifications for getting OPKG fully functional and working on root@XiaoQiang (maybe in the /tmp directory) could give us some good alternatives prior to the much anticipated official OPENWRT support.

1 Like

For this kind of hardware that can actually be unlocked and supported it's better to put effort in helping with openwrt support than trying to hack the original firmware to add openwrt packages

3 Likes

root@XiaoQiang:/etc/config# cat vas_user

config settings 'services'
option auto_upgrade '1'

root@XiaoQiang:/etc/config# cat otapred

config ota 'settings'
option enabled '1'
option auto '0'
option plugin '0'
option spauid '20200912'
option spau '1'
option spauic '22'

root@XiaoQiang:/etc/config# cat vas

config settings 'services'
option auto_upgrade '-1'
option news_bar '-3'
option invalid_page '-3'
option ad_filter_resolve '-3'
option ad_on_off '-3'
option shopping_bar '-3'
option baidu_video_bar '-3'
option UPIF '-3'
option service_aggre '-3'
option security_page '-3'

config rule 'countrycode'
option auto_upgrade 'CN'
option news_bar 'CN'
option invalid_page 'CN'
option ad_filter_resolve 'CN'
option ad_on_off 'CN'
option shopping_bar 'CN'
option baidu_video_bar 'CN'
option UPIF 'CN'
option service_aggre 'CN'
option security_page 'CN'

config service 'invalid_page'
option on 'matool --method setKV --params invalid_page_status on; /etc/init.d/http_status_stat on'
option off 'matool --method setKV --params invalid_page_status off; /etc/init.d/http_status_stat off'
option status 'uci get http_status_stat.settings.enabled 2>/dev/null'

config service 'security_page'
option on 'matool --method setKV --params security_page_status on;'
option off 'matool --method setKV --params security_page_status off;rm /etc/config/securitypage/enable.tag; /etc/init.d/securitypage stop'

config service 'auto_upgrade'
option on 'uci set otapred.settings.auto=1; uci commit otapred'
option off 'uci set otapred.settings.auto=0; uci commit otapred'
option status 'uci get otapred.settings.auto 2>/dev/null'

config service 'news_bar'
option on 'matool --method setKV --params news_bar on; /usr/bin/trmd -f; /usr/bin/trmd'
option off 'matool --method setKV --params news_bar off; /usr/bin/trmd -f; /usr/bin/trmd'

config service 'ad_filter_resolve'
option off 'sed -i '''/ad_filter.sh/d''' /etc/crontabs/root;uci set otapred.settings.plugin=0;uci commit'

config service 'ad_on_off'
option on 'matool --method setKV --params ad_on_off on;/usr/bin/trmd -f; /usr/bin/trmd;uci set security.common.ad_on_off=1;uci commit security; /etc/init.d/securitypage restart'
option off 'matool --method setKV --params ad_on_off off;/usr/bin/trmd -f; /usr/bin/trmd;uci set security.common.ad_on_off=0;uci commit security; /etc/init.d/securitypage restart'

config service 'shopping_bar'
option on 'matool --method setKV --params gouwudang_status on; /usr/bin/trmd -f; /usr/bin/trmd'
option off 'matool --method setKV --params gouwudang_status off; /usr/bin/trmd -f; /usr/bin/trmd'

config service 'baidu_video_bar'
option on 'matool --method setKV --params baidu_video_bar on; /usr/bin/trmd -f; /usr/bin/trmd'
option off 'matool --method setKV --params baidu_video_bar off; /usr/bin/trmd -f; /usr/bin/trmd'

config service 'UPIF'
option off '/etc/init.d/wrsst stop;uci delete otapred.settings.updateurl&&uci commit'

config service 'service_aggre'
option off 'matool --method setKV --params service_aggre_status off; /etc/init.d/http_event_proxy off'

What can I do to help ?
I have a chinese ax3600.
I can build and tftpboot the ax3600 branch from https://github.com/gmzhuo/openwrt.
This gets some ethernet and wifi working, but no bridge and no access point.

Actually the main setting to the turn "auto update" off is in /etc/config/otapred

option auto '0'

Or you can use UCI:

uci set otapred.settings.auto=0
uci commit otapred

1 Like

I've just received my AX3600 and set it up as a repeater (via Wi-Fi rather than wired). I downgraded to .17 and everything was very straightforward thanks to all the posts here.

I've noticed one issue. My main router is 192.168.1.1. When the AX3600 connects, it is 192.168.1.250. When I connect a device to the network via the AX3600 it gets a 192.168.1.X address however the connected device is not listed as a connected client when I look on the main router. I am guessing this is because its not using the main router's DHCP.

I'm new to OpenWRT but comfortable with Linux. I notice dhcrelay is installed and in /etc/config/dhcrelay there is the following:

        option 'enabled' '0'

        # IP address of the server
        option 'dhcpserver' '192.0.2.10'

My understanding is that I should be able to set enable to 1 and the dhcp server to 192.168.1.1 and this should work. I also tried:

root@XiaoQiang:~# dhcrelay -i br-lan -a 192.168.1.1
Requesting: br-lan as upstream: Y downstream: Y
Internet Systems Consortium DHCP Relay Agent 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/br-lan/88:c3:97:ca:34:cd
Sending on   LPF/br-lan/88:c3:97:ca:34:cd
Sending on   Socket/fallback

And got the above which means it should work but it's not. Has anyone tried this before?

Also, assuming I can get it working, how can I make the changes persist? do I need to issue a uci command?

EDIT: After trying a few thing, I ended up bricking the firmware and started again. After further testing, with .17 release, if the device has a permanent IP assigned to it in the main router then it is assigned it also on the AX3600. However, it's not listed as a connected client on the main router. In any case, it seems to be partially communicating in some way.

@paulmorabito
Doesn't this device has a /etc/config/network file? If so you could just set up the lan interface with type='bridge' and It should work.

1 Like

Yes. You are right. It does have.

mtd18: 01249000 0001f000 "rootfs_data"
mtd19: 012e4000 0001f000 "data

How to backup these two partitions? dd fails, probably because they're mounted.

root@XiaoQiang:/tmp# dd if=/dev/mtd18 of=/tmp/mtd18
[  346.250859] ubi0 error: ubi_open_volume: cannot open device 0, volume 2, error -16
dd: can't open '/dev/mtd18': Resource busy
root@XiaoQiang:/tmp# dd if=/dev/mtd19 of=/tmp/mtd19
[  367.779048] ubi1 error: ubi_open_volume: cannot open device 1, volume 0, error -16
dd: can't open '/dev/mtd19': Resource busy
1 Like

Hi, I have a question: if the ax3600 can be updated with openwrt, can the Mesh feature still be used? thanks

Not yet, but maybe close?
See i.e. IPQ807x SoC Investigation / Status [WIP]
and Xiaomi AX3600 INT firmware

I'm curious, does the QCA9889 IoT WLAN card of the AX3600 support (non-concurrent) dual-band or does the phy only allow one of them?

(I assume it's mostly meant for 2.4 GHz operations, but the chipset would also support 5 GHz - depending on the phy and rf setup, just curious if the OEM firmware allows both (even though OpenWrt can't access it yet)).

1 Like

In marketing materials it was stated that "AIoT antenna is dualband"

2 Likes

Yes, you are correct and it works well.

Is OpnWRT at a functioning working stage on the Xiaomi AX3600 yet?

Has their been much success yet?

1 Like

Nothing new at the moment.

no, at the moment.