跳到主要内容
落纸 · 失落安定
本文仍在撰写中文章内容未来还会持续修改,当前版本不代表最终内容。

CMCC XR30:如何为一台社区已适配的路由器刷入自编译 ImmortalWrt/OpenWrt 固件

发布于
//6 分钟阅读/–––

前言:既 CMCC RAX3000Me 之后

我最近由于需要,又购入了一台 CMCC XR30 路由,最开始网络公开的教程调研这款路由属于 CMCC RAX3000Z 增强版,硬件方面和 CMCC RAX3000M 几乎一致,只是设计了立式外观,说实话还挺有设计感的

我之前有写过一篇 CMCC RAX3000Me 的刷机教程,目前我调研观察发现 CMCC XR30、CMCC RAX3000M、CMCC RAX3000Me 这三款路由器的硬件基础高度一致,都是 MTK7981 芯片,硬件差异主要在内存(包括 DDR3/4)、存储(普通版 Nand 128M 和算力版 EMMC 64G)

之前那篇文章我大概会侧重于实操如何使用工具,这篇文章我更多打算写一些相关附加知识

CMCC XR30 正面外观
CMCC XR30 侧面外观

前期拆机

我手上这台生产日期为 20240305,外观观察到这台机器一共有 4 个网口,应该为 4 个千兆,和 RAX3000M(e) 一样为 1 WAN + 3 LAN 标准组合,其中 WAN 口直通,LAN 口桥接到内部的交换机,通电后可以进入原 CMCC XR30 的系统,该有的功能就那样,没什么好看的

内部版式
背部版式

机器外部只有一个螺丝,隐藏在标签下方,揭下标签拧下螺丝后使用普通塑料撬棒沿周围撬开即可

拆解指南

闪存来自 GigaDevice(兆易创新),SOP8 封装的 128MB SPI NAND

闪存

其他的基本都在屏蔽罩下方,这边还要装回去用的,就不拆剩下的了

正式开始

准备物品

需要准备内容:

  1. 祖传或者野生的 USB-TO-TTL 3.3V 一个
  2. 带有直流电压测试功能和蜂鸣档测试功能的万用表一个(非必须,主要用于确定 TTL 引脚)
  3. 编译好的 MT7981 固件 (我使用了 padavanonly 大佬的 padavanonly/immortalwrt-mt798x-6.6 - Github 的分支,这个分支比较新)
  4. 981213 大佬开发的 MTK_UARTBOOT (981213/mtk_uartboot - Github) 工具
  5. 用于预引导 uboot 的 bl2 固件 (我使用 暗云 大佬预编译的 MT7981 的 bl2 固件 mt7981-ddr4-bl2.bin,具体参考 MediaTek Filogic 系列路由器串口救砖教程 - 暗云 - 博客园)
URAT 转 USB 调试线缆
万用表

找 TTL 引脚(此部分可以跳过,只有在未知情况下需要做)

如图所示,观察到主板上有一排 4 个焊盘,经验告诉我们这很有可能是我们要找的 TTL 调试引脚,接下来可以掏出万用表

主板正面 TTL 引脚指示图

GND 共地一般是最容易测量的,因为只需要测量每个接口和主板上与 GND 接通的任意位置阻值就可以了,这里我使用散热片作为 GND 测试,拨到万用表蜂鸣档,挨个测试,可以判断出图中最下方的引脚就是 GND 了

测试 GND 应在 掉电 的时候测量,避免其他干扰因素,理想情况下,GND 引脚和主板上与 GND 接通的任意位置阻值应非常接近 0Ω

测试 GND 引脚

其次是测量 VCC 电压的引脚,正常情况下,VCC 引脚在路由器通电后可以测量到稳定的电压并且不跳变,这个电压也通常与 RX/TX 数据引脚参考电压源相同,所以测出 VCC 后就可以相应的调整 TTL 模块的电平跳线,切换到对应电压标识处,即逻辑电平标准电压

将万用表直流电压档,通电后测量每个引脚对 GND 的电压,可以看到第 3 个引脚测量值始终稳定为 3.3V,第二个引脚在 3.25V - 3.3V 之间跳变,第 4 个引脚则是稳定在 0.06V

正常情况下,URAT 模块的 TX 引脚应该给设计为上拉到与 VCC 引脚对应的参考逻辑电平,所以第 2 个引脚即是 TX 引脚,第 4 个引脚则是 RX 引脚

测试第 2 个引脚
测试第 3 个引脚
测试第 4 个引脚
本文还在撰写中,我会很努力的...