OpenWrt support for Linksys MX4200

I'll reply to myself for the benefit of others. Comparing qualcommax-6.x-nss-wifi and qualcommax-6.x-nss-mx4300 qosmio's branches, it seems to me that the only extra commits are those adding support for the MX4300 hence I used qualcommax-6.x-nss-wifi for the MX4200v2. It hadn't worked at first hence I came here to ask. On a subsequent attempt, I firstly compiled OpenWRT with the regular options I always use and then just edited .config to add the NSS options listed on the seed config file for the MX4300. That worked fine.

3 Likes

@qosmio saw your new branch for 6.11 kernel. How are you enabling 6.11 as the target kernel during build time if you don't mind me asking?

it's actually for backports/mac80211 (bumping 6.9.9 to 6.11), we're still using kernel 6.6.

1 Like

Welp, that makes sense then. Been poking around trying to figure out where you had the target 6.11 kernel defined. In any case, your 6.11 branch is compiling cleanly at the moment (as I'm sure you already know).

1 Like

Your assumption is correct.

I rebase openwrt/main onto qualcommax-6.x-nss-wifi

From there I'll push to other branches that I'm testing or haven't been merged upstream (like MX4300)

qualcommax-6.x-nss-wifi -> qualcommax-6.x-nss-mx4300

Currently have a new branch for the recent mac80211 change from 6.9.9 to 6.11

qualcommax-6.x-nss-wifi-6.11

which I'll also push to qualcommax-6.x-nss-mx4300-6.11

Once I've tested everything as well feedback from others, I'll merge back into qualcommax-6.x-nss-wifi

1 Like

Thanks for the additional info, that's very useful.

I would also like to ask for additional information in regard to Packet steering and Software and Hardware flow offloading for clarity.

From what I have seen on the Qualcommax NSS Build post, we should leave those disabled when using NSS builds. Could you confirm that?

People coming to this post will find multiple previous references to enable those on non-NSS builds and might get confused, so it'll be useful to have that info here too, or to know if we should test and see ourselves if that were the case.

1 Like

Do not enable Packet Steering and Software/Hardware offloading when using NSS images.

2 Likes

Wow I’ve had software/hardware offloading on the whole time and it’s pretty stable. What would that do? Bypass the NSS acceleration?

I updated base-files or adblock-fast and I got an error when I tried to change my wifi broadcast:
RPC call to iwinfo/txpowerlist failed with error -32000: Object not found at ClassConstructor.handleCallReply (http://192.168.1.1/luci-static/resources/rpc.js?v=24.264.56398~8449716:11:3)

I couldn't find out what it was. I reset it but the problem persisted. I tried to flash another version, unfortunately it was the wrong version, it was an update to the NSS version rather than a factory flash. Is my device bricked? SSH doesn't work, and it doesn't connect to ethernet. After holding reset it is flashing red rapidly.

Of course, enabling offloading should make it more stable than "NSS" since it will run like a vanilla OpenWrt build, except the fact that qosmio uses newer ath11k firmware/driver in his NSS branch.

I don't want to pollute this thread with NSS discussion too much, since the focus is meant to get upstream support for MX4300/MX4200. Better to discuss over in the Qualcommax NSS Build thread instead.

In the meantime, I just pushed a rough draft of documenting everything NSS related and some notes on best practices.

7 Likes

Is this MX4300? Since MX4300 has 2 partitions (I don't know if MX4200 has 2 partitions), have you tried switching to the other one? You do that by switching the power on and off quickly 3 times. As long as one of your partitions is functional, you should be able to boot the router.

If you can recover from this, the error sounds very much like the one I had/have if I build firmware on github (though I don't remember the exact error). Building the same version on my laptop does not lead to the error message for some reason. I also was unable to figure out what's going on. I just decided to build on the laptop for now.

What's the recommended image to flash on my MX4300 (LN1301) when it arrives next week β€” for use as a standalone WiFi AP & router, with no mesh, and desiring the latest commits from the main SNAPSHOT of OpenWrt?

Does @qosmio's NSS-enabled build have any MX4300-specific optimizations...? In other words, would I gain or lose anything other than Qualcomm's hardware NSS acceleration by choosing the main SNAPSHOT image (meant for the MX4200)?

Thank you all. Looking forward to this device.

qosmio's NSS builds use the same hardware definitions and code changes created by lytr and asd111333 for this new hardware model MX4300. On top of these changes, qosmio added NSS firmware/driver patches, some newer ath11k firmware/driver etc.

Since lytr's PR has not been merged to the OpenWrt main branch, there is no official main SNAPSHOT for this model MX4300. You have to use community-built images (NSS or non-NSS) or build them yourself.

If your WAN speed is less than 700-800 Mbps D/U, there may not be much advantage to using NSS images since software offloading (in non-NSS images) may still help achieve such speeds for WIFI.

Since ath11k firmware/driver may not be as reliable as ath10k ones, some people reported random WIFI problem with either NSS or non-NSS images, depending on their environment/WIFI clients. Just try both images and use the one with the best WIFI results for your environment/WIFI clients.

Last but not least, you will not save any electricity by using NSS images despite apparently lower CPU utilizations. As a matter of fact, NSS images will use a bit more due to the activation of the NSS cores.

5 Likes

Thank you for that detailed answer!

Are the suggestions & instructions here still valid?

Yes, they are.

1 Like

It can't be just me, but whenever I update to the build that Arix uploads, I get kernel incompatibility errors when trying to update the packages. For example, once I installed the newest build they have in their repo, the overview page on my OpenWRT shows kernel 6.6.52. Am I doing something wrong?

I either flash the sysupgrade via the URL or via the terminal.

https://openwrt.org/faq/cannot_satisfy_dependencies
No guarantee it'll work for non-official images.

https://openwrt.org/meta/infobox/upgrade_packages_warning

I usually try to upgrade the packages via Software => Upgrades. I meant flashing the sysupgrad.bin via terminal.

Doesn't really matter how you do it, it's still discouraged.

1 Like