Adding OpenWrt support for Xiaomi AX3600 (Part 1)

You can't if you just use robimarkos vanilla build. You either have to make your own build or choose another build including SQM. I don't know if there is any builder out including SQM.

1 Like

Yes, I found many builds on 4pda site, but how to build my own copy ??? does it need Linux or could I just edit on robimarkos build to add sqm ?

@robimarko

I think this changed the behavior a bit:

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=88803cb0e6e42ea00bd7c3dc8838e660239d3f16

We might need to change the way we handle GRO after this patch by any chance?

1 Like

so I just need to flash the other portion with OpenWrt squashfs-nand-factory.ubi file but how I can detect the current partition that I'm booting from now which contains OpenWrt it there any ssh command for that .

You can use dimfish's build. Sqm included in the image.

1 Like

Well, basically I would avoid 3rd party builds from any chiniese or russian websites. 4pda is known distributing malware (ofc. mostly for the warez stuff. I know not all/everyone on this site is doing this!). Just be carefull!

For doing your own builds you just need (its not so difficult it just takes a while):

1.) An Ubuntu Linux (take the latest) running either in VM or on a dedicated machine.
2.) Extra packages for Ubuntu installed: https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem (scroll down for Ubuntu)
3.) A few commands in console/terminal:

cd 
git clone https://github.com/robimarko/openwrt
cd openwrt
git checkout ipq807x-5.15-pr
./scripts/feeds update -a
./scripts/feeds install -a
wget https://github.com/robimarko/openwrt/releases/download/ipq807x-2022-10-10-1438/config.buildinfo -O .config
echo "CONFIG_PACKAGE_luci-app-sqm=y" >> .config
make defconfig
make -j $(nproc) world

4.) Find your build in ~/openwrt/bin/targets/ipq807x/generic/

6 Likes

That targets only mac80211

thats not completely correct. you can do an opkg update but you cant install any kmods. Normal packages e.g. nano or luci-app-statistics works.

opkg update = update the package list
opkg upgrade = bad bad bad never do it.

1 Like

Yes that's correct. I dismissed that nuance completely because I knew that SQM involves certain kmods and iptables. Was just blind about that. Thanks for clarify that.

Hi all,

I have installed openwrt on my ax3600. It worked fine for a few weeks then the router crashed. I reinstalled openwrt and it works excepts that I can only see one radio in LuCi web interface. I have tried to upgrade it using the pre-build images to the latest version (https://github.com/robimarko/openwrt/releases/tag/ipq807x-2022-10-14-1558) but still can only see one radio. I though it was a hardware fault so tried the recovery process (which has worked previously) but now it gets the IP address but does not copy the file across so I'm suck on opwnwrt.

Anyone experienced anything like this?

There appears to be a problem with dnsmasq on build "2022-10-14-1558". When it is upgraded to version 2.86-15, DNS lookup no longer works on the router.

There are three error messages in the opkg upgrade output:
"cannot find dependency kmod-nf-conntrack-netlink".
"Packages for libnetfilter-conntrack3 found, but not compatible with configured architectures".
"cannot find dependency kmod-ipt-ipset for dnsmasq-full".

Ping for a non-IP address value as well as NSlookup on the diagnostic tab also do not work with the updated DNSmasq version.

Also Wifi does not work anymore on the latest build.

root@OpenWrt:~#  ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: miireg: <> mtu 0 qdisc noop state DOWN qlen 1000
    link/generic
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 28:d1:27:fc:78:5a brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 9c:9d:7e:75:f2:8c brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 9c:9d:7e:75:f2:8c brd ff:ff:ff:ff:ff:ff
6: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 9c:9d:7e:75:f2:8c brd ff:ff:ff:ff:ff:ff
7: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 9c:9d:7e:75:f2:8e brd ff:ff:ff:ff:ff:ff
9: wlan2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 4096
    link/ether 9c:9d:7e:75:f2:8c brd ff:ff:ff:ff:ff:ff
14: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 9c:9d:7e:75:f2:8c brd ff:ff:ff:ff:ff:ff
17: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN qlen 3
    link/ppp
19: phy1-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 4096
    link/ether 9c:9d:7e:75:f2:8d brd ff:ff:ff:ff:ff:ff

Regarding both issues:
Do not upgrade these

As stated before. You should never do

opkg upgrade

on things which depends on kmods. You are installing incompatible software to your running kernel.
As this is a NON-Mainline/Test-build you should always have a backup plan if you do some installs/updates, as it can always break. In your case you can do a complete reset which should also remove the upgraded packages or build your own version as stated also some messages before.

1 Like

I'm running a self-compiled version of that build from robimarko's repository and everything is working fine here. Both hostapd-common and wpad-wolfssl are at 2022-07-29-b704dc72-5.1 and dnsmasq is at 2.86-15. Maybe another lists update is required? (edit: kernel module compatibility may be breaking this as rossini already alerted above) I did not update those packages after the fact, it just so happened they already were in that version when I started my build.

I am using the following to build a self-compiled version but for some reason a lot of packages are never on their latest version (experience over the last 6 months) e.g. : busybox, tctiny, hostpad, wpad-wolfssl, dnsmasq....

          echo "CONFIG_TARGET_ipq807x=y" > .config
          echo "CONFIG_TARGET_ipq807x_generic=y\n" >> .config
          echo 'CONFIG_TARGET_ipq807x_generic_DEVICE_xiaomi_ax3600=y' >> .config
          echo 'CONFIG_HAS_SUBTARGETS=y' >> .config
          echo 'CONFIG_TARGET_BOARD="ipq807x"' >> .config
          echo 'CONFIG_TARGET_SUBTARGET="generic"' >> .config
          echo 'CONFIG_TARGET_PROFILE="DEVICE_xiaomi_ax3600"' >> .config
          echo "CONFIG_TARGET_ROOTFS_INITRAMFS=y\n" >> .config
          echo "CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD=y\n" >> .config
          echo "CONFIG_PACKAGE_wpad-basic-wolfssl=m\n" >> .config
          echo "CONFIG_PACKAGE_wpad-wolfssl=y\n" >> .config
          # services and tools
          echo "CONFIG_PACKAGE_irqbalance=y" >> .config
          echo "CONFIG_PACKAGE_sqm-scripts=y" >> .config
          echo "CONFIG_PACKAGE_nano=y" >> .config
          echo "CONFIG_PACKAGE_wget=y" >> .config
          echo "CONFIG_PACKAGE_curl=y" >> .config
          # luci
          echo "CONFIG_PACKAGE_luci=y\n" >> .config
          echo "CONFIG_PACKAGE_luci-base=y" >> .config      
          echo "CONFIG_PACKAGE_luci-app-firewall=y" >> .config
          echo "CONFIG_PACKAGE_luci-app-sqm=y" >> .config
          echo "CONFIG_PACKAGE_luci-mod-dashboard=y" >> .config

It is a fork of https://github.com/rodriguezst/ipq807x-openwrt-builder

Guys, stop upgrading base packages using opkg, that is just asking for trouble.
For example, in this case naming convention has changed and so core packages have been updated to account for that, however opkg will not update them all.

2 Likes

A lot of this forks getting abandoned after a while when it comes to updates. And nobody can support them here (and probably will). So ask rodriguezst.

And if it comes to updates: This applies even to robimarko's builds. You need a somewhat "stable" base where you simply cannot hunt for every tiny update because this is to costly (in terms of time) to integrate. Main focus is e. g. drivers for the device.

Beside that I don't even understand why ppl. are using those forks. Because they are doing nothing "special" compared to robimarko's build.

I use it mainly bc of sqm.

Well I can understand this. What you have choosen is just an autobuild of robimarko's sources. This is a lot better then just using a build based on a fork based on outdated sources.

For me e. g. busybox is up to date compared snapshots on Xiaomi AX3600 vs Xiaomi AX3200 (official snapshot build):

root@AX3600:~# opkg list-installed | grep busybox
busybox - 1.35.0-3

root@AX3200:~# opkg list-installed | grep busybox
busybox - 1.35.0-3

The bump to 1.35.0 was about ~9 month ago. Master is still on 1.35 because there is no newer version of busybox available. And I doubt that anyone wants to use a busybox snapshot build. ^^

I don't know what this build script is doing exactly and why you complain busybox didn't get an update for ~6 month.

An update to use 6.1 backports has been pushed, I gave it a day of testing on Qnap and it worked fine.
Over 250 ath11k and generic backported patches have been dropped.

22 Likes