一、准备工作
你需要:
一根高质量 USB-C 数据线(既能供电又能传数据,建议原装/品牌线)。
一台装好 Ubuntu(建议 22.04/24.04) 的虚拟机(VirtualBox/VMware 均可)。
Orange Pi 5 Pro 主板(板载或插接 eMMC)。
官方系统镜像(
.img或.img.xz),例如 Orange Pi OS / Ubuntu / Debian(从 Orange Pi 官方下载页面获取)。
说明:Orange Pi 5/5 Pro 基于 Rockchip RK3588(S) 平台,支持通过 MaskROM/Loader 模式走 USB 线刷。
二、在 Ubuntu(虚拟机)安装线刷工具
rkdeveloptool 是 Rockchip 的开源 USB 线刷工具,Linux 下可通过源码或软件包安装。
方式 A:直接装现成包(24.04 有包)
sudo apt update sudo apt install rkdeveloptool rkdeveloptool -v # 验证能输出版本
(如果提示找不到包,走方式 B 编译安装。)
方式 B:源码编译安装(通用)
sudo apt update sudo apt install -y git build-essential automake autoconf pkg-config \ libusb-1.0-0-dev libudev-dev dh-autoreconf git clone https://github.com/rockchip-linux/rkdeveloptoolcd rkdeveloptool autoreconf -i ./configure make -j"$(nproc)" sudo cp rkdeveloptool /usr/local/sbin/ rkdeveloptool -v
可选:添加 udev 规则(非 root 也能刷)
cat <<'EOF' | sudo tee /etc/udev/rules.d/51-rockusb.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"EOF
sudo udevadm control -R
Rockchip 设备的 USB VID 常见为 2207。添加规则后重新插拔一次 USB。
三、虚拟机 USB 直通设置(关键)
VirtualBox: 设备 → USB → 勾选 USB 3.0 控制器;添加过滤规则(厂商 ID 2207)。运行中从“设备→USB”挂载 Rockchip / MaskROM 设备到虚拟机。
VMware: 可移动设备 → 选择出现的 Rockchip 设备 → “连接到此虚拟机”。
确保 Ubuntu 虚拟机中 lsusb 能看到 Rockchip 设备(VID:PID 类似 2207:xxxx)。
四、下载并解压系统镜像
从 Orange Pi 官方页下载对应 Orange Pi 5 / 5 Pro 的系统镜像(例如 Orangepi5pro_xxx_ubuntu_jammy_*.img.xz),在 Ubuntu 中解压得到 .img 文件:
xz -dk Orangepi5pro_xxx_ubuntu_jammy_*.img.xz# 得到 Orangepi5pro_xxx_ubuntu_jammy_*.img
(不同版本文件名略有差异,但都是 .img。)
五、把开发板送入 MaskROM 模式
断电(不要接任何电源)。
用 USB-C 数据线 把板子的 USB-C 口接到主机(通过虚拟机直通到 Ubuntu)。
按住板上的 MaskROM 按钮(有的板标成 Mask、Maskrom/Recovery)。
保持按住,再给板子 上电(多数机型就是这根 USB-C 同时供电;若你另接供电,也在此时上电)。
-
2 秒后 松开 MaskROM。此时在 Ubuntu 里执行:
rkdeveloptool ld
能看到类似:
DevNo=1 Vid=0x2207,Pid=0x350a,LocationID=xxx,Maskrom
就说明进了 MASKROM 模式。
注:不同 5 系列板上 MaskROM 按钮位置略有差异,官方手册/丝印图都有标注。
六、(一次性)把 Loader 下载到内存
在 MaskROM 下,需要先把 SPL/Loader 下载进板子内存,让它接受后续写盘命令。不同资源包里文件名可能叫 rk3588_spl_loader_*.bin / rk3588_loader_v*.bin / MiniLoaderAll.bin(任选你镜像包或官方工具包里适配 RK3588 的那个)。
rkdeveloptool db /path/to/rk3588_loader_xxx.bin# 成功后无报错,设备会进入 LOADER/Rockusb 状态rkdeveloptool ld# 此时显示 ... Loader
(db=Download Bootloader 到 RAM。随后才能写 eMMC。)
七、把整张镜像写进 eMMC
大多数 Orange Pi 提供的 raw 整盘镜像 都含有 GPT/分区表,可直接从 0 扇区整体写入:
# 直接整盘写入(耗时几分钟)rkdeveloptool wl 0 Orangepi5pro_xxx_ubuntu_jammy_*.img# 写完后重置板子rkdeveloptool rd
wl 0 <img>表示从 eMMC LBA 0 开始写入整张镜像文件。如果你看到
Permission denied,用sudo或检查 udev 规则/USB 直通。第一次启动会自动扩展根分区,耐心等 2–5 分钟。
八、首次开机与常见“没起机”排查
正常情况: 断开刷机线,给板子上电(或直接保留 USB-C 供电连着显示器键鼠),HDMI 有画面,进入系统初始化。
无画面/仍进 MaskROM: 多数是 SPI NOR 里残留了旧的引导,优先级盖过 eMMC。解决办法:
重新进 MaskROM;
用工具 切换到 SPI NOR 并擦除(Windows 的 RKDevTool 有“切换存储/擦除所有”按钮;Linux 下常用做法是用能访问 SPI 的工具或在论坛提供的脚本清空 SPI)。擦除后再按本教程重刷 eMMC。
db报错 / 设备掉线: 更换 支持数据的 USB-C 线;改用主机直连 USB-A↔USB-C 也行(别走集线器)。虚拟机识别不到设备: 重新在 VM 菜单把 Rockchip 设备 连接到虚拟机;必要时关机后先勾选 USB 直通再开机。
九、(可选)在 Linux 下分区/镜像“高级写法”
如需手动分区再写 rootfs(适合 不带引导器 的 rootfs 包):
# 进入 Loader 后,可查看分区表(若已有 GPT)rkdeveloptool list-partitions# 自己准备一个 GPT 定义文件,写入分区表rkdeveloptool write-partition-table gpt.conf# 对指定分区写入内容rkdeveloptool write-partition boot boot.img rkdeveloptool write-partition rootfs rootfs.ext4# 或按扇区偏移写入rkdeveloptool write 0x40 idbloader.img rkdeveloptool write 0x4000 uboot.img
仅当你清楚镜像布局时使用;大多数用户直接用 整盘镜像
wl 0更省心。
十、FAQ
能在 Windows 刷吗? 可以,用官方 RKDevTool 图形工具+
MiniLoader包(步骤与本教程一致,只是界面操作)。MaskROM 按钮找不到? 参看你板子的用户手册丝印图(5/5 Plus/5 Pro 位置略有差异)。
Ubuntu 虚拟机必须吗? 不是,真机 Ubuntu/Mac 也可,命令一致(Mac 需用 Homebrew 编译安装)。
参考资料
Orange Pi 5 官方 Wiki(下载镜像、入门)
Orange Pi 5/5 Plus 手册(MaskROM 按钮与线刷流程示例)
Rockchip
rkdeveloptool(源码、命令语法、man 手册)openEuler 针对 RK3588 的 MaskROM/整盘镜像写入流程(
db+wl 0思路一致)社区实操与问题排查:清空 SPI NOR、进入 MaskROM 等。
PonyTechLab