771 字
4 分钟
MT7987 (AirPi E87N) eMMC U-Boot 刷写指南

MT7987(AirPi E87N)在 eMMC 架构下刷入第三方 U-Boot 时,需要分别处理 BL2 与 FIP 两个镜像。这里记录两种实战方式:最简便的系统内直接刷写,以及最稳妥的 TTL + Ramboot 内存试跑。

刷写前必备前置条件#

  1. 底层已备份:确保 U 盘或本地电脑中留有出厂系统的 mmcblk0boot0.bin、mmcblk0boot1.bin 以及 mmcblk0p1 ~ p4 单分区镜像。
  2. 准备刷写文件:
    • bl2.bin:第一阶段引导,写入硬件 Boot 分区
    • fip.bin:BL31 + U-Boot + 设备树,写入 GPT 主存储的分区 3

方案一:系统内直接刷写(无需拆机与串口线)#

适合板子已处于正常运行的 OpenWrt/Linux 系统环境。

步骤 1:挂载并准备固件#

将存放有 bl2.bin 和 fip.bin 的 U 盘插入设备并进入挂载目录:

Terminal window
cd /mnt/sda1
ls -lh bl2.bin fip.bin

步骤 2:解锁并写入 BL2#

Linux 内核为了保护硬件启动区,默认对 mmcblk0boot0 设置了强制只读(RO)。必须先解除只读才能执行写入:

Terminal window
# 1. 解除 boot0 的强制只读锁定
echo 0 > /sys/block/mmcblk0boot0/force_ro
# 2. 验证是否解锁成功(输出应为 0)
cat /sys/block/mmcblk0boot0/force_ro
# 3. 写入新 BL2 到硬件 boot0
dd if=bl2.bin of=/dev/mmcblk0boot0 bs=4k
# 4. 重新开启写保护
echo 1 > /sys/block/mmcblk0boot0/force_ro

步骤 3:写入 FIP 主引导镜像#

FIP 镜像存放在主存储的 GPT p3(大小 2M)分区中,直接写入即可:

Terminal window
dd if=fip.bin of=/dev/mmcblk0p3 bs=4k

步骤 4:清空旧 U-Boot 环境变量(关键避坑)#

更换第三方 U-Boot 后,旧的启动命令(bootcmd)和引导参数经常会导致无法开机或死循环。直接擦除 p1(512K 环境变量分区),让新 U-Boot 在开机时自动载入自身的安全预设:

Terminal window
dd if=/dev/zero of=/dev/mmcblk0p1 bs=512 count=1024

步骤 5:同步落盘并重启#

Terminal window
sync
reboot

方案二:TTL + Ramboot 试跑刷写(最稳妥标准方案)#

如果手头有 USB-TTL 串口转换器(3.3V 电平,波特率 115200),可通过内存无损试跑,验证通过后再进行硬件写入。

步骤 1:内存注入试跑(完全不改写物理 Flash)#

电脑端安装 mtk_uartboot 工具并连接开发板 TTL 串口(RX、TX、GND):

Terminal window
mtk_uartboot -s /dev/ttyUSB0 -p ramboot_bl2.bin -f fip.bin

执行命令后给板子上电,BootROM 会直接将固件载入 DDR 内存运行。

步骤 2:Web 页面固化#

  1. 网线直连电脑与板卡,浏览器访问 http://192.168.1.1 或 http://failsafe.lan。
  2. 在 Web 控制台中选择固件更新功能,分别上传并刷入正式版 bl2.bin 和 fip.bin 完成硬件固化。

日常使用:进入 U-Boot Failsafe Web 界面#

新版 U-Boot(如 Yuzhii 分支)自带 DHCP 服务,操作电脑无需手动配置静态 IP:

  1. 设备断电。
  2. 按住板上的 Reset 键(或对应 GPIO 按键),插上电源。
  3. 等待指示灯快闪或常亮(约 5 秒)后松开按键。
  4. 用网线直连电脑,电脑会自动获取到 192.168.1.x 段 IP。
  5. 浏览器访问 http://192.168.1.1,即可进入 Failsafe 救砖控制台进行固件升级、分区备份或恢复操作。

相关文章#

MT7987 (AirPi E87N) eMMC U-Boot 刷写指南
https://iiii.fun/posts/openwrt/e87n/mt7987-e87n-uboot-flash/
作者
庆灵
发布于
2026-10-06
许可协议
CC BY-NC-SA 4.0