535 字
3 分钟
RAX3000M刷OpenWRT教程
2025-07-28
2025-07-29

最近在闲鱼上淘到了一台 RAX3000M 算力版,卖家预装的是 iStoreOS 系统。作为强迫症患者,自然希望换上自己熟悉、干净的固件版本,于是决定刷入 ImmortalWrt。然而第一步就遇到了障碍——不像 x86 平台那样简单直观,这类嵌入式设备的刷机流程高度依赖于 U-Boot 启动加载器。而问题就在于,我完全不知道卖家刷的是哪种 U-Boot,也不知道该如何进入 U-Boot 模式,自然没法进行下一步的刷机操作。

U-Boot 是嵌入式设备启动流程的核心组件,类似于电脑上的 BIOS,它负责初始化硬件,并引导操作系统或固件的启动。没有一个可控、已知的 U-Boot,刷机几乎无从下手。最终,我决定不再折腾,而是干脆直接刷入一份新的 U-Boot。

1. U-Boot 的选择#

我采用的是天灵灵大佬的 U-Boot,源自 hanwckf/bl-mt798x,基于2022.07 稳定版制作。这个版本支持自动获取 DHCP 地址,不再需要手动设置本地 IP,极大地方便了刷机操作。

原帖链接:Right论坛原帖地址(天灵灵大佬发布)

U-Boot 下载地址:天灵灵 U-Boot 下载页面(drive.wrt.moe)

在下载页面中搜索关键词 rax3000m,你会看到如下 6 个相关文件:

WARNING

请务必确认你的机型是 NAND 版 还是 eMMC 版,不同版本使用的 U-Boot 文件并不通用。烧错可能导致设备变砖!

我的是 算力版(eMMC 版本),因此选择其中带有 emmc 标识的 4 个文件。

2. 写入新的 GPT 表#

Terminal window
dd if=mt7981-cmcc_rax3000m-emmc-gpt.bin of=/dev/mmcblk0 bs=512 seek=0 count=34 conv=fsync

3. 擦除并写入新的 BL2#

设置 BOOT 分区为可写:

Terminal window
echo 0 > /sys/block/mmcblk0boot0/force_ro

擦除 BL2:

Terminal window
dd if=/dev/zero of=/dev/mmcblk0boot0 bs=512 count=8192 conv=fsync

写入新的 BL2:

Terminal window
dd if=mt7981-cmcc_rax3000m-emmc-bl2.bin of=/dev/mmcblk0boot0 bs=512 conv=fsync

4. 擦除并写入新的 FIP#

Terminal window
dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=13312 count=8192 conv=fsync
dd if=mt7981-cmcc_rax3000m-emmc-fip-fit.bin of=/dev/mmcblk0 bs=512 seek=13312 conv=fsync

5. 进入U-Boot#

确保 PC 的 IP 设置为 DHCP,将电脑连接至路由器的 LAN 口,会自动为电脑分配 IP 地址。

电脑访问192.168.1.1进入 U-Boot 界面进行刷机:

RAX3000M刷OpenWRT教程
https://blog.hunx.lol/posts/rax3000m/
作者
2thcmoon
发布于
2025-07-28
许可协议
CC BY-NC-SA 4.0