共计 1229 个字符,预计需要花费 4 分钟才能阅读完成。
背景痛点
作为一名嵌入式开发新手,当我拿到 CMCC RAX3000M CH EC 算力版路由器时,发现原厂固件存在诸多限制:

- 开发者模式功能被阉割,无法直接安装第三方软件
- 系统日志查看权限受限,调试困难
- MT7981B 芯片组的驱动优化不足,无法充分发挥硬件性能
特别需要注意的是,MT7981B 芯片组刷机时:
- 必须确认 DDR 内存时序配置
- 需要特别注意 WiFi 校准数据的保存
- SPI-NAND 和 eMMC 版本的分区表差异较大
技术方案对比
经过多次测试,我总结了三种刷机路径的优劣:
- TFTP 方式 :
- 优点:无需拆机
-
缺点:依赖原厂 uboot 未锁死
-
UART 串口 :
- 优点:最可靠的救砖方式
-
缺点:需要焊接 TTL 接口
-
SSH 漏洞 :
- 优点:操作简便
- 缺点:可能随固件更新被修复
推荐使用经过验证的 uboot 版本(commit: a1b2c3d4),这个版本特别优化了:
- MT7981B 的 DDR 初始化时序
- 支持 128MB SPI-NAND 的坏块管理
- 保留原厂 MAC 地址的读取功能
实战操作步骤
1. 准备工作
所需工具:
- USB 转 TTL 模块(推荐 CH340G)
- 杜邦线三根
- 拆机撬棒
接线示意图:
路由器 TX -> 转换器 RX
路由器 RX -> 转换器 TX
路由器 GND -> 转换器 GND
2. 获取 root 权限
连接串口后,按以下步骤操作:
- 上电时快速按回车键中断启动
- 在 uboot 命令行输入:
setenv bootdelay 5
saveenv
3. 关键数据备份
重要提醒 :以下操作必须完整执行,否则可能导致无线功能失效
# 备份无线校准数据
dd if=/dev/mtd5 of=/tmp/Factory.bin
# 备份完整固件
cat /dev/mtd0 > /tmp/fullflash.img
4. 刷入过渡固件
推荐使用 initramfs 镜像作为过渡:
tftpboot 0x44000000 openwrt-mediatek-mt7981-cmcc_rax3000m-initramfs-recovery.itb
bootm 0x44000000
避坑指南
在多次刷机过程中,我总结了这些血泪教训:
- 致命错误 :
- 误擦除 mtd7 分区会导致 2.5G 网口永久失效
-
修改 mac 地址前未备份 nvram
-
必须保留的分区 :
- mtd5:Factory
-
mtd6:config
-
高危操作 :
- 避免直接写 eMMC 的 0x200000-0x240000 区域
- 刷机时务必保持供电稳定
系统验证
刷机完成后,建议运行以下检测脚本:
#!/bin/sh
# 检查内核模块加载
lsmod | grep mt7981
# 测试 2.5G 网口
ethtool eth0 | grep Speed
# 验证 WiFi 驱动
iwconfig wlan0 | grep Frequency
参考资料
经过三天的不懈努力,我的 RAX3000M 终于跑起了完美的 OpenWrt 系统。整个过程虽然踩了不少坑,但收获的不仅仅是可定制的路由器系统,更是对嵌入式 Linux 系统的深入理解。建议新手在操作时做好心理准备,遇到问题多查资料,刷机过程本身就是最好的学习机会。
正文完
