OpenWrt support for Linksys MX4200

Luci update also requires an update to some of the kernel packages. However, since the snapshot changes regularly the packages available in the openwrt repo have been built against newer kernel version than the one available in any of the builds linked in this thread. Until MX4300 is officially supported by openwrt, the only way to update kernel-related packages is by rebuilding the firmware.

(I think running an update command before building updates installable packages to the latest version, but it does not update to the latest version of the snapshot itself. I assume there is a relatively easy way to apply mx4300 related patches to the latest snapshot and build them but being github ignorant I do not know how to do that. So for the time being I'll just live with the currently available versions. Unless someone explains how to apply relevant patches to the latest snapshots.)

You should be able to ignore those errors and install luci

1 Like

My latest build is compatible with official openwrt snapshot feeds and can install kmods without error. It's not possible with NSS though as NSS add extra kernel module.

Anyone not using nss build please upgrade to this version.

4 Likes

I have to apply it on every boot:

cat << EOF >> /etc/hotplug.d/iface/50-mesh-tx-offload
#!/bin/ash

ethtool --offload phy2-mesh0 tx-checksumming off
EOF
1 Like

I completely forgot about this being an issue others could run into. I had problems with mDNS propagating across nodes a few months and sure enough checksumming was to blame. NSS

I wrote a lightweight version of mesh11sd that dealt with that plus some other features for my own needs. Was going to make it public once I ironed out packaging and code clean up.

BTW, tx-checksumming should be disabled on all the mesh interfaces rather than just the primary node.

2 Likes

@qosmio - thank you for pointing to this mdns isue. I could not get DAWN to work (access point instances of DAWN could not see others even on the same LAN segment) on your NSS builds for mx4300, so have been using builds from @lytr . looking back on this thread, there are other reports of network interfaces not correctly communicating; i'm not sure those are all NSS-related or not.

1 Like

Are you saying that if we have 3 nodes, the following script should be put in the Startup (Local Startup) script on all 3 nodes?

cat << EOF >> /etc/hotplug.d/iface/50-mesh-tx-offload
#!/bin/ash

ethtool --offload phy2-mesh0 tx-checksumming off
EOF

Do you still have device with HomeWRK firmware?

After the change, the HomeWRK variant now works :slight_smile:
Any chance that you will find some time to take look at MX4300 PR: https://github.com/openwrt/openwrt/pull/16070 ?

4 Likes

@Arix
I tried your build, and the installation process went smoothly.

Thanks a lot to @qosmio @lytr for their work. I built my own images and compared both with both having additional packages like docker/dockerd/docker-compose/adguard/avahi/wireguard and I removed some packages from @qosmio's build like collectd/network bandwith monitor / statistics and debug kernel settings.

I have wifi 7 AP and even though the wifi speed is great but the router was the one that was holding it off. My wifi speed never reached above 375mbps even thought I get 500 down from ISP.

Lytr's build still gives me 350 +- mbps down but custom Qosmio's build without debug kernel is exceeding 500mbps...

Thanks @Ka6uka for pointing me to the vlan setup on NSS builds...

Like @arix I do have my github repo but I had to run the builds locally to build images as Github was running out of space due to the extra packages.

With 7 vlan's and wireguard / avahi / docker running this is amazing!!!

Really happy with this $15 upgrade of the router!!!

2 Likes

A build like arix00 provided including this would be great! My laptop is apparently to old to build this... It crashes my VirtualBox. Perhaps I need to try proxmox. :slight_smile: I hate having to rely on others....

@arix running your latest FOSS build... is AP/VLAN not a supported interface mode for the phy's?

root@mx4300-master:/etc/config# iw phy2 info
Wiphy phy2
	wiphy index: 2
	max # scan SSIDs: 16
	max scan IEs length: 142 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports AP-side u-APSD.
	Available Antennas: TX 0xf RX 0xf
	Configured Antennas: TX 0xf RX 0xf
	Supported interface modes:
		 * managed
		 * AP
		 * monitor
		 * mesh point
	Band 2:
		Capabilities: 0x19e7

edit: i see this is an ath11k problem. dang! back to r7800 :frowning:

I built qosmio's NSS branch (qualcommax-6.x-nss-mx4300) with latest changes today and kernel version is 6.6.51. On the nodes, the mesh point RX rate, TX rate, signal, etc. is blank, like below.

If I restart radio2, then the data shows like below. Any ideas how to make it work after a reboot?

[EDIT: meant ath10k, not ath9k]

@gtxent what's the use case for AP/VLAN mode? Why can't you just bridge each SSID into a brige for the appropriate VLAN (e.g. bridge IoT SSID into IoT bridge, etc.).

Just curious, because this is the first I'm hearing of AP/VLAN mode as a distinct mode the wireless drivers need to support (but I do note that e.g. ath10k does support it).

Major kudos to you @arix for both upgrading to the latest kernel, getting the build to work with latest snapshot kmods, and packaging that all up in a repo with GitHub workflows that can build the whole release!

I've been reluctant to devote the time to setting up an OpenWRT build environment, but seeing that GitHub workflows are more than capable of running a full build was definitely a moment of magic... gives me a reason to want to contribute to the project! (and definitely removes a blocker to contributing!).

Cheers and thanks!

1 Like

@dirkomatic if you clone @arix's repo, you too can use the power of GitHub workflows to build your own full releases! I was kinda stunned that I could use GitHub's resources to build everything from soup to nuts... and without having to do any machine setup!

Coolest thing I've seen today!

1 Like

You set up a single SSID to support multiple VLANs:

One SSID broadcasts for all VLANs.
Clients connect using different PSKs or can be identified by their MAC addresses.

Based on the PSK used or MAC address, clients are automatically routed to the appropriate VLAN.

This setup offers really great flexibility while keeping things simple from the user's perspective. They see just one network name but get placed on the right VLAN behind the scenes.

This approach can be really useful in home or small business settings where you want to separate traffic (like IoT devices, guest network, work devices) without creating multiple visible networks.

ath10k supports this feature ( I came from the r7800 ). Looks like a patch is needed to support it on ath11k:

1 Like

@gtxent thanks, that does sound like a pretty sweet setup! TIL a lot of stuff, appreciate your sharing!

1 Like

No worries! It's worth noting that previous generations like ath9k (as you mentioned) and ath10k already support this feature, which is pretty cool.

With any luck, we might eventually see the experts like @Ansuel or @robimarko lend their time to implement this capability for our newer devices too. It would be fantastic to have our current hardware support and benefit from this functionality, bringing it in line with its predecessors. Fingers crossed for future developments!

EDIT: I tested the patch from https://patchwork.kernel.org/project/linux-wireless/patch/1641786090-10232-1-git-send-email-quic_seevalam@quicinc.com/
linked in
Dynalink DL-WRX36 Askey RT5010W IPQ8072A technical discussion - #1762 by Crect

and I'm very happy to report that ath11k + AP/VLAN works well on a custom build based off @arix 's repo!

Added the patch to my copy of @arix's repo here:
https://github.com/gtxaspec/openwrt-mx4300/commit/35c3a6ae76db58c0954e9505c4acd8a4886d18d3 if anyone is interested.

1 Like