XR30 路由器折腾笔记

0. 概况

中国移动 XR30, RAX3000M 换壳,原始配置为 128MB + 512MB RAM,带 1 个 USB 3.0。
⭐原机主扩容为了 512MB + 1GB RAM

硬件信息:

项目 型号 说明
CPU MT7981BA Arm A53 (1.3 GHz, 2 core)
RAM Micron DDR4 D9WWP 1GB 官网
SPI NAND Winbond 25N04KVZEIR 512MB 官网
无线 MT7976CN WiFi 6
有线 MT7531AE 1*千兆 WAN + 3*千兆 LAN
电源 12V 1A
UART 3.3V 115200n8

系统信息:

主机名 WinWrt
型号 CMCC RAX3000M
固件版本 ImmortalWrt 21.02-SNAPSHOT r0-24546fd /
LuCI openwrt-21.02 branch git-23.098.38725-847bd6b
内核版本 5.4.255

1. 先备份

1.1 dd 备份

df -h查询显示 tmp 分区大小系统当前只有 400MB,需要调大到内存的实际可用大小,用于存放 512MB 的固件备份

1
mount -o remount,size=900M /tmp

查看 MTD 分区结构

1
2
3
4
5
6
7
8
root@WinWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 20000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2" # 1MB Boot Loader Stage 2,ATF
mtd2: 00080000 00020000 "u-boot-env" # 512KB Uboot 环境变量
mtd3: 00200000 00020000 "Factory" # 2MB 出厂信息(背面贴纸)
mtd4: 00200000 00020000 "FIP" # 2MB Uboot
mtd5: 1da80000 00020000 "ubi" # 474.5 MB

查看 ubi 分区信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
root@WinWrt:~# ubinfo -a
UBI version: 1
Count of UBI devices: 1
UBI control device major/minor: 10:62
Present UBI devices: ubi0

ubi0
Volumes count: 3
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 3796 (482000896 bytes, 459.6 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 75
Current maximum erase counter value: 2
Minimum input/output unit size: 2048 bytes
Character device major/minor: 249:0
Present volumes: 0, 1, 2

Volume ID: 0 (on ubi0)
Type: dynamic
Alignment: 1
Size: 29 LEBs (3682304 bytes, 3.5 MiB)
State: OK
Name: kernel
Character device major/minor: 249:1
-----------------------------------
Volume ID: 1 (on ubi0)
Type: dynamic
Alignment: 1
Size: 640 LEBs (81264640 bytes, 77.5 MiB)
State: OK
Name: rootfs
Character device major/minor: 249:2
-----------------------------------
Volume ID: 2 (on ubi0)
Type: dynamic
Alignment: 1
Size: 3048 LEBs (387022848 bytes, 369.0 MiB)
State: OK
Name: rootfs_data
Character device major/minor: 249:3

备份每个分区

1
2
3
4
5
6
#dd if=/dev/mtd0 of=/tmp/mtd0_spi0.0.bin bs=131072 # 全盘
dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin bs=131072
dd if=/dev/mtd2 of=/tmp/mtd2_u-boot-env.bin bs=131072
dd if=/dev/mtd3 of=/tmp/mtd3_Factory.bin bs=131072
dd if=/dev/mtd4 of=/tmp/mtd4_FIP.bin bs=131072
dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin bs=131072

MD5 校验,防止传输出错

1
md5sum /tmp/mtd1_BL2.bin

1.2 面板备份

再从面板备份一份,据称此处备份不包含 ECC 数据,恢复时能避免因 ECC 校验出错而失败。
系统 > 备份与升级 > 保存 mtdblock 内容 > spi0.0

2. 与 RAX3000M 的区别

XR30 与 RAX3000M 的硬件配置相近,但不能直接通刷同一固件。

  1. NAND 方面,与 RAX3000M的华邦不同,XR30 使用的是兆易创新 GD5F1GM7UE,该颗粒在开启 ECC 时对 spare 区读写范围的差异导致了不适配。
    GigaDevice_GD5F1GM7RE_阵列结构
  2. RAX3000M 有 RGB 共三颗LED,XR30 则为 RW 两颗LED。这个问题可以修改dts设备树文件解决。检索关键词RAX3000z led
    参考dtsi文件,参考路径openwrt/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/
1
2
3
4
5
6
7
8
9
10
11
12
13
leds {
compatible = "gpio-leds";

red_led: red {
label = "xr30:red";
gpios = <&pio 35 GPIO_ACTIVE_LOW>;
};

white_led: white {
label = "xr30:white";
gpios = <&pio 34 GPIO_ACTIVE_LOW>;
};
};

救砖资料

Uboot 没挂

  1. Uboot WebUI 救砖
    长按 reset 插电,直至 LED 闪过,电脑插线手动设置 ip 为 192.168.1.x,浏览器访问 Uboot
    更新系统固件:http://192.168.1.1
    更新 Uboot 固件:http://192.168.1.1/uboot.html
    更新 BL2 固件:http://192.168.1.1/bl2.html
  2. Tftpd 救砖
    CMCC RAX3000M 使用 Tftpd 刷写 OpenWrt 固件的救砖方法

Uboot 挂了

  1. 编程器救砖
  2. mtk_uartboot 救砖
    mtk_uartboot 食用教程
    【恩山】XR30 刷固件H大支持了及 mtk_uartboot - 0.1.1 TTL 救砖说明
    需要准备: DDR4的BL2,Uboot (fip.bin)

扩容资料

【恩山】红米 AX6000 硬改 2GB 内存+硬改 512MB 闪存教程

这篇教程详尽地介绍了如何对红米 AX6000 路由器进行硬件改造,包括扩展内存至 2GB、闪存升级至 512MB,以及探索 USB 接口的改造可能性。以下是主要内容的汇总:

🔧 内存升级至 2GB

  • 原厂配置:512MB DDR4(三星 K4A4G165WE-BCWE)
  • 推荐颗粒:三星 K4AAG165WA-BCWE(2GB DDR4-3200)
  • 焊接流程
    • 使用热风枪拆除原内存颗粒
    • 清理焊盘并焊接新颗粒
    • 检查供电是否短路
  • 测试命令
    1
    dd if=/dev/zero of=/tmp/test bs=1M count=10000000
    若不死机则说明内存识别正常

💾 闪存升级至 512MB

  • 原厂闪存:ESMT F50L1G41LB(128MB SPI-NAND)
  • 推荐闪存:KIOXIA TC58CVG2S0HRAIJ(512MB SPI-NAND)
  • 编程器:CH341A(需改为 3.3V)
  • 软件工具:SNANDer(支持分区写入)
  • 固件修改
    • 修改 U-Boot 和 ATF 配置以支持更大闪存
    • DTS 中将 UBI 分区改为 490MB(0x1ea00000)
  • 刷写流程
    • 合并分区文件为 mtd.bin
    • 使用 SNANDer 擦除并写入闪存
    • TTL 进入 U-Boot WebUI 刷写固件

【恩山】W25N02KVZEIR mt7981 xr30 128m 的想换更大的闪存


XR30 路由器折腾笔记
https://heeteve-blog.pages.dev/2025/09/XR30折腾笔记/
作者
Heeteve
发布于
2025年9月18日
许可协议