AppGoBox

教程

Milk-V Mars 刷机教程:写 microSD 卡与更新 SPI 引导程序

Milk-V Mars 装 Debian:认清硬件版本和拨码开关,写 microSD 卡,用默认账号登录,镜像起不来时按版本更新 SPI 闪存里的引导程序,附 UsbFlashTool 救砖。约 15 分钟。

适用于Milk-V Mars 官方系统镜像

先确认是 Milk-V Mars 单板

Milk-V Mars 是一块单板电脑,芯片是赛昉(StarFive)JH7110。另有一款 Mars CM 计算模块(插在树莓派 CM4 底板上用),镜像不同,请看 Milk-V Mars CM 刷机教程。

Mars 的硬件版本会影响启动方式:

硬件版本启动方式
V1.2 及以后板上多了一个启动方式拨码开关,出厂设为从 SPI 闪存启动
V1.2 之前没有拨码开关,默认从 SPI 闪存启动

两种都是先运行 SPI 闪存里的引导程序,再由它启动 microSD 卡或 eMMC 里的系统。拨码开关请保持出厂位置(GPIO1、GPIO0 都是 0,即 Flash),Milk-V 说明这是芯片厂商推荐、最稳定的方式;直接从 SD 卡或 eMMC 启动只建议用于调试。

准备

  • microSD 卡,16 GB 以上,加读卡器。
  • 5V 的 USB Type-C 电源和数据线。
  • 可选:HDMI 显示器、USB 转 TTL 串口线。

下载哪个文件

打开 Milk-V Mars 系统镜像页,下载 mars_debian-desktop_sdk-v<SDK 版本>_sdcard_v<版本>.img.zip(目前是 v1.0.6),这是 Milk-V 官方的 Debian 桌面版 microSD 卡镜像。

Milk-V 还发布了 Mars 的 eMMC 镜像 mars_debian-desktop_sdk-v<SDK 版本>_emmc_v<版本>.img.zip,本站暂未收录,从文末“官方资料”进入 Milk-V 页面获取。下载后可以按 如何核对下载文件的 SHA-256 核对。

写入 microSD 卡

  1. 打开 balenaEtcher,点“从文件烧录”,选下载的 .img.zip。
  2. 点“选择目标”选 microSD 卡,再点“现在烧录”,等到完成。也可以用 Rufus。
  3. 把卡插进 Mars 的 microSD 卡槽,用 Type-C 线接上 5V 电源。

应看到:Mars 自动开机,红色电源灯亮起;系统启动成功后绿色状态灯开始闪烁。接了 HDMI 显示器会出现 Debian 桌面。

第一次登录

  • 默认用户 user,密码 milkv,登录后请先改密码。
  • 没有显示器时,可以接串口登录(接法见下文)。

镜像起不来:先看引导程序版本

Milk-V 说明,升级官方系统镜像(比如 Debian)时,SPI 闪存里的引导程序要和镜像配套,否则系统可能起不来。v1.0.6 镜像配套的 Mars 引导程序,在串口启动日志里显示的时间是:

U-Boot SPL 2021.10 (Nov 24 2023 - 10:21:39 +0800)
U-Boot 2021.10 (Nov 24 2023 - 10:21:39 +0800)

引导程序是两个文件 mars_u-boot-spl.bin.normal.out(SPL)和 mars_visionfive2_fw_payload.img(U-Boot),在 Milk-V 的 mars-buildroot-sdk 发布页,本站暂未收录,从文末“官方资料”进入 Milk-V 页面获取。

还能进 Debian 时,用 flashcp 更新:

sudo apt install mtd-utils
cat /proc/mtd
sudo flashcp -v mars_u-boot-spl.bin.normal.out /dev/mtd0
sudo flashcp -v mars_visionfive2_fw_payload.img /dev/mtd1

cat /proc/mtd 应显示 mtd0 名为 spl、mtd1 名为 uboot。每条 flashcp 都显示擦除、写入、校验到 100% 才算成功,然后重新上电。

刷坏了怎么救

  • SPI 里的引导程序损坏、什么都起不来:用 Milk-V 的 Windows 工具 UsbFlashTool 重写引导程序(工具本站暂未收录,从文末“官方资料”进入 Milk-V 页面获取)。大致步骤:
  1. USB 转 TTL 串口线接 Mars 的 40 针排针,记下电脑上的串口号,关掉其他占用串口的程序。
  2. 用 USB-A 公对公数据线连接电脑和 Mars 的 USB 2.0 口。
  3. 按住 Mars 上 LED 旁边的升级按键(upgrade button),再用 Type-C 接通电源,进入升级模式后松开。
  4. 运行 UsbFlashTool-*-Windows.exe,在右侧 Serial Setting 里选第 1 步的串口号。File Type 选 Firmware,点 File Select 选工具 update 目录里的 usbprog-mars-230510.out,点 Load,等出现 Loaded。第一次使用时,用工具目录里的 zadig-2.5 给 StarFive JH7110 Device 装驱动(Options 菜单选 List All Devices,再点 Install Driver),然后关掉工具、断电,从第 3 步重来。
  5. File Select 选 mars_u-boot-spl.bin.normal.out,File Type 选 SPL,Memory Type 选 FLASH,点 Load,等出现 SUCCEED 和 Complete。
  6. File Select 选 mars_visionfive2_fw_payload.img,File Type 选 U-Boot,Memory Type 选 FLASH,点 Load,等出现 SUCCEED 和 Complete。
  7. 关掉工具,断电后重新上电,从串口日志确认引导程序时间已更新。
  • 系统卡坏了:重新写一次 microSD 卡即可。
  • 改过拨码开关后起不来:把开关拨回 GPIO1=0、GPIO0=0(Flash)。
  • 串口接法:GND(6 脚)接 USB 转 TTL 的黑线,TX(8 脚)接白线,RX(10 脚)接绿线,红线不要接;参数 115200、8N1、无流控。见 用 USB 转 TTL 串口调试开发板。

资料来源

按 Milk-V 官方文档(Mars Boot the Mars、Setting Up、Images Download、Bootloader Update Guide)和 Milk-V 在 GitHub 发布的 mars-buildroot-sdk V1.0.6 版本说明整理,2026-10-22 查阅。

提示本页按厂商官方文档整理,本站没有在实机上测试。按键、拨码开关位置和文件名以你的板子和 Milk-V 官方说明为准。

适用的固件与系统镜像(1)

按适用范围匹配到 1 个固件条目。下载前仍需核对具体型号和硬件版本。

整理:AppGoBox · 依据 · 本站未在实机上逐一验证