OpenWrt support for Linksys MX4200

Interestingly the stock firmware reports all ethernet MACs as the same value (80:69:1A:22:FE:8B is also the MAC printed on the bottom of the device)

~ # ifconfig | grep "HWaddr"
ath0      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8C  
ath0.4    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8C  
ath1      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8D  
ath1.4    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8D  
ath10     Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8E  
ath10.4   Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8E  
ath5      Link encap:Ethernet  HWaddr 86:69:1A:22:FE:8C  
br0       Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
br2       Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8C  
eth0      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth1      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth1.4    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth2      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth2.4    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth3      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
eth3.4    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B  
wifi0     Link encap:UNSPEC  HWaddr 80-69-1A-22-FE-8D-00-00-00-00-00-00-00-00-00-00  
wifi1     Link encap:UNSPEC  HWaddr 80-69-1A-22-FE-8C-00-00-00-00-00-00-00-00-00-00  
wifi2     Link encap:UNSPEC  HWaddr 80-69-1A-22-FE-8E-00-00-00-00-00-00-00-00-00-00

Using your latest release https://github.com/testuser7/openwrt/releases/tag/qualcommax-c61cb0f

root@OpenWrt:/# ifconfig | grep "HWaddr"
br-lan    Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8C  
lan1      Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8C  
lan2      Link encap:Ethernet  HWaddr BA:5E:06:8A:BF:72  
lan3      Link encap:Ethernet  HWaddr 76:BD:4B:57:03:B3  
phy0-ap0  Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8E  
phy1-ap0  Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8D  
wan       Link encap:Ethernet  HWaddr 80:69:1A:22:FE:8B

Reset button works - short press for reboot, long press for factory reset both work.

WPS button doesn't seem to work even when configured correctly on the wifi ifaces. Seems like the GPIO pin might be incorrect. I tried to find which one it was without much success, but here's a dump of /sys/kernel/debug/gpio that might be helpful.

root@OpenWrt:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 512-581, parent: platform/1000000.pinctrl, 1000000.pinctrl:
 gpio0   : in  low  func1 2mA pull down
 gpio1   : in  high func1 8mA no pull
 gpio2   : in  high func1 2mA pull down
 gpio3   : in  high func1 8mA no pull
 gpio4   : in  high func1 8mA no pull
 gpio5   : in  low  func1 8mA no pull
 gpio6   : in  low  func1 8mA no pull
 gpio7   : in  low  func1 8mA no pull
 gpio8   : in  low  func1 8mA no pull
 gpio9   : in  high func1 2mA pull down
 gpio10  : in  high func1 8mA no pull
 gpio11  : in  high func1 8mA no pull
 gpio12  : in  low  func1 8mA no pull
 gpio13  : in  low  func1 8mA no pull
 gpio14  : in  low  func1 8mA no pull
 gpio15  : in  low  func1 8mA no pull
 gpio16  : in  low  func1 2mA pull down
 gpio17  : in  high func1 8mA no pull
 gpio18  : in  low  func0 2mA pull down
 gpio19  : in  low  func0 2mA pull down
 gpio20  : in  low  func0 2mA pull down
 gpio21  : in  high func0 2mA pull up
 gpio22  : in  low  func0 2mA pull down
 gpio23  : in  high func2 8mA no pull
 gpio24  : out low  func2 8mA no pull
 gpio25  : in  low  func0 2mA pull down
 gpio26  : in  low  func0 2mA pull down
 gpio27  : in  low  func0 2mA pull down
 gpio28  : in  high func0 2mA pull down
 gpio29  : in  low  func0 2mA pull down
 gpio30  : in  high func0 2mA pull down
 gpio31  : in  low  func0 2mA pull down
 gpio32  : in  high func0 2mA pull down
 gpio33  : in  low  func0 2mA pull down
 gpio34  : in  low  func0 2mA pull down
 gpio35  : in  low  func0 2mA pull down
 gpio36  : in  high func0 2mA pull down
 gpio37  : out high func0 2mA pull down
 gpio38  : in  high func0 2mA pull up
 gpio39  : in  high func0 2mA pull up
 gpio40  : in  high func0 2mA pull up
 gpio41  : in  high func0 2mA pull up
 gpio42  : in  high func0 8mA no pull
 gpio43  : in  high func0 8mA no pull
 gpio44  : in  low  func0 2mA pull down
 gpio45  : in  high func0 2mA pull down
 gpio46  : in  high func0 8mA no pull
 gpio47  : in  high func0 8mA no pull
 gpio48  : in  high func0 8mA no pull
 gpio49  : in  high func0 8mA no pull
 gpio50  : in  low  func0 2mA pull down
 gpio51  : in  low  func0 2mA pull down
 gpio52  : in  high func0 8mA pull up
 gpio53  : in  low  func0 2mA pull down
 gpio54  : in  low  func0 2mA pull down
 gpio55  : in  low  func0 2mA pull down
 gpio56  : in  low  func0 2mA pull down
 gpio57  : in  low  func0 2mA pull down
 gpio58  : in  low  func0 2mA pull down
 gpio59  : in  low  func0 2mA pull down
 gpio60  : in  low  func0 2mA pull down
 gpio61  : in  low  func0 2mA pull down
 gpio62  : in  low  func0 2mA pull down
 gpio63  : in  low  func0 2mA pull down
 gpio64  : in  low  func0 2mA pull down
 gpio65  : in  low  func0 2mA pull down
 gpio66  : in  low  func0 2mA pull down
 gpio67  : in  high func0 8mA pull up
 gpio68  : in  high func0 8mA pull up
 gpio69  : in  high func0 8mA pull up

gpiochip1: GPIOs 582-593, parent: platform/200f000.spmi:pmic@0:gpio@c000, 200f000.spmi:pmic@0:gpio@c000:
 gpio1 : ---
 gpio2 : in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio3 : out  high normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio4 : in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio5 : in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio6 : in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio7 : out  high normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio8 : in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio9 : out  high normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio10: in   low  normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio11: out  high normal  vin-0 pull-down 10uA              push-pull  high    atest-1 dtest-0
 gpio12: ---
1 Like