CMCC RAX3000Me XW 版 和 RAX3000M 稍有区别:https://openwrt.org/toh/cmcc/rax3000m 硬件配置为:512M DDR3 128M SPI NAND FLASH,带 USB 3 接口。
原来是23.10 cmcc_rax3000m-nand-ubootmod-squashfs-sysupgrade.bin 想升为最新的 24.10 cmcc_rax3000m-squashfs-sysupgrade.itb。
先备份:
cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "BL2" mtd1: 00080000 00020000 "u-boot-env" mtd2: 00200000 00020000 "Factory" mtd3: 00200000 00020000 "FIP" mtd4: 07200000 00020000 "ubi"dd if=/dev/mtd0 of=/tmp/mtd0_BL2.bin && \ dd if=/dev/mtd1 of=/tmp/mtd1_u-boot-env.bin && \ dd if=/dev/mtd2 of=/tmp/mtd2_Factory.bin && \ dd if=/dev/mtd3 of=/tmp/mtd3_FIP.bin && \ dd if=/dev/mtd4 of=/tmp/mtd4_ubi.bin
使用 MobaXterm SCP 把文件复制到电脑上,备份。
固件可以从:https://firmware-selector.immortalwrt.org/ 下载 输入关键字 CMCC RAX3000Me 选择版本 24.10.4 也可以自己编译。
需要下载:
immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-preloader.bin #BL2 immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-bl31-uboot.fip #UBOOT FIP immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-initramfs-recovery.itb #使用 tftp 刷入的 内存文件系统 immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-squashfs-sysupgrade.itb #在次刷入的升级包
将:
immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-preloader.bin
immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-bl31-uboot.fip
使用 SCP 复制到 /tmp 使用 mtp write 进入写入
mtd write /tmp/immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-preloader.bin bl2 mtd write /tmp/immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-bl31-uboot.fip fip
遇到 mtd 写入失败的话,就是 mtd 是被保护的,有2个方法解决
1:修改 dts 设备树 https://github.com/immortalwrt/immortalwrt/blob/master/target/linux/mediatek/dts/mt7981b-cmcc-rax3000m-nand.dtso,去掉 read-only;
2:使用 编译勾选 kmod-mtd-rw 在编译 OpenWrt 时勾选 Kernel modules > Other modules > kmod-mtd-rw,使内核支持 mtd 读写 ,在执行 insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1 打开写入功能
mtd 写入以后 reboot 重启,连接串口:
ARP Retry count exceeded; starting again Wrong Image Type for bootm command ERROR -91: can't get kernel image! Using ethernet@15100000 device TFTP from server 192.168.1.254; our IP address is 192.168.1.1 Filename 'immortalwrt-mediatek-filogic-cmcc_rax3000me-initramfs-recovery.itb'. Load address: 0x46000000 Loading: *
使用网线连接电脑,给电脑配置有线网卡 IP 192.168.1.254 子网掩码 255.255.255.0 ,下载 https://github.com/PJO2/tftpd64/releases/ 的 tftpd64_portable_v4.74.zip 绿色版,解压 运行 tftpd64.exe 将下载的 immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-initramfs-recovery.itb 复制过来和tftpd64.exe 放在同一个文件夹中并改名为 immortalwrt-mediatek-filogic-cmcc_rax3000me-initramfs-recovery.itb
串口有正在下载的输出:
Using ethernet@15100000 device TFTP from server 192.168.1.254; our IP address is 192.168.1.1 Filename 'immortalwrt-mediatek-filogic-cmcc_rax3000me-initramfs-recovery.itb'. Load address: 0x46000000 Loading: #######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################1.3 MiB/s done Bytes transferred = 13959168 (d50000 hex)

在使用 固件升级 immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-squashfs-sysupgrade.itb 即可,完成升级。
救砖:
万一操作不当,起动不了变砖了,就是需要焊接串口线,使用串口进行恢复。参考:https://www.right.com.cn/forum/thread-8368615-1-1.html
mtk_uartboot 源码:https://github.com/981213/mtk_uartboot ,也可以用 恩山贴中提到的版本,里面还放了几个CPU平台的 bl 直接就能用。
焊接串口能正常连接到电脑,如提示以下错误:
F0: 102B 0000 FA: 1040 0000 FA: 1040 0000 [0200] F9: 0000 0000 V0: 0000 0000 [0001] 00: 0000 0000 BP: 2400 0041 [0000] G0: 1190 0000 EC: 0000 0000 [1000] T0: 0000 024F [010F] Jump to BLNOTICE: BL2: v2.7(release):85822aef1-dirty NOTICE: BL2: Built : 17:13:56, Sep 25 2024 NOTICE: WDT: disabled NOTICE: EMI: Using DDR3 settings NOTICE: EMI: Detected DRAM size: 512MB NOTICE: EMI: complex R/W mem test passed NOTICE: CPU: MT7981 (1300MHz) NOTICE: PP COPY 0 CRC read: 0x534a, compute: 0x4a53 NOTICE: FUDAN Micro crc != crc_compute,Need change CRC Byte[254][255] NOTICE: SPI_NAND parses attributes from parameter page. NOTICE: SPI_NAND Detected ID 0xa1 NOTICE: Page size 2048, Block size 131072, size 134217728 NOTICE: Initializing NMBM ... NOTICE: Signature found at block 1023 [0x07fe0000] NOTICE: First info table with writecount 0 found in block 960 NOTICE: Second info table with writecount 0 found in block 963 NOTICE: NMBM has been successfully attached in read-only mode ERROR: BL2: Failed to load image id 3 (-2)Error reading from serial device
确认好串口的名称,关闭对串口的操作,使用 mtk_uartboot 进行恢复:
mtk_uartboot.exe -s COM6 -p mt7981-ram-ddr3-bl2.bin -a -f immortalwrt-24.10.4-mediatek-filogic-cmcc_rax3000me-nand-ddr3-bl31-uboot.fip --brom-load-baudrate 115200 --bl2-load-baudrate 115200
然后等待,如果正常的话,就是以下显示,否则就是 BL 或 FIP 有问题不对。
Using serial port: COM6 Handshake... hw code: 0x7981 hw sub code: 0x8a00 hw ver: 0xca00 sw ver: 0x1 Baud rate set to 115200 sending payload to 0x201000... Checksum: 0x1c42 Setting baudrate back to 115200 Jumping to 0x201000 in aarch64... Waiting for BL2. Message below: ================================== NOTICE: BL2: v2.10.0 (release):ImmortalWrt v2024.01.17~bacca82a-3 (mt7981-ram-ddr3) NOTICE: BL2: Built : 03:13:51, Nov 26 2025 NOTICE: WDT: Cold boot NOTICE: WDT: disabled NOTICE: EMI: Using DDR3 settings NOTICE: EMI: Detected DRAM size: 512MB NOTICE: EMI: complex R/W mem test passed NOTICE: CPU: MT7981 (1300MHz) NOTICE: Starting UART download handshake ... ================================== BL2 UART DL version: 0x10 Baudrate set to: 115200 FIP sent. ================================== NOTICE: Received FIP 0x100000 @ 0x40400000 ... ==================================
执行完成后,连接串口,如果 原来的 rootfs 能用,就会直接启动了,如果不能用就进入了 tftp 恢复模式,使用上面的操作进行恢复就行。
最后说一下 带 WEB 恢复功能的修改版 uboot fip 源码:https://github.com/hanwckf/bl-mt798x ,但是经过测试 bl-mt798x-release-20241115.7z ,在 rax3000me mt7981_cmcc_rax3000m-fip-fixed-parts.bin 上有问题,没有WIFI ,反正也焊出来串口,怎么折腾也不会坏。