Cudy TR3000 256MB 刷机:过渡包→解锁 FIP→U-Boot→maximum-240m 布局

2026年1月16日| Ruichen Zhou| 约 16 分钟阅读

一台 Cudy TR3000 256MB v1(MT7981),从原厂固件刷成可自由刷机的 OpenWrt 机器。本文按实际操作顺序记录全过程,每一步标明在哪台电脑、哪个系统环境下执行,并给出可以停下来核对的检查点。

适用场景:

  • 你有一台 TR3000 256MB,想要一个 U-Boot Web 恢复入口,便于后续刷机、切换布局。
  • 你想切换闪存布局(本次选择的是 maximum-240m 这个 U-Boot 布局标签)。
  • 你希望过程可控:每一步都有校验点,发现异常可以停下来确认。

⚠️ 警告:本文涉及对 FIP 分区写入 U-Boot。写错文件或写入过程中断电可能导致设备无法启动,需要串口或更底层手段恢复。执行前备份关键分区,保证供电不要中断。


本文实际时间线与较短路径

本文实际时间线

本文实际操作顺序是:

  1. 原厂固件 → 刷入 过渡包
  2. 过渡包 → 刷入 官方 OpenWrt 24.10.5,使用了一段时间
  3. 后来决定补齐 U-Boot:在 OpenWrt 24.10.5 上备份分区,并尝试解锁 FIP(失败)
  4. OpenWrt 24.10.5 → 刷入 解锁环境(FIP 可写的 ImmortalWrt)
  5. 解锁环境 → 写入 第三方 U-Boot(FIP) 并 verify
  6. 重启进入 U-Boot Web → 选择 maximum-240m 布局 → 刷回 官方 OpenWrt 24.10.5

读者可采用的较短路径

如果你的目标就是补齐 U-Boot,可以跳过中间的官方系统步骤:

  1. 原厂固件 → 刷入 过渡包
  2. 过渡包 → 直接刷入 解锁环境
  3. 解锁环境 → 备份关键分区 → 写入 U-Boot(FIP) → verify
  4. 重启进入 U-Boot Web → 选择布局(例如 maximum-240m)→ 刷入目标固件

本文多出的第 2 步(先刷官方 OpenWrt 24.10.5)对补齐 U-Boot 来说可以省略。


环境与前提

机型与分区识别(在路由器上执行,必须确认)

通过 SSH 登录路由器,执行:

ubus call system board
cat /proc/mtd

设备信息应明确是 256MB v1(区分 128MB 或特殊批次)。cat /proc/mtd 关键分区示例:

mtd0: 00100000 ... "BL2"
mtd1: 00080000 ... "u-boot-env"
mtd2: 00200000 ... "Factory"
mtd3: 00040000 ... "bdinfo"
mtd4: 00200000 ... "FIP"
mtd5: 0e600000 ... "ubi"

其中:

  • BL2 = 1MiB:第一阶段引导程序。
  • FIP = 2MiB:存放 U-Boot 的分区,也是本文要写入的目标分区。

这两项会直接决定后续备份命令里的 count 和文件大小预期。机型不匹配或分区大小不一致时,不要继续。

文件准备(在电脑上下载,强制按机型匹配)

本文涉及三类文件(示例文件名):

  1. 过渡包(256MB 版本) cudy_tr3000-256mb-v1-sysupgrade.bin

    作用是让设备从原厂固件进入一个可继续 sysupgrade 的环境,便于后续刷入其他固件。

  2. FIP 分区只读破解包 / 解锁环境(256MB 对应 sysupgrade) immortalwrt-24.10.3-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin

  3. 第三方 U-Boot(写入 FIP 的 bin) dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin

本文最终回到系统使用的是:

  • openwrt-24.10.5-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin

⚠️ 下载目录里往往会混有 128MB 文件,或特定 SN(例如 2544)专用文件。本文对象是 256MB,不要把 128MB 文件或 2544 专用文件写入 256MB 设备。


参考资料

过渡包刷机步骤参考了这篇文章,后续也有多处流程一致:


Step 1:原厂固件 → 刷入过渡包

执行位置:电脑浏览器,操作原厂固件的 Web 管理后台。

进入原厂管理后台(一般在“高级设置 / 固件升级”等位置),上传并刷入过渡包:

  • cudy_tr3000-256mb-v1-sysupgrade.bin

刷入后的检查点(电脑浏览器 + SSH 登录路由器)

  1. 重启后能进入过渡包页面(常见为 OpenWrt 或类 OpenWrt 界面)
  2. 能 SSH 登录并查看基础信息:
cat /etc/openwrt_release
ubus call system board

Step 2:过渡包 → 官方 OpenWrt 24.10.5(本文实际步骤,可省略)

执行位置:电脑浏览器,操作过渡包的 LuCI 界面。

在 LuCI 的“系统 → 备份/升级”里刷入官方固件:

  • openwrt-24.10.5-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin

不要勾选“保留配置”,跨环境升级容易引发配置兼容问题。

这一步的意义仅在于提前得到一个可用的 OpenWrt 系统。对补齐 U-Boot 来说,这一步可以省略:过渡包之后可以直接进入 Step 4 刷入解锁环境。


Step 3:备份关键分区(在 OpenWrt 24.10.5 上执行,强烈建议)

执行位置:电脑通过 SSH 登录路由器。当时运行的是 OpenWrt 24.10.5 环境,地址为 192.168.1.1

注意 IP 归属:本节备份使用的 192.168.1.1 是 OpenWrt 24.10.5 环境的地址;Step 5 上传 U-Boot 使用的 192.168.6.1 是解锁环境的地址。两个地址对应不同的系统环境,请按自己设备的实际地址替换。

至少备份以下五项:

  • BL2(mtd0)
  • u-boot-env(mtd1)
  • Factory(mtd2)
  • bdinfo(mtd3)
  • FIP(mtd4)

在路由器上执行(示例以 /tmp 为落盘位置):

cd /tmp

# BL2: 1 MiB
dd if=/dev/mtd0ro of=backup_BL2.bin bs=64k count=16

# u-boot-env: 512 KiB
dd if=/dev/mtd1ro of=backup_uboot_env.bin bs=64k count=8

# Factory: 2 MiB
dd if=/dev/mtd2ro of=backup_Factory.bin bs=64k count=32

# bdinfo: 256 KiB
dd if=/dev/mtd3ro of=backup_bdinfo.bin bs=64k count=4

# FIP: 2 MiB
dd if=/dev/mtd4ro of=backup_FIP.bin bs=64k count=32

sync
ls -lh /tmp/backup_*.bin

备份后的检查点(在路由器上执行)

预期看到类似大小:

  • backup_BL2.bin:1.0M
  • backup_uboot_env.bin:512K
  • backup_Factory.bin:2.0M
  • backup_bdinfo.bin:256K
  • backup_FIP.bin:2.0M

如任一文件大小不符合预期,不要继续写入操作。

下载备份到电脑(在电脑上执行)

Windows scp 有时会默认走 SFTP,路由器缺少 sftp-server 会失败。解决办法是强制旧 SCP:

scp -O root@192.168.1.1:/tmp/backup_*.bin .

Step 4:OpenWrt 24.10.5 上解锁 FIP 失败,刷入解锁环境

执行位置:电脑通过 SSH 登录路由器(OpenWrt 24.10.5 环境,192.168.1.1)。

在官方 OpenWrt 24.10.5 下尝试:

mtd unlock FIP

出现:

Could not open mtd device: FIP

这说明当前系统环境下 mtd 无法以读写方式打开引导相关分区。此时不要强行写入,应切换到 FIP 可写的解锁环境再操作。这就是本文刷入 ImmortalWrt 解锁环境的原因。

执行位置:电脑浏览器,操作 OpenWrt 24.10.5 的 LuCI 界面。

在“系统 → 备份/升级”里刷入解锁环境,同样不勾选“保留配置”:

  • immortalwrt-24.10.3-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin

刷入后的检查点(电脑通过 SSH 登录解锁环境)

解锁环境启动后,本文中它的地址为 192.168.6.1。SSH 登录后确认:

ubus call system board | grep -E 'model|board_name|revision' -n

输出里应出现:

  • model: Cudy TR3000 256MB v1
  • board_name: cudy,tr3000-256mb-v1

Step 5:上传 U-Boot、校验、写入 FIP、verify(高风险)

5.1 在电脑上先算 SHA256(作为后续一致性标准)

执行位置:电脑(Windows PowerShell)。

(Get-FileHash ".\dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin" -Algorithm SHA256).Hash

本文实测结果:

CC580152DDBEEF14A204DE296D8F58D7A21D787B3DE80573BCE09FEE090DBD4C

说明:这个 SHA256 只适用于本文使用的那一份 dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin 文件。你从其他渠道获取的同名文件或不同版本文件,哈希值可能不同,请以你自己算出的值为准。

5.2 上传到解锁环境(在电脑上执行)

scp -O ".\dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin" root@192.168.6.1:/tmp/

这里的 192.168.6.1 是解锁环境的地址,与 Step 3 备份时的 192.168.1.1 属于不同系统环境,不要混用。

5.3 路由器端校验(写入前必须做,SSH 登录解锁环境)

ls -lh /tmp/dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin
sha256sum /tmp/dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin
cat /proc/mtd | grep -w FIP

检查点:

  • 文件大小约 733K,且明显小于 FIP 的 2MiB
  • sha256sum 输出与电脑上算出的值一致
  • FIP 分区存在,且大小为 00200000

任一检查点不满足,停止操作。

5.4 解锁与写入(高风险操作,SSH 登录解锁环境)

⚠️ 警告:确认供电不要中断。下面操作写入引导相关分区,执行前再次确认文件与机型匹配。

mtd unlock FIP
mtd write /tmp/dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin FIP
sync
mtd verify /tmp/dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout-256M.bin FIP

必须看到 mtd verify ... Success 才能继续重启。

如果 verify 失败:停止重启,保持设备当前状态并排查(确认文件是否传错、哈希是否一致、写入目标分区是否正确),排查清楚之前不要重启设备。


Step 6:进入 U-Boot Web,选择 maximum-240m 布局并刷入系统

执行位置:电脑浏览器。

写入成功并重启后,设备正常进入已刷的系统,不会自动进入 U-Boot Web。进入 U-Boot Web 的步骤:断电,电脑用网线连接路由器的 LAN 口,按住 Reset 键不放并上电,等待数秒后松开,浏览器访问 http://192.168.1.1

选择 mtd 布局

本文最终选择:

  • maximum-240m

这是本次在 U-Boot Web 中选择的布局标签,对应 256MB 机型。刷入的目标固件必须与所选布局和机型匹配。

刷入目标系统固件

本文刷入的是:

  • openwrt-24.10.5-mediatek-filogic-cudy_tr3000-256mb-v1-squashfs-sysupgrade.bin

刷完重启后进入 OpenWrt 24.10.5,系统正常运行。


常见错误与排查思路

1) scp 报 sftp-server: not found

原因:Windows scp 默认走 SFTP,路由器不带 sftp-server。 解决:使用 -O 强制旧 SCP:

scp -O <本地文件> root@<IP>:/tmp/

2) mtd unlock FIP 在官方 OpenWrt 下失败

现象Could not open mtd device: FIP 思路:不要硬写;切换到 FIP 可写的解锁环境后再操作。

3) mtd verify 写入后失败

写入后 verify 失败,说明写入未生效或文件与分区不匹配。停止重启,保持设备当前状态并排查,确认问题之前不要重启设备。

评论