OpenWrt support for Linksys MX4200

I'm also skeptical about what will happen if you flash the official firmware downloaded from linksys's official website. I think it is very likely that the official firmware will also brick the device since it uses the partition layout same as OpenWrt.

This is a new build with the partition layout patched. I don't think it will work if you installed it on the nand. Can you boot it from the USB?

Also, if you are available, can you also nanddump these partitions?

[    0.998143] 0x000001080000-0x000002980000 : "0:WIFIFW"
[    1.015010] 0x000002980000-0x000002a00000 : "devinfo"
[    1.015949] 0x000002a00000-0x000004a00000 : "tzcfg"
[    1.034164] 0x000004a00000-0x000022500000 : "rootfs"
[    1.252308] 0x000022500000-0x000040000000 : "rootfs_1"

You can use following command.

nanddump /dev/mtdX | gzip > /tmp/mtdX

I had a time to play with it a bit more, and down to single reproducible change - VLANs.

  1. Configure Dumb AP, IPv4 only, dnmasq and firewall disabled. Works.
  2. Enable VLAN, add single VLAN1=U*, change Interface to br-vlan.1
  3. If encryption is enabled I can't connect to WiFi. If encryption is disabled - it works.

Has anyone been able to configure working VLANs + wireless on this reliably? I am building a custom image using qosmio's git, so it could easily be a package I'm not including that's required, but I am unsure of how to move forward. I've compiled including swconfig after trying and failing to get working VLANs using traditional bridge filtering, but I am stuck here. Any advice on what to do OR where to look would be great.

It looks like qosmio's branch for MX4300 does not work properly with VLAN. Both you and @Ka6uka have problem with WIFI if VLAN is used. He does include CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y, so the NSS driver may have something to do with that.

@qosmio

We need some more info as probably bootipq command is used.
Can you post printenv output from u-boot?

I found the temperature on my mx4300 is quite high. Room temperature is about 27C. I configured it as a dump AP (all three radios enabled) with vlan.

root@OpenWrt:~# for i in $(seq 0 1 11); do cat  /sys/class/thermal/thermal_zone$i/type; cat /sys/class/thermal/thermal_zone$i/temp; done
nss-top-thermal
77900
nss0-thermal
77600
nss1-thermal
77300
wcss-phya0-thermal
78300
wcss-phya1-thermal
78300
cpu0-thermal
78600
cpu1-thermal
78900
cpu2-thermal
78600
cpu3-thermal
79200
cluster-thermal
79200
wcss-phyb0-thermal
78900
wcss-phyb1-thermal
77600

That is getting up there. What's the CPU load look like? Last time I saw something run that hot was when curl 8.9 borked dns-https-proxy and pegged a core at 100%.

The CPU load is quite low.

load average: 0.00, 0.10, 0.31

A power consumption of 10 W at idle would definitely generate a lot of heat with a passive heatsink enclosed in such a plastic body.

FWIW, I have 3xMX4300, with various number of connections / traffic - temperature is less than 66C (mostly <60C).

BTW, just found that collectd works nicely with thermal.

I am surprised at the temperature. My wax206 rarely passes 70C.

By the way, my mx4300 seems to have problem using short preamble. When the same client (ax 2x2) is connected to wax206 (MT7915E ax 4x4), it uses short preamble (HE-GI 1).

I observed that there is a huge speed difference between my mx4300 (500Mbps) and wax206 (800Mbps) when using both as dumb APs. I suspect that unable to use short preamble can be one of the reasons.

I keep seeing random reboots. Infrequent, but still. And some random issues getting dhcp.

By any chance, has anybody built "standard" 23.05.4 + mx4300 support (with no other changes)?

Haven't gotten a crash yet. Did not measure the temps but just touching the top of the unit feels warm.

You need to state the ambient temperature. The CPU temp depends a lot on the ambient temperature as well.

asd111333's ambient temperature at 27C (81F) is pretty warm.

27-28C. Still less than 66C, mostly around 60C.

IPQ807x# printenv
baudrate=115200
bootargs=console=ttyMSM0,115200n8
bootcmd=bootipq
bootdelay=2
eth1addr=d8:ec:5e:73:de:28
eth2addr=d8:ec:5e:73:de:29
eth3addr=D8:EC:5E:73:DE:29
eth4addr=D8:EC:5E:73:DE:29
eth5addr=D8:EC:5E:73:DE:29
ethact=eth0
ethaddr=d8:ec:5e:73:de:28
fdt_high=0x4A400000
fdtcontroladdr=4a97a7b0
flash_type=2
ipaddr=192.168.1.1
machid=801000d
netmask=255.255.255.0
serverip=192.168.1.12
soc_hw_version=200d0200
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000

And bootipq debug?


bootargs=console=ttyMSM0,115200n8 ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait
Booting from flash
Using nand device 0
ubi0: attaching mtd1
UBI init error 22

Net:   MAC0 addr:d8:ec:5e:73:de:28
EDMA ver 1 hw init
Num rings - TxDesc:1 (0-0) TxCmpl:1 (7-7)
RxDesc:1 (15-15) RxFill:1 (7-7)
ipq807x_edma_alloc_rings: successfull
ipq807x_edma_setup_ring_resources: successfull
ipq807x_edma_configure_rings: successfull
ipq807x_edma_hw_init: successfull
, eth0
Warning: eth0 MAC addresses don't match:
Address in SROM is         d8:ec:5e:73:de:28
Address in environment is  d8:ec:5e:73:de:29

IPQ807x#

And print env variables using printenv one more time after bootipq debug command.