共计 1584 个字符,预计需要花费 4 分钟才能阅读完成。
背景痛点
运营商定制路由器通常功能受限,比如 CMCC RAX3000M CH EC 算力版的原厂固件就存在以下问题:

- 无法安装第三方插件
- QoS 等高级功能缺失
- 远程管理权限不足
刷 OpenWrt 能解锁全部潜能,实现:
- 多拨负载均衡
- 科学上网插件
- 内网穿透服务
- 定制防火墙规则
硬件准备
UART 接口焊接
主板上的调试接口通常未焊接排针,需要自行焊接。接口定义如下:
[主板正面]
┌─────┐
| GND | TX
| RX | VCC (勿接)
└─────┘
TTL 连接示意图
路由器 UART ──→ TTL 转 USB
GND ──→ 黑色线 (GND)
TX ──→ 白色线 (RX)
RX ──→ 绿色线 (TX)
推荐使用 CP2102 芯片的转换器,波特率设为 115200。
固件提取
进入 Uboot 控制台
- 通电瞬间连续按 Ctrl+C 中断启动
- 出现
MT7981>提示符即进入成功
TFTP 备份命令
# 设置本地 IP(根据实际修改)setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.100
# 备份整个闪存(SPI NAND 128MB)nand read 0x44000000 0x0 0x8000000
tftp 0x44000000 full_backup.img 0x8000000
# 分区备份示例(仅 bootloader)nand read 0x44000000 0x0 0x200000
tftp 0x44000000 uboot.img 0x200000
分区表修改
原厂分区分析
dev: size offset
mtd0: 00040000 00000000 "BL2"
mtd1: 00080000 00040000 "u-boot-env"
mtd2: 00100000 000c0000 "Factory"
mtd3: 00140000 001c0000 "FIP"
mtd4: 01e00000 00300000 "firmware"
OpenWrt 适配方案
# 在 Uboot 中执行
fw_setenv mtdparts \
"mtdparts=spi-nand0:256k(bl2),512k(u-boot-env),1M(factory),1280k(FIP),-(firmware)"
Wi-Fi 驱动适配
内核配置关键项
CONFIG_MT7981_WMAC=y
CONFIG_MTD_SPI_NAND_USE_4K_SECTORS=y
CONFIG_PACKAGE_kmod-mt7981-firmware=y
编译时需注意:
- 选择 `Target Profile: MediaTek MT7981″
- 取消勾选
Build the OpenWrt SDK加速编译 - 必须包含
luci-proto-relay用于 Mesh 组网
救砖指南
常见故障现象
- 电源灯常亮不闪:uboot 损坏
- 反复重启:分区表错误
- 只有 5G 灯亮:DTB 不匹配
编程器救砖步骤
- 拆焊 SPI NAND 芯片(MX35LF1GE4AB)
- 用编程器写入原始备份
- 重点校验前 4MB 数据
- 重焊后测试 UART 输出
成果验证
成功启动后检查:
# 查看内核日志
dmesg | grep "MT7981"
# 预期输出
[2.530000] mt7981-wmac 18000000.wmac: HW/SW Version: 0x8a108a10
# 检查分区
cat /proc/mtd
# 正确应显示
mtd4: 01e00000 00000000 "firmware"
# Wi-Fi 接口
iwconfig | grep "MT7981"
# 应识别出 rax0 和 rai0 双频段
经验总结
- 备份原厂固件时建议全盘备份三次,对比 MD5 值确保一致性
- 焊接 UART 时建议使用热风枪而非烙铁,避免破坏过孔
- 遇到启动失败时,优先检查 uboot 环境变量是否残留旧参数
- 2.4G 频段需要单独加载 EEPROM 数据,位于 Factory 分区 0x40000 位置
整个流程约需 3 - 4 小时,重点在于分区处理的准确性。刷机后路由器可稳定承载 800Mbps 的 PPPoE 拨号,无线吞吐量较原厂提升 40% 以上。
正文完
