跳到主要内容

镜像刷写教程

Milk-V Megrez

准备工作

  • Milk-V Megrez 开发板本体
  • USB A to C / USB C to C 线缆
  • DC 12V 或 ATX 电源
  • eMMC 模块/M.2 SATA SSD / PCI-E SSD(M.2 NVMe SSD 需要转接卡)/ microSD 存储卡
    • 任选一种存储设备即可,但不可同时安装多个烧录了系统的存储介质
  • (可选)键盘、鼠标、显示器、网线
  • (可选)M.2 SDIO Wi-Fi 模块
  • (可选)以 FAT32 或 EXT4 格式化的 U 盘一个,用于升级 bootloader 固件
    • 如果使用 dhcptftpboot,则需要以太网连接,且计算机上已安装并配置好 TFTP 服务器
  • (可选)M.2 SATA / PCI-E 转 USB 硬盘盒
    • 用于刷写镜像至 SSD
  • (可选)microSD 读卡器
    • 用于烧写镜像至 microSD 卡

镜像下载

请从 此处 下载 bootloader, boot 和 root 镜像。

  • BootFS: boot-rockos-*.ext4.zst
  • RootFS: root-rockos-*.ext4.zst
  • microSD 卡和 SSD:sdcard-rockos-*.img.zst
  • Bootloader: bootloader_secboot_ddr5_milkv-megrez.bin

bootfs 及 rootfs 请下载后进行解压。

如果您想通过 U 盘更新 bootloader 固件,则请将 bootloader_secboot_ddr5_milkv-megrez.bin 复制到 U 盘的第一个 FAT32 或 EXT4 分区。您可将其重命名成较短的文件名,以便稍后操作。

Linux 环境下,请安装 zstd 后进行解压。

Windows 下,可使用 7-zip / Nanazip 等软件解压。

刷写镜像

更新 bootloader 固件(推荐)

简单来说,您需要将固件加载进内存,然后运行 es_burn 来将固件烧录至板载 SPI Flash 中。

有如下几种方式加载 bootloader 文件:

  • 从内部或外部存储设备
    • ext4load
    • fatload
  • 通过网络/局域网
    • tftpboot
    • dhcp
  1. 将开发板 Type-C debug 接口连接至计算机。

你将看到一个 CH340 USB 转 UART 设备出现。

  1. 打开串口控制台。

在 Linux 上,可以使用 tio minicom 等工具。

在 Windows 上可以使用 PuTTY SimplySerial 等工具。

开发板默认波特率为 115200。

  1. 现在接入电源,Megrez 应当会自动上电开机。

确保引导设备在上电前已正确安装。

如果您想从 U 盘更新 bootloader,请在上电前就将其插入。务必插到靠近 3.5mm 一侧的两个 USB 口中,否则可能会无法识别。

  1. 控制台提示 Autoboot in 5 seconds 时,按 s 打断自动启动。
通过 U 盘更新
  1. 检查 U 盘是否已被识别:usb info

如果您是在上电之后才插入的,需要运行 usb reset 来重新扫描 USB 设备。

2.1. 如果是 FAT32 格式:fatload usb 0 0x90000000 bootloader_secboot_ddr5_milkv-megrez.bin

2.2 如果是 EXT4 格式:ext4load usb 0 0x9000000 0bootloader_secboot_ddr5_milkv-megrez.bin

  1. 刷写固件并重启:es_burn write 0x90000000 flash; reset

  2. 重启后,建议重置 U-Boot 环境变量至默认值并保存:

env default -a -f; env save; reset

否则可能会出现每次重启时 MAC 地址都会重新生成的问题。

通过 TFTP 更新

设置一个 TFTP 服务器。

对于 Windows 用户,可使用 TFTPd64;对于 Linux 用户,可使用 tftp-hpaatftp,除此以外 dnsmasq 也有一个内置的 TFTP 服务器可用。

可以参考 Arch Wiki 提供的相关文档。

确保 TFTP 服务器在根目录提供了 bootloader_secboot_ddr5_milkv-megrez.bin 文件。

检查您计算机的 LAN IP 地址。

确保开发板连接到了以太网。

打断自动启动后,运行:

dhcp 0x90000000 $hostIPaddr:bootloader_secboot_ddr5_milkv-megrez.bin
es_burn write 0x90000000 flash; reset

和上面通过 U 盘更新相同,建议重置 U-Boot 环境变量至默认值并保存:

env default -a -f; env save; reset

否则可能会出现每次重启时 MAC 地址都会重新生成的问题。

通过 fastboot 烧录镜像至 eMMC

更新好 bootloader 后,给开发板上电,按 s 打断启动,然后执行如下步骤:

  1. 在 U-Boot 控制台:fastboot usb 0

  2. 找到 DC 电源接口附近的 RECOVERY 开关,将其切换到 RECOVERY 模式。您的计算机应该会识别到一个USB download gadgetAndroid Bootloader Interface 设备。

  3. 使用 fastboot 刷写固件。

(在 Linux 上你将需要 sudo,或者将 VID:PID 3452:7700 添加进你的 udev 规则。)

fastboot flash boot boot-rockos-20250818-234921.ext4
fastboot flash root root-rockos-20250818-234921.ext4
  1. 等待刷写过程结束。结束后,在 U-Boot 控制台按 Ctrl+C,然后输入 reset 重启。

  2. 至此,一切就绪。

备注

虽然 U-Boot 也支持通过 fastboot udp 从网络刷写,但速度相对要慢很多。

通常不推荐从网络刷写,除非您完全远程操作,无法拨动板子上的开关。

烧录至 SSD 或 microSD

使用 etcherdd 来将 sdcard 镜像写入 SSD 或 microSD 即可。

对于 Windows 用户,也可使用 Rufus。

提示

从 microSD/SSD 启动如果遇到问题,可尝试更新位于板载 SPI Flash 上的 bootloader。

sudo dd if=sdcard-rockos-20250818-234921.img of=/dev/sdX bs=1M status=progress; sync

SiFive HiFive Premier P550

准备工作

  • HiFive Premier P550 开发板本体
  • DC 12V 或 ATX 电源
  • SATA SSD / PCI-E SSD(M.2 NVMe SSD 需要转接卡)/ microSD 卡
    • 任选一种存储设备即可,但不可同时插入多个烧录了系统的存储介质
  • (可选)键盘、鼠标、显示器、网线
  • (可选)M.2 SDIO Wi-Fi 模块
  • (可选)以 FAT32 或 EXT4 格式化的 U 盘一个,用于升级 bootloader 固件
    • 如果使用 dhcptftpboot,则需要以太网连接,且计算机上已安装并配置好 TFTP 服务器
  • (可选)M.2 SATA / PCI-E 转 USB 硬盘盒
    • 用于刷写镜像至 SSD
  • (可选)microSD 读卡器
    • 用于烧写镜像至 microSD 卡
  • USB Type A 转 USB Type C 线缆
  • USB Type A 转 USB Type A 线缆

更新 bootloader

首先通过串口连接到开发板,在线缆正确接入开发板后,会列举为四个 UART。

根据MCU 用户手册中 2.1.1.1 节的内容,我们在 minicom 中将 ttyUSB2 设置为连接路径,波特率设置为 115200。

提示

下表仅针对 SiFive HiFive Premier P550 开发板,其它开发板可能不同。

序号设备
00SOC JTAG (eic7700x mcpu)
01MCU JTAG (stm32)
02SOC UART (eic7700x uart0)
03MCU UART (stm32 uart3)
sudo minicom -D /dev/ttyUSB2 -b 115200

插入准备好的含有 bootloader 文件的 U 盘。

按下电源键启动后,观察 minicom 窗口内,按任意键打断 U-Boot 加载。

执行下面的命令,查看 U 盘内的文件。

usb start

fatls usb 0 / # 如U盘内存在多个文件时请确认bootloader文件的存放路径

确认 U 盘内文件正确后执行下面命令

fatload usb 0 0x90000000 bootloader_secboot_ddr5_hifive-p550.bin

es_burn write 0x90000000 flash

重启后再次打断机器执行分区(第一次刷写必选,需要给分区足够大小容纳刷写 boot/root)

reset 
# 打断uboot启动
run gpt_partition

烧录至 eMMC

请用 USB Type A 转 USB Type C 以及 USB Type A 转 USB Type A 将开发板与主机相连。

根据官方手册中 3.1.6 部分的内容

USB Type A 转 USB Type A 将接入编号 10 双 USB Type-A 连接器中靠上的接口。

USB Type A 转 USB Type C 接入编号 15 Type-C USB 连接器。

Boot&Rootfs

在启动并打断机器后输入以下命令进入 fastboot 状态 (需要提前拔掉 USB Type A 转 USB Type A 线缆,避免电路冲突或者通信冲突)

fastboot usb 0

在主机上另开一个终端,执行刷写命令

sudo fastboot flash boot boot-eswin_evb-20241024-145708.ext4 # 刷写boot
sudo fastboot flash root root-eswin_evb-20241024-145708.ext4 # 刷写rootfs
# 请注意文件路径 刷写时间大约在10分钟左右

返回 minicom 端口后按任意键取消 fastboot 状态,随后执行 reset 重启机器。

至此 RockOS 镜像刷写完成。

PINE64 StarPro64

硬件准备

  • PINE64 StarPro64 开发板本体
  • USB A to A 线缆(或 USB A to C 线缆)
  • DC 12V 电源
  • eMMC 模块 / PCI-E SSD(M.2 NVMe SSD 需要转接卡)/ microSD 存储卡
    • 任选一种存储设备即可,但不可同时安装多个烧录了系统的存储介质
  • USB-UART 调试器
  • 网线
    • 使用 dhcptftpboot,从网络载入 bootloader 固件
  • (可选)键盘、鼠标、显示器
  • (可选)M.2 SATA / PCI-E 转 USB 硬盘盒
    • 用于刷写镜像至 SSD
  • (可选)microSD 读卡器
    • 用于烧写镜像至 microSD 卡

镜像下载

请从 此处 下载 bootloader, boot 和 root 镜像。

  • BootFS: boot-rockos-*.ext4.zst
  • RootFS: root-rockos-*.ext4.zst
  • microSD 卡和 SSD:sdcard-rockos-*.img.zst
  • Bootloader: bootloader_secboot_ddr5_milkv-starpro64.bin

bootfs 及 rootfs 请下载后进行解压。

如果您想通过 U 盘更新 bootloader 固件,则请将 bootloader_secboot_ddr5_milkv-starpro64.bin 复制到 U 盘的第一个 FAT32 或 EXT4 分区。您可将其重命名成较短的文件名,以便稍后操作。

(出厂固件可能无法正确识别 U 盘,如遇到此问题请从网络加载固件)

Linux 环境下,请安装 zstd 后进行解压。

Windows 下,可使用 7-zip / Nanazip 等软件解压。

刷写镜像

更新 bootloader 固件(推荐)

简单来说,您需要将固件加载进内存,然后运行 es_burn 来将固件烧录至板载 SPI Flash 中。

若您的开发板使用的出厂固件(未曾升级过),USB 设备可能无法识别,此时考虑通过网络加载固件。

可考虑使用 tftpbootdhcp

  1. 将 USB-UART 调试器连接到开发板。

UART GND/TX/RX 对应关系及位置如下:

调试器开发板
GNDGND
TXRX
RXTX
3V3NC/不接

Board

Board

  1. 打开串口控制台。

在 Linux 上,可以使用 tio minicom 等工具。

在 Windows 上可以使用 PuTTY SimplySerial 等工具。

开发板默认波特率为 115200。

  1. 现在接入电源,开发板应当会自动上电开机。

确保引导设备在上电前已正确安装。

  1. 控制台提示 Autoboot in 5 seconds 时,按 s 打断自动启动。
通过 TFTP 更新

设置一个 TFTP 服务器。

对于 Windows 用户,可使用 TFTPd64;对于 Linux 用户,可使用 tftp-hpaatftp,除此以外 dnsmasq 也有一个内置的 TFTP 服务器可用。

可以参考 Arch Wiki 提供的相关文档。

确保 TFTP 服务器在根目录提供了 bootloader_secboot_ddr5_pine64-starpro64 文件。

检查您计算机的 LAN IP 地址。

确保开发板连接到了以太网。注意:只有下方的以太网接口在 U-Boot 中可用。

打断自动启动后,运行:

dhcp 0x90000000 $hostIPaddr:bootloader_secboot_ddr5_pine64-starpro64.bin
es_burn write 0x90000000 flash; reset

重启后,建议重置 U-Boot 环境变量至默认值并保存:

env default -a -f; env save; reset

否则可能会出现每次重启时 MAC 地址都会重新生成的问题。

通过 fastboot 烧录镜像至 eMMC

更新好 bootloader 后,给开发板上电,按 s 打断启动,然后执行如下步骤:

  1. 如果是首次刷写,请在 U-Boot 控制台内执行如下命令,重新创建 eMMC 分区表:run gpt_partition

  2. 进入 fastboot 模式:fastboot usb 0

  3. 使用 USB A to A 线缆连接您的计算机和开发板。

(如果您的计算机只有 USB Type-C 口可用,也可以使用 USB C to A 线缆,Type-C 一侧插入计算机,Type-A 一侧插入开发板。)

StarPro64 上有两个蓝色的 USB 3.0 接口,指定 usb 0 时,请使用靠下的接口。

计算机上应该会识别到一个 USB download gadgetAndroid Bootloader Interface 设备。

  1. 使用 fastboot 刷写固件。

(在 Linux 上需要 sudo,或者将 VID:PID 3452:7700 添加进你的 udev 规则。)

fastboot flash boot boot-rockos-20250818-234921.ext4
fastboot flash root root-rockos-20250818-234921.ext4
  1. 等待刷写过程结束。结束后,在 U-Boot 控制台按 Ctrl+C,然后输入 reset 重启。

  2. 至此,一切就绪。

备注

虽然 U-Boot 也支持通过 fastboot udp 从网络刷写,但速度相对要慢很多。

通常不推荐从网络刷写,除非您完全远程操作。

烧录至 SSD 或 microSD

使用 etcherdd 来将 sdcard 镜像写入 SSD 或 microSD 即可。

对于 Windows 用户,也可使用 Rufus。

提示

从 microSD/SSD 启动时如果遇到问题,可尝试更新位于板载 SPI Flash 上的 bootloader。

提示

如果您有直接烧录 eMMC 的工具(例如 eMMC 读卡器、eMMC 转 SD 转接板等),也可以直接将 sdcard 镜像烧录至 eMMC 内。

sudo dd if=sdcard-rockos-20250818-234921.img of=/dev/sdX bs=1M status=progress; sync

其它说明

开机进入系统后,推荐进行一次系统更新。

sudo apt update; sudo apt upgrade -y; sudo reboot

默认用户名和密码均为:debian