Cisco Meraki MX64/MX65 image support

The 24.10.3 branch release is almost here worth testing to see if the issue is gone:
openwrt-bcm53xx-generic-meraki_mx65-squashfs.sysupgrade.bin

BusyBox v1.36.1 (2025-09-19 21:19:38 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 24.10.3, r28872-daca7c049b
 -----------------------------------------------------
opkg list-installed
base-files - 1662~daca7c049b
busybox - 1.36.1-r2
ca-bundle - 20250419-r1
ca-certificates - 20250419-r1
cgi-io - 2022.08.10~901b0f04-r21
curl - 8.12.1-r1
dnsmasq - 2.90-r4
dropbear - 2024.86-r1
firewall4 - 2024.12.18~18fc0ead-r1
fstools - 2024.07.14~408c2cc4-r1
fwtool - 2019.11.12~8f7fe925-r1
getrandom - 2024.04.26~85f10530-r1
jansson4 - 2.14-r3
jshn - 2025.07.23~49056d17-r1
jsonfilter - 2025.04.18~8a86fb78-r1
kernel - 6.6.104~3dfba63a768cb9bdc867d97fd68280e8-r1
kmod-crypto-crc32c - 6.6.104-r1
kmod-crypto-hash - 6.6.104-r1
kmod-gpio-button-hotplug - 6.6.104-r5
kmod-hwmon-bcm59111 - 6.6.104-r1
kmod-hwmon-core - 6.6.104-r1
kmod-i2c-core - 6.6.104-r1
kmod-leds-gpio - 6.6.104-r1
kmod-leds-pwm - 6.6.104-r1
kmod-lib-crc-ccitt - 6.6.104-r1
kmod-lib-crc32c - 6.6.104-r1
kmod-nf-conntrack - 6.6.104-r1
kmod-nf-conntrack6 - 6.6.104-r1
kmod-nf-flow - 6.6.104-r1
kmod-nf-log - 6.6.104-r1
kmod-nf-log6 - 6.6.104-r1
kmod-nf-nat - 6.6.104-r1
kmod-nf-reject - 6.6.104-r1
kmod-nf-reject6 - 6.6.104-r1
kmod-nfnetlink - 6.6.104-r1
kmod-nft-core - 6.6.104-r1
kmod-nft-fib - 6.6.104-r1
kmod-nft-nat - 6.6.104-r1
kmod-nft-offload - 6.6.104-r1
kmod-nls-base - 6.6.104-r1
kmod-phy-bcm-ns-usb2 - 6.6.104-r1
kmod-ppp - 6.6.104-r1
kmod-pppoe - 6.6.104-r1
kmod-pppox - 6.6.104-r1
kmod-slhc - 6.6.104-r1
kmod-tun - 6.6.104-r1
kmod-usb-bcma - 6.6.104-r1
kmod-usb-core - 6.6.104-r1
kmod-usb-ehci - 6.6.104-r1
kmod-usb-ohci - 6.6.104-r1
kmod-usb2 - 6.6.104-r1
libblobmsg-json20240329 - 2025.07.23~49056d17-r1
libc - 1.2.5-r4
libcap-ng - 0.8.4-r1
libcurl4 - 8.12.1-r1
libgcc1 - 13.3.0-r4
libiwinfo-data - 2024.10.20~b94f066e-r1
libiwinfo20230701 - 2024.10.20~b94f066e-r1
libjson-c5 - 0.18-r1
libjson-script20240329 - 2025.07.23~49056d17-r1
liblua5.1.5 - 5.1.5-r11
liblucihttp-ucode - 2023.03.15~9b5b683f-r1
liblucihttp0 - 2023.03.15~9b5b683f-r1
liblz4-1 - 1.10.0-r1
libmbedtls21 - 3.6.4-r1
libmnl0 - 1.0.5-r1
libnftnl11 - 1.2.8-r1
libnghttp2-14 - 1.63.0-r1
libnl-tiny1 - 2025.03.19~c0df580a-r1
libpthread - 1.2.5-r4
libubox20240329 - 2025.07.23~49056d17-r1
libubus-lua - 2025.07.02~5952b48e-r1
libubus20250102 - 2025.07.02~5952b48e-r1
libuci-lua - 2025.01.20~16ff0bad-r1
libuci20250120 - 2025.01.20~16ff0bad-r1
libuclient20201210 - 2024.10.22~88ae8f20-r1
libucode20230711 - 2025.07.18~3f64c808-r1
libudebug - 2025.08.24~edeb4d6d
libustream-mbedtls20201210 - 2024.07.28~99bd3d2b-r1
logd - 2024.04.26~85f10530-r1
lua - 5.1.5-r11
lua-cjson - 2.1.0-r5
luafilesystem - 1.8.0-r1
luci - 25.250.61039~923f8d9
luci-app-firewall - 25.250.61039~923f8d9
luci-app-openwisp - 25.250.61039~923f8d9
luci-app-package-manager - 25.250.61039~923f8d9
luci-base - 25.250.61039~923f8d9
luci-lib-nixio - 25.250.61039~923f8d9
luci-light - 25.250.61039~923f8d9
luci-mod-admin-full - 25.250.61039~923f8d9
luci-mod-network - 25.250.61039~923f8d9
luci-mod-status - 25.250.61039~923f8d9
luci-mod-system - 25.250.61039~923f8d9
luci-proto-ipv6 - 25.250.61039~923f8d9
luci-proto-ppp - 25.250.61039~923f8d9
luci-theme-bootstrap - 25.250.61039~923f8d9
mtd - 26
netifd - 2025.05.23~7901e66c-r1
netjson-monitoring - 0.2.0-r2
nftables-json - 1.1.1-r1
nvram - 12
odhcp6c - 2024.09.25~b6ae9ffa-r1
odhcpd-ipv6only - 2024.05.08~a2988231-r1
openvpn-mbedtls - 2.6.14-r1
openwisp-config - 1.1.0-r2
openwisp-monitoring - 0.2.0-r2
openwrt-keyring - 2024.11.01~fbae29d7-r2
opkg - 2024.10.16~38eccbb1-r1
osafeloader - 1
otrx - 2024.10.16~88fbd526-r1
ppp - 2.5.1-r1
ppp-mod-pppoe - 2.5.1-r1
procd - 2024.12.22~42d39376-r1
procd-seccomp - 2024.12.22~42d39376-r1
procd-ujail - 2024.12.22~42d39376-r1
rpcd - 2025.09.01~bba95191-r1
rpcd-mod-file - 2025.09.01~bba95191-r1
rpcd-mod-iwinfo - 2025.09.01~bba95191-r1
rpcd-mod-luci - 20240305-r1
rpcd-mod-rrdns - 20170710
rpcd-mod-ucode - 2025.09.01~bba95191-r1
ubi-utils - 2.2.1-r1
ubox - 2024.04.26~85f10530-r1
ubus - 2025.07.02~5952b48e-r1
ubusd - 2025.07.02~5952b48e-r1
uci - 2025.01.20~16ff0bad-r1
uclient-fetch - 2024.10.22~88ae8f20-r1
ucode - 2025.07.18~3f64c808-r1
ucode-mod-fs - 2025.07.18~3f64c808-r1
ucode-mod-html - 1
ucode-mod-math - 2025.07.18~3f64c808-r1
ucode-mod-ubus - 2025.07.18~3f64c808-r1
ucode-mod-uci - 2025.07.18~3f64c808-r1
uhttpd - 2025.07.06~7e64e8ba-r4
uhttpd-mod-ubus - 2025.07.06~7e64e8ba-r4
urandom-seed - 3
urngd - 2023.11.01~44365eb1-r1
usign - 2020.05.23~f1f65026-r1

How do you disable EEE?

Unfortunately the issue is still here:

root@sw0:~# uptime -s
2025-09-22 16:09:59
root@sw0:~# logread |grep lan3 | grep is\ down
Mon Sep 22 16:30:29 2025 daemon.notice netifd: Network device 'lan3' link is down
Mon Sep 22 19:47:41 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 00:47:23 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 01:38:35 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 03:34:37 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 03:35:40 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 06:00:05 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 11:12:43 2025 daemon.notice netifd: Network device 'lan3' link is down
Tue Sep 23 13:21:35 2025 daemon.notice netifd: Network device 'lan3' link is down
ethtool --set-eee $interface eee off tx-lpi off

to disable EEE on all interfaces I used this in /etc/rc.local:

for i in wan1 wan2 lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12; do
  ethtool --set-eee $i eee off tx-lpi off
done

But it didn’t solve the problem: instead of random port flapping, the interface goes silently down (no connectivity on the problematic port, and nothing in dmesg). I had to use watchcat to automatically reboot the switch when this happened.

I have been trying to figure out the reason my clients (phones) keep disconnecting and my fireTV on Ethernet buffers occasionally. I wonder if its because of this. I have set up to boot every morning. And in the 3 hours it has been up, it had one such fault. Although I only am using one port LAN12 to go to my living area with the Ethernet cable in attic.

agarg@LM5550AG:~$ ssh -l root 192.168.111.1
root@192.168.111.1's password: 


BusyBox v1.36.1 (2025-07-24 01:46:38 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 24.10.2, r28739-d9340319c6
 -----------------------------------------------------
root@MX65-2479:~# uptime -s
2025-09-23 05:46:53
root@MX65-2479:~# logread |grep lan | grep is\ down
Tue Sep 23 05:47:59 2025 daemon.notice netifd: Network device 'lan12' link is down
root@MX65-2479:~# 

Is it easy? How does one set it up? My device boots fully in less than 1 minute. It is faster than most others I have, in booting.

###################### MORE UPDATE ##########

I noticed that the two MX65 that are in service in my home, only one had the incident observed in 12 hours. And that too within 1.5 minutes of reboot, which I think is due to reboot of the openwrt device connected to the lan12. I thought I will just update as it might not be that big an issue at my location.

###################### LAST UPDATE ########## No evidence of lan port drop but that may also be due to different type of connected devices.

BusyBox v1.36.1 (2025-09-21 23:22:49 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 24.10.3, r28872-daca7c049b
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@MX65W:~# logread |grep lan | grep is\ down
root@MX65W:~# uptime -s
2025-09-23 09:16:13
root@MX65W:~# logread |grep lan | grep is\ down
root@MX65W:~# 

You just need to install watchcat (and optionally luci-app-watchcat if you want to configure it via luci).

Thanks. I have three MX65 in service. Two of them use the 24.10.2 image from Openwrt site and one uses a 24.10.2 POE image from @konus and many thanks to him. I have had no up down issues in the last 24 hours. Just thought I mention to you for your investigations. When @konus or @hecatae come out with 24.10.2 POE build, I will give it a spin.

Thanks.

@agarg do you need a 24.10.3 build?

I have no real need to upgrade, however, if a 24.10.3 with POE is available, I could deploy it and so it would get tested.

I have a 24.10.2 POE version on one of my MX65. I also have 24.10.2 Non POE firewall. And finally, I have another 24.10.3 Non POE as a switch.

Is it possible to get 24.10.3 POE version that I can keep upgrading without losing the POE capability? And, if so, how is it done? any pointers?

If anyone’s interested, I finally solved the port-flapping issue by splitting the vlan trunk interface across two NICs, effectively halving the traffic on the problematic port (lan3). The router has now an uptime of 10 days without a single flapping event.

Did dd if=uboot_mx65 of=/dev/mtdblock0

received some error and eventually got disconnected from the telnet terminal. Should have probably first copied the file from usb drive to the likes of /tmp/ , but followed the instruction in the wiki and started writing mtd0 straight from usb drive. Now, on reboot, if I hold the reset button telnet does not become active on 192.168.1.1

Want to attach serial interface, but not sure about the pinout. And not sure if mtd0 got corrupted due to above, should I get any activity on the serial interface at all?

*Meraki MX65

Most likely not. I bumped into your exact issue and ruined one of my MX65.

did you use a programmer to rewrite mtd0 on the eeprom to recover?

interesting enough, the usb stick and files on it are fine, because I installed OpenWRT using it on another Meraki MX65 right after.

mtd0 is on the NAND flash. I’m not very confident with soldering those tiny pins of the NAND chip, so I gave up for now; maybe I’ll try again sometime in the future.

I'm not seeing that on the wiki:

cd /tmp/media/sda1 literally means change directory to the /tmp/ where the usb drive is mounted?

You may somewhat contradict yourself:

/tmp/media/sda1 - mounted usb drive
/tmp/ - internal/ram

/tmp/ is not equal /tmp/media/sda1

At the risk of diverting this thread on a tangent, if you do not believe anything under /tmp/ is equal to /tmp/ that is your choice.

That’s not true. /tmp/media/sda1 means the USB drive is mounted at the mount point /tmp/media/sda1 (i.e., the working partition on the USB drive is /dev/sda1). Its contents (files and folders) still reside on the USB drive itself, not in RAM.

Yes, I believe that if we had copied the U-Boot image from /tmp/media/sda1 to /tmp before executing the dd command, we wouldn’t have run into this unfortunate issue. If the copy to /tmp had succeeded, it would indicate that the USB mount was functioning properly at that specific time.