Cisco Meraki MX64 / MX65
2GB 内存的企业分支网关,授权一过期就彻底不转发流量。DTS 已在内核主线,但官方没有成品固件。
- SoC
- Broadcom BCM58625(Cortex-A9 双核 @ 1.2GHz,Northstar Plus)
- 架构
- ARMv7 / armhf —— 不是 x86,装不了 pfSense 或 OPNsense
- 内存
- 2GB DDR3(4 × SK Hynix H5TC4G83CFR)
- 存储
- 1GB 裸 NAND(Micron MT29F8G08ABACA),非 eMMC
- 端口
- MX64:BCM58625 内置交换,5 × GbE / MX65:2 × GbE(WAN) + 2 颗 QCA8337 提供 10 × GbE(LAN) + BCM59111 PoE+ PSE
- 构建目标
- OpenWrt bcm53xx / bcm5862x,三个 image:mx64、mx64a0、mx65
- 二手价位
- 授权失效件极便宜,国内闲鱼有量但不大
这台是什么,为什么它变成了废铁
MX64 和 MX65 是 Cisco Meraki 面向分支机构的小型安全网关,2015 年前后的产品。放在今天看它的配置依然不寒酸:2GB DDR3 内存——对比一下,绝大多数消费级路由器是 128MB 到 512MB。
它现在几乎白送,原因和技术无关。Meraki 的整个产品逻辑建立在云授权上:授权到期,设备停止转发流量。 不是降级、不是限速,是停止工作。一颗电容都没坏,硬件完好,但它成了一块两斤重的塑料砖。
这是我想从这台设备开始建这个档案的原因。它是"厂商用商业模式杀死好硬件"这件事最干净的标本。
拆开看到什么
本节的芯片清单来自内核与 OpenWrt 的提交记录,已交叉核对;我自己的机器还在路上,实拍和实测会在到手后补上。 标注为已核实的部分不会再变,未核实的会明确写出来。
MX64 和 MX65 用的是同一颗 SoC:Broadcom BCM58625,双核 Cortex-A9 跑 1.2GHz,属于 Northstar Plus 平台。配 2GB DDR3 和 1GB 裸 NAND,一个 USB 2.0,主板上有内部串口排针。
真正有意思的是两者的网络部分完全不同,而这个差异很能说明企业设备的设计思路:
MX64 的 5 个千兆口全部来自 BCM58625 内置的交换单元。结构简单。
MX65 就复杂了:BCM58625 的交换单元只负责 2 个 WAN 口,10 个 LAN 口是外挂了两颗 Qualcomm QCA8337,另外还有一颗 Broadcom BCM59111KMLG 专门做 PoE+ 的 PSE。
这个拓扑值得多说两句,因为它解释了一个很多人搞不清的问题:为什么"口多"不等于"性能好"。
那 10 个 LAN 口之间的流量,如果发生在同一颗 QCA8337 内部,是芯片自己转发的,线速无压力。但跨两颗 QCA8337、或者 LAN 到 WAN 的流量,必须经过 SoC。这条上行链路的带宽,以及 1.2GHz 双核 A9 的处理能力,才是真正的天花板。厂商标称的"12 个千兆口"是接口数量,不是聚合吞吐能力。
企业设备这么设计不是偷工减料,是因为分支机构的真实流量模型就是"大量终端、少量上行"。理解了这一点,你才知道这台设备适合放在什么位置——以及不适合放在哪。
买之前必须知道的
这一节是我整理这台设备时觉得最该先写出来的部分,因为它能直接帮你省钱。
一、别买 W 版本。 MX64W / MX65W 的无线是两颗 Broadcom BCM43520KMLG,OpenWrt 不支持。刷完就是一台没有 Wi-Fi 的盒子,其余功能正常。W 版通常还卖得更贵,纯浪费。
二、有 A0 步进变体。 早期批次的 BCM58625 是 A0 版本,缺少 cache coherency,secondary-boot-reg 也不同,需要单独的设备树(meraki,mx64-a0),编译时是独立的 image 目标。下单前基本问不出来,到手必须自己确认,选错 image 起不来。
三、卖家"已升级到最新固件"是坏消息。 新版原厂固件把 mtd0(U-boot 分区)锁成只读了。刷机前先在原厂系统里查一下:
cat /sys/block/mtdblock0/ro
返回 0 可以直接写;返回 1 就得先加载 mtd-rw 模块解锁。顺便说,原厂固件是开着 telnet 的,这就是入口。
四、至少买两台。 你要替换 U-boot,第一台变砖的概率不低。第二台保持原厂状态很有用:做对照、验证步骤、以及拍下"授权过期后它到底怎么废掉"的实证画面。
工具上需要一根 3.3V TTL USB 串口线(115200 8N1)和一个 FAT 格式 U 盘——USB 启动是刷机路径里的必经一环。
完整操作记录
以下流程整理自 OpenWrt PR #16634 与 PR #3996(作者 Matthew Hagan),改过的 U-boot 来自 clayface 的仓库。我尚未亲手跑完,到手后会逐步替换成实拍记录,并标注与文档不一致的地方。
要理解的关键点是:这台设备的支持还停在 PR 阶段,官方下载页没有它的固件,你必须自己拉 patch 编译。 设备树本身已经进了 Linux 主线(bcm958625-meraki-kingpin.dtsi 那一组),但 OpenWrt 侧还带着额外的板级补丁和改过的 U-boot。
流程的骨架是这样:
- 从 telnet 进入原厂系统,确认 mtd0 是否只读
- 若被锁,
insmod mtd-rw.ko i_want_a_brick=1解锁,再用mtd write写入 - 若未锁,可直接
dd写入 U-boot - 替换 U-boot(原厂 U-boot 的
nand read只能读 2MB,而 kernel 分区更大,所以要么换成支持 UBI 的版本,要么走"小 U-boot 先引导"的两段式) - 插好装有 initramfs 的 FAT U 盘,按住 reset 上电,进入 USB 启动
- SCP 把 sysupgrade 镜像传到
192.168.1.1:/tmp,执行sysupgrade
第 4 步是整件事真正的硬骨头。DTS 有人做完了,编译有 AI 帮忙,但 bootloader 这一段是你会花掉大部分时间的地方——而且是唯一真正有变砖风险的地方。
哪些能用,哪些不能用
待实测。到手后这一节会填成一张明确的清单,至少覆盖:
- 各端口是否都被 DSA 驱动正确识别(
b53与qca8k) - 端口间桥接是否走硬件转发,还是要过 CPU
- 实测 NAT / 路由吞吐
- MX65 的 PoE+ 供电(预期不工作)
- USB 2.0 实测速度
- 功耗
这一节不会写"应该可以"。 没测的就标未测。
值不值得
结论待实测后给。但现在可以先说清判断标准:这台设备的价值不在性能——1.2GHz 的 A9 做软件转发,跑不过现在几百块的 x86 软路由。它的价值在于 2GB 内存 + 企业级做工 + 极低的获取成本,适合当一台安静、稳定、不发热的边缘设备长期挂着。
如果你要的是高吞吐,别买这个,去看二手 x86。如果你要的是一台能塞满服务、放在角落里跑三年不管的小盒子,它的性价比可能相当好。
顺带一句:不要在这台设备上追求装 Ubuntu 或 Debian。 它是 armhf,Ubuntu 对这个架构的支持一直在收缩;1GB 裸 NAND 也不适合承载 apt 那种大量小块随机写的发行版。真想要完整发行版,把 rootfs 放 USB,或者干脆换 x86 设备。这个话题我会单独写一条。
← 回到档案索引
关于本文,有问题、使用反馈或不同的实测结果,都欢迎留言。 涉及设备实测时,请尽量附上设备型号、固件版本和测试条件。 我会在对应留言下回复,已核实的修正会补进正文。
留言需登录 GitHub。不方便使用或评论未加载时,可以邮件反馈(itscraper@hotmail.com),邮件已预填本文链接。