跳过正文
  1. 文章/

H5000M CPE ✖️ MT5700M: 配置、构建与使用体验

··2444 字·5 分钟·
目录
不论是我在毕业之前还是毕业之后,不论我在参加工作之前还是参加工作之后,我对路由器的热情一直没减少。从一开始的 AX1800、Cudy AX3000,我一直以来都更青睐能自己完全控制的网络设备。近期出差的时候总头疼网络问题,酒店的 Wi-Fi 总是不尽人意,再加上高质量的科学上网需求,于是我买了这个 CPE、上了 MT5700M,最后有了这篇 Blog。

商品图
#

各大购物平台上随便一搜,CNC 的小体积外观还是很扎眼的,在能自选模块的 CPE 品类里面,能选的本身也不多。买之前还挣扎了一会鲲鹏 C2000 MAX,但是塑料壳以及塑料壳的散热不太讨喜,最后还是选了 H5000M,凑了一些购物平台的图。老板还是很有趣的,可惜我比较讨厌,老板不是很喜欢和我讲话。

H5000M 硬件接口与配置标注

拆解与安装
#

手很痒,到手第一件事是先拆开,顺便买了一块能给我提供很大安慰作用的紫铜散热片,给 MT5700M 准备的。其实感觉买铝的散热片即可,铜的会太重了,而且本身模块就有屏蔽罩,带来的提升并不大。 刚拆开时可以看到主板的正反面,散热片的做工也很好,可见 MT7987、MT7991、MT7976。这三个芯片上有导热膏,如果打算拆开的话记得准备硅脂,我在粘回去的时候又上了一些 TF7。

供电的话走 PD 即可,2.5G 网口做工也不错,作为便携路由器也不会一闪一闪地刺眼,白色的状态灯也比彩灯要好看一些。

模块与主板
#

H5000M 散热器和风扇安装

配置
#

dae 蛮适合单独创建一个 proxylan 语义的网桥,并单独桥接到一个 AP、一个网口上,然后配置 dae 单独代理这个桥接接口。这样能做到左侧网口直连,右侧网口代理,第一个 AP 直连,第二个 AP 代理,切换起来很方便,日常使用几乎无感。

H5000M ImmortalWrt 网络接口

MT5700M WebUI 实现的 AT 很完整,可根据实际情况绑定小区或者锁频。可惜我在写这篇 Blog 时,5G 信号不太好,所以没测速了,预期是有 500 Mbps 以上的。

MT5700M WebUI 网络状态
AT 配置比较好办,要么用 M.2 转 USB 连接电脑手动配置,要么直接在 OpenWrt 中配置也可以。刚到手那会儿费了很大劲配手动拨号,还做梦以为能拿到 IPv4 公网,实际没拿到就摆烂了,直接 NAT 算了,拨号交给模块。 但千万小心管理端口,可能会被公网访问。
MT5700M WebUI USB 和网口模式

H5000M iStore 软件包界面
iStore 蛮好用,可以挂 UU 主机加速器之类。

构建环境
#

$ fastfetch --logo none --pipe --structure 'OS:Kernel:CPU:Memory:Disk'
OS: Fedora Linux 44 (KDE Plasma Desktop Edition) x86_64
Kernel: Linux 7.1.6-201.fc44.x86_64
CPU: AMD Ryzen 9 9950X (32) @ 5.76 GHz
Memory: 18.04 GiB / 91.95 GiB (20%)
Disk (/): 1.11 TiB / 1.82 TiB (61%) - btrfs
项目版本或配置
源码ImmortalWrt openwrt-25.12
基础提交b4efc93f5b40
目标mediatek / filogic / hiveton_h5000m
Podman5.8.4
构建镜像ghcr.io/openwrt/buildbot/buildworker-v3.8.0
镜像摘要sha256:e3f4d838dfe65906af93923a7902e56e2ed861b8debffcca3d0db89c580905ae
下载并发make download -j4
编译并发make -j32 V=sc

构建使用官方 Buildbot 容器,源码目录挂载为 /builder。下载阶段使用 4 路并发,依赖进入 dl/ 缓存后,再使用 32 路并行完成编译和镜像打包。

podman run --rm --network=host \
  --entrypoint /bin/bash \
  -e 'CURL_OPTIONS=-4 --connect-timeout 20' \
  -v "$PWD:/builder:rw,Z" \
  -w /builder \
  ghcr.io/openwrt/buildbot/buildworker-v3.8.0@sha256:e3f4d838dfe65906af93923a7902e56e2ed861b8debffcca3d0db89c580905ae \
  -lc 'make download -j4 && make -j32 V=sc'

本机运行的 daed 绑定了物理网卡,Podman 默认网络下的容器访问镜像源会出现连接超时。具体 CN 环境下,网络参数与实际环境有关。

外部软件包
#

MT5700M 的 AT 服务与 LuCI 管理页面来自下面的独立仓库,不属于 ImmortalWrt 默认源码。本次构建没有选择 QModem 等通用 modem server,只保留了针对 MT5700M 的 at-webserver,避免多个服务竞争 AT 串口。

构建时将仓库中的 at-webserverluci-app-at-webserver 放入源码树的 package/mt5700webui-openwrt-server/,在 menuconfig 中选中 luci-app-at-webserver;它会自动选择后端服务及 Python 依赖。执行整机编译时会一并打包,也可以单独构建:

$ make package/at-webserver/compile V=sc
$ make package/luci-app-at-webserver/compile V=sc

本次构建生成的独立 APK 位于 bin/packages/aarch64_cortex-a53/base/

构建产物用途
at-webserver-1.0-r16.apkAT WebSocket 后端、MT5700M WebUI 与 init 服务
luci-app-at-webserver-1.0-r26.apkLuCI 配置和 AT 调试界面
luci-i18n-at-webserver-zh-cn-0.apk简体中文翻译

构建配置
#

这里的“默认配置”指同一源码版本中,选择 mediatek / filogic / hiveton_h5000m 后生成的 ImmortalWrt 默认配置,不是 Hiveton 官方闭源固件。

目标与设备默认项
#

CONFIG 选择 H5000M

Target System (MediaTek Ralink ARM) --->
    Subtarget (Filogic 8x0) --->
        Target Profile (Hiveton H5000M)

对应的最小目标配置为:

CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_filogic=y
CONFIG_TARGET_mediatek_filogic_DEVICE_hiveton_h5000m=y

H5000M profile 已经包含无线、风扇、USB 3.0、2.5GbE PHY 和 eMMC 文件系统所需的基础支持。这些项目不是本次构建额外添加的功能。

CONFIG H5000M 默认硬件支持

<*> kmod-hwmon-pwmfan
<*> kmod-usb3
<*> mt7987-2p5g-phy-firmware
<*> kmod-mt7996e
<*> kmod-mt7992-23-firmware
<*> f2fsck
<*> mkf2fs
<*> automount

相对默认配置的主要增量
#

下面只列主动使用的顶层功能。它们自动选择的 Python、libcurl、SQLite、collectd、内核模块和 LuCI 运行库不再逐项展开。

CONFIG LuCI 与日常管理

LuCI --->
    Applications --->
        <*> luci-app-argon-config
        <*> luci-app-at-webserver
        <*> luci-app-commands
        <*> luci-app-statistics
        <*> luci-app-store
    Themes --->
        <*> luci-theme-argon
    Collections --->
        <*> luci-ssl-openssl

CONFIG 网络服务与透明代理

Network --->
    <*> AdGuardHome
    <*> daed
    <*> luci-app-adguardhome
    <*> luci-app-daed
    <*> luci-proto-wireguard
    <*> wireguard-tools

CONFIG MT5700M 与诊断工具

Kernel modules --->
    USB Support --->
        <*> kmod-usb-net-cdc-mbim
        <*> kmod-usb-net-cdc-ncm
        <*> kmod-usb-serial-option

Network --->
    <*> curl
    <*> ip-full
    <*> iperf3
    <*> ss
    <*> tcpdump

Utilities --->
    <*> ttyd
    <*> usbutils

为了运行 dae,配置还启用了 BTF、kprobe、ftrace、netkit 和 XDP socket 等 eBPF 相关内核能力。

CONFIG dae 所需的主要内核增量

CONFIG_KERNEL_BPF_EVENTS=y
CONFIG_KERNEL_DEBUG_INFO_BTF=y
CONFIG_KERNEL_DEBUG_INFO_BTF_MODULES=y
CONFIG_KERNEL_FTRACE=y
CONFIG_KERNEL_KPROBES=y
CONFIG_KERNEL_NETKIT=y
CONFIG_KERNEL_XDP_SOCKETS=y

性能测试
#

测试时间:2026-08-07。服务端直接运行在 H5000M 上,因此结果包含路由器本机 CPU、网络栈和 iperf3 的开销,并非外接 2.5GbE 服务端条件下的纯无线转发上限。测试流量在路由器本机终止,不经过 dae。

AP:H5000M / MT7992E / mt7996e
客户端:MT6639 / mt7925e
无线:5 GHz / 信道 60 / EHT160 / 2×2
工具:iperf 3.20 / 4 流
时长:120 秒 × 2 轮/方向
采样:10 秒

测试图表
#

图中不区分两轮测试:实时曲线和平均值按相同时间点合并计算,最低、最高温度取两轮测试的整体极值。

实时吞吐
#

吞吐与温度统计
#

上下行温升
#

两轮采样合并后的均值:上行 801.6 Mbit/s,下行 922.6 Mbit/s。CPU 和 MT7992 的最高采样温度分别为 64.6°C 和 70°C。由于流量在路由器本机终止,温升图不计入未参与转发的 2.5GbE PHY。温升图按时间点取两轮平均;两个 MT7992 hwmon 节点始终返回相同数值,图中合并为一条曲线。

参考资料
#

类别资料用途
H5000MHiveton H5000M 产品文档安装、使用、固件编译、系统恢复与支持的 5G 模组
H5000MHiveton H5000M 更新系统WebUI 与 U-Boot 固件更新流程
MT5700M-CN鼎桥官方产品页制式、峰值速率、工作温度与硬件接口
MT5700M-CN产品彩页 PDF频段、MIMO、尺寸及软件特性;经销商网站镜像
ImmortalWrtopenwrt-25.12 源码本文自编译固件使用的源码分支
ImmortalWrtH5000M 设备镜像定义目标设备、镜像格式与默认设备包
ImmortalWrtH5000M 设备树板级硬件、接口与外设定义
Wi-FiOpenWrt mt76 软件包定义MT7996 驱动及 MT7992 固件包依赖
Wi-FiMT7996/MT7992 驱动源码开源无线驱动实现
测试ESnet iperf3 文档吞吐测试参数、手册与已知问题

本文在资料整理、图表制作、图片编排与文字校对过程中,由 OpenAI Codex 协助完成。

freeez
作者
freeez
我会哭的很大声

相关文章