介绍:
上一篇文章谈到Cudy TR3000刷入OpenWrt的完整教程,但默认的存储空间比较小,很多ipk无法安装,于是就有了这篇OpenWrt U-Boot layout的教程。
这些步骤主要用于在 Cudy TR3000 路由器 上刷入 Cudy TR3000 v1 (OpenWrt U-Boot layout)固件,涉及解锁 MTD 分区、写入新的 Bootloader(BL2)和 FIP、TFTP 恢复以及最终的 OpenWrt 固件升级。我会逐步解析这些步骤,以便更清楚地理解整个过程。
步骤 1:登录设备并备份
目的:确保在刷机过程中如果出现问题,可以恢复原始状态,特别是 Factory 分区。
操作:
1. 使用 SSH 或终端登录设备:
ssh root@<设备IP>
(设备默认 IP 可能是 192.168.1.1,如果不确定,可以通过 DHCP 服务器或 ipconfig/ifconfig 查找。)
2. 备份重要数据:
dd if=/dev/mtdX of=/tmp/factory_backup.bin
scp /tmp/factory_backup.bin user@your-pc:/path/to/store
其中:
/dev/mtdX 需要替换为 Factory 分区的实际 MTD 设备名(可以用 cat /proc/mtd 查找)。
3. scp 传输文件到你的电脑。
步骤 2:解锁 MTD 分区
目的:通常 MTD 分区是只读的,这一步骤解锁它们,以便能够写入新的 Bootloader 和 FIP。
操作:
-
- WAN口连上网络。
- 更新 opkg 并安装 kmod-mtd-rw 模块:opkg update && opkg install kmod-mtd-rw
- 插入 mtd-rw 模块:insmod mtd-rw i_want_a_brick=1
其中 i_want_a_brick=1 是一个危险参数,表示愿意承担变砖风险,请确保已做好备份。

步骤 3:写入新的 BL2 和 FIP
目的:替换 Bootloader(BL2)和 FIP(BL31 + U-Boot),让设备能够加载OpenWrt U-Boot layout固件。
操作:
1. 用WinSCP登录路由器,将write immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin和write immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip上传到tmp文件夹。

2. 执行以下命令:
cd /tmp
mtd write immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin BL2
mtd write immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip FIP
BL2(Bootloader 第二阶段)是负责初始化硬件的引导程序。
FIP(包含 BL31 + U-Boot)是引导 Linux 内核的部分。

3. 确保写入成功(可以通过 mtd verify 或 hexdump 检查)。
步骤 4:在 PC 上设置静态 IP
目的:确保 PC 可以和设备进行 TFTP 交互。
操作:
1. 进入网络适配器设置:
Windows:ncpa.cpl → 选择网卡 → 右键 属性 → 选择 IPv4 → 手动配置
Linux/macOS:
ip addr add 192.168.1.254/24 dev ethX
ethX 需替换为你的网卡名称。
2. 设定:
IP 地址: 192.168.1.254
子网掩码: 255.255.255.0
网关: 192.168.1.1(设备默认网关)
步骤 5:在 PC 上运行 TFTP 服务器
目的:提供 OpenWrt initramfs 镜像,使设备可以从 TFTP 服务器加载并启动。
操作:
1. 安装 TFTP 服务器:
Windows: 使用 Tftpd64
Linux/macOS:
sudo apt install tftpd-hpa # Ubuntu/Debian
sudo yum install tftp-server # CentOS/RHEL
2. 将 initramfs 镜像放入 TFTP 服务器目录:
cp openwrt-mediatek-filogic-cudy_tr3000-v1-initramfs-kernel.bin /srv/tftp/
3. 启动 TFTP 服务器:
sudo systemctl start tftpd-hpa
4. 禁用系统防火墙。
步骤 6:断电并重新接入电源,等待 TFTP 恢复
目的:让设备进入 TFTP 恢复模式并自动加载 OpenWrt initramfs。
操作:
1. 断电设备。
2. 重新上电,并观察 PC 端 TFTP 服务器的日志,确认设备请求了 initramfs 文件,等待initramfs 文件传输完成。
这里需要注意的是,务必确保文件名不要出错,正确的文件名应该是:immortalwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-initramfs-recovery.itb。下载下来的文件名多了一个版本号,记得删除。
3. 设备应该会启动 OpenWrt initramfs,此时可以通过 192.168.1.1 登录。
4. 使用ssh登录路由器,vi /lib/upgrade/platform.sh,在下面这个位置添加这么一行:
cmcc,a10|\
cmcc,rax3000m|\
cudy,tr3000-v1-ubootmod|\
gatonetworks,gdsp|\
h3c,magic-nx30-pro|\
imou,lc-hx3001|\
切记不要重启路由器。
步骤 7:使用 sysupgrade 安装正式 OpenWrt
目的:持久化安装 OpenWrt 以替换原厂固件。
操作:
1. 上传 OpenWrt sysupgrade 固件:
scp immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-squashfs-sysupgrade.itb [email protected]:/tmp/
2. 执行 sysupgrade:
sysupgrade -n /tmp/immortalwrt-24.10.0-mediatek-filogic-cudy_tr3000-v1-ubootmod-squashfs-sysupgrade.itb
-n 选项表示不保留配置,确保一个干净的安装。
3. 设备重启后,即完成 OpenWrt 的安装。
总结
- 备份原始固件(特别是 Factory 分区)。
- 解锁 MTD 分区,使其可写。
- 写入新的 Bootloader 和 FIP。
- 配置 PC 静态 IP,以便进行 TFTP 传输。
- 运行 TFTP 服务器,并提供 OpenWrt initramfs。
- 断电重启,等待设备自动从 TFTP 恢复。
- 进入 OpenWrt 后,使用 sysupgrade 持久化安装 OpenWrt。
注意事项:
- 通过tftpd64刷入时务必确保文件名正确。
- SSH登录路由器,添加这一行:cudy,tr3000-v1-ubootmod|\,并且不要重启路由器然后刷入。
Cudy TR3000刷机OpenWrt有风险,请小心操作!祝您玩的开心。
如果您转载的话,麻烦您注明一下出处。因为一篇图文并茂的文章写下来,差不多要一到三个小时。感谢您对我劳动的尊重。