Banana Pi BPI-R4 Pro OpenWrt固件刷写指南
适用机型:Banana Pi BPI-R4 Pro
利用 U 盘启动绕过 SD/eMMC 通道冲突,无需读卡器,无需频繁拔插 SD 卡。
硬件准备
BPI-R4 Pro 开发板
U 盘 (建议 8GB 以上)
网线 (连接电脑与路由器网口)
电脑 (安装有 WinSCP 或类似 SFTP 工具)
文件准备
前往固件发布页下载以下两个文件,建议重命名以便后续操作:
eMMC 专用引导 (Preloader)
原文件名示例:
*preloader*emmc*.bin重命名为:
preloader.bin
eMMC 系统镜像 (System Image)
原文件名示例:
*emmc*.img(请解压.gz包)重命名为:
emmc.img
这里我使用了自编译的固件,因为需要v6plus(DS-Lite)与map-e
官方Github项目地址
https://github.com/BPI-SINOVOIP/BPI-R4PRO-8X-OPENWRT-V24.10.0-Master-Devel
1. 制作启动U盘
我们需要先让路由器跑起来,才能把系统刷进 eMMC
在电脑上运行烧录工具(如 Rufus 或 Etcher)
eMMC 版镜像烧录到 U 盘 中
2. 启动设备 (NAND + USB 模式)
此步骤利用板载 NAND 引导 U 盘系统,从而空出 eMMC 通道
断电,并务必 拔掉 SD 卡 (确保卡槽为空)。
插入制作好的 U 盘
调整拨码开关至 NAND 启动 (注:请以板载丝印 "NAND" 为准)
连接网线,上电开机
电脑设置自动获取 IP,确认能访问后台,通常是
192.168.1.1
3. 上传固件与刷写
系统启动后,通过网络将固件上传到内存 (/tmp) 进行写入
第一步:上传文件
打开 WinSCP (协议选 SCP),登录路由器
用户
root密码
toor
将电脑里准备好的
preloader.bin和emmc.img上传到路由器的 /tmp 目录
第二步:执行刷写命令
打开 SSH 终端 ,依次执行以下命令:
# 1. 进入目录
cd /tmp
# 2. 解锁 eMMC 引导分区写保护 (关键)
echo 0 > /sys/block/mmcblk0boot0/force_ro
# 3. 刷入 Preloader 引导文件
# 目标设备是 mmcblk0boot0
dd if=preloader.bin of=/dev/mmcblk0boot0
# 4. 刷入主系统镜像
# 目标设备是 mmcblk0 (eMMC主空间)
# OpenWrt 的 dd 通常不支持 status=progress,耐心等待完成
dd if=emmc.img of=/dev/mmcblk0 bs=1M
# 5. 激活 eMMC 启动分区功能
mmc bootpart enable 1 1 /dev/mmcblk04. 完工重启
在终端输入
poweroff关机,等待电源灯灭拔掉 U 盘
调整拨码开关至 eMMC 启动 (注:请以板载丝印 "eMMC" 为准)
重新上电
常见问题排查
Q:
dd命令提示invalid status=progress?A: 這是因为系统内的 BusyBox 版本较旧,删除命令中的
status=progress参数即可
Q:
lsblk看不到mmcblk0?A: 检查是否忘记拔掉 SD 卡。如果插了 SD 卡,eMMC 会被硬件屏蔽
Q: 只有
mmcblk0没有mmcblk0boot0?A: 确保你的内核驱动正常加载。通常 eMMC 都会伴随 boot0/boot1 分区出现
Q: 刷完无法启动,卡在亮灯?
A: 检查第 3 步是否刷入了
preloader。如果只刷了img没刷preloader是无法引导的。此时只需重复整个流程重刷一遍即可