OpenWrt support for Linksys MX4200

I've got 2 MX4300s, I grabbed Lytr's build and installed it through the factory update page on one of them. I've rebooted a few times and it looks like OpenWrt installed properly. I've tried following this thread but with it being as large as it is I might have missed something. Is there anything I need to be aware of before I install OpenWrt on the other router and mesh them?

Thanks in advance

1 Like

Why people didn't take the time to read, as stated multiple times: the HW doesn't support 160MHz

Any chance you can re-upload it? It ran out of downloads

Are there any known issues with Lytr's build? Is there a point on waiting for a "stable" release?

I saw the PR on the official repo requires 6 approvals before it can be merged so the question I guess if it's dev complete at this point? Or are there any planned changes/fixes etc..

Thank you for all the hard work on getting it done so far!

You do know that when you install the original linksys firmware from the working partition. It will overwrite the corrupt partition. You can then switch to the other partition to confirm

I wonder if boot procedure via two separate commands (like here) would work on this device? I guess openwrtusb variable could be the same, but openwrtboot surely is different?

I don't have device on hands to test it just yet.

You have all the necessary info how to boot from USB in commit message: https://github.com/openwrt/openwrt/pull/16070/commits/e6c020b2ff730866a91d5249511a43024bb621c9

@lytr do you think it will ever be possible to have upper channels on both 5ghz radios?

I bought 3 units hoping I could do a 40mhz backhaul on the 4x4 with ch 157(+161), which would then leave me with 3 40mhz channels for the 2x2 5ghz radio 36(+40), 44(+48) and 149(+153) for clients.

But if all channels are not accessible on the 2x2 I'm not sure what is the point of this router.

Using only 20mhz channels on each nodes 2x2 radio to avoid interference would leave us with a maximum link speed of 173Mbps (2x2 ac clients) which is slower than having a single unit at the edge of my building and the client in opposite far edge having a speed of 195Mbps with a 80mhz channel.

Anyone please feel free to enlighten me as I don't see the point of this product given the restrictions.

I made a mistake and used the command for 2 instead of 1 reported by fw_printenv. Now router does not show up on LAN 192.168.1.1. Any suggestions on how to recover welcome ....

  • mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel

So I assume if "fw_printenv -n boot_part" return 1 then we do:

mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel
fw_setenv bootcmd 'run openwrtusb; run openwrtboot'
fw_setenv openwrtboot 'if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'
fw_setenv openwrtusb 'usb start && fatload usb 0:1 0x44000000 openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb && bootm 0x44000000'

Otherwise:

mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel
fw_setenv bootcmd 'run openwrtusb; run openwrtboot'
fw_setenv openwrtboot 'if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart2; else run bootpart1; fi'
fw_setenv openwrtusb 'usb start && fatload usb 0:1 0x44000000 openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb && bootm 0x44000000'

Is this right?

How did you run mtd command? Are you using serial connection?

No, these are not correct commands. Did you read commit message?

This device have two separate radios on different channels for 5GHz by design. One for client and another one for backhaul. I don't know if there are any devices available that offer two 5GHz radios over the full frequency range. Why are you using 40MHz and not 80MHz wide configuration?

You're right, I missed the initial part about manual upgrade, so after following the manual installation steps both the kernel and alt_kernel partition should contain the same OpenWRT build, so two different openwrtboot versions isn't necessary.

However, what else did I miss? I see that bootusb in commit description assumes image was written to a flash drive by dd, but reading the image from FAT partition should work on Linksys LN1301 too? Or IPQ8072A and IPQ8174 are different in this regard?

Also instead of two new openwrtusb and openwrtboot variables (as proposed by hnyman) in the commit description there is slightly different approach but both should work, right? Or there is something wrong with defining openwrtusb and openwrtboot variables and then running them from bootcmd?

If I'm correct MX4300 u-boot is lacking fatload command (but may be wrong).
It's up to you how you define variables.

Any way to check this without opening up case and connecting via UART?

You can dump u-boot partition and check binary data.

sequence of events:

  1. On linksys factory image GUI , go to CA link and upload the firmware
  2. Box boots and is visible on 192.168.1.1 on LAN
  3. ssh root@192.168.1.1 - gets logged in with prompt
  4. error made here - used the mtd command here for 2 instead of 1
  5. box reboots
  6. no longer shows up on 192.168.1.1
1 Like

The plan was to use 40mhz on the nodes to avoid interference from each other.

Having the same 80mhz channel on 3 nodes would be really bad interference, no?

How nodes are connected:

1 - 2 - 3

or

  1
 / \
2 - 3

?