ffx target flash
命令可在设备上刷写 Fuchsia 映像。
概念
Fuchsia 使用基于 Fastboot 的刷写机制在硬件设备上安装 Fuchsia 产品。Fastboot 协议(最初是 Android 的一部分)是一种用于通过 USB 或以太网与引导加载程序通信的机制。借助此机制,您可以将 Fuchsia 预构建映像刷写到设备的非易失性存储器。
如需在设备上刷写 Fuchsia 映像,设备的引导加载程序必须支持 Fastboot 模式。设备能够启动到 Fastboot 模式后,您就可以使用 ffx target flash
在设备上刷写 Fuchsia 映像了。不过,如果设备的引导加载程序不支持 Fastboot,您需要先更新引导加载程序。更新设备的引导加载程序(以支持 Fastboot)通常需要遵循特定于设备类型和制造商的指南,本指南未涵盖这些指南。
您可以从各种来源(例如 Google Cloud Storage 和项目代码库)获取 Fuchsia 预构建映像。此外,您还可以从 Fuchsia 源代码检出生成自定义预构建映像。无论是哪种情况,用于刷写的预构建映像都必须与目标设备匹配。
刷写设备
如需在设备上刷写 Fuchsia 映像,请执行以下操作:
- 通过 USB 或以太网将设备连接到主机。
检查设备的状态:
ffx target list
此命令会输出类似于以下内容的输出:
$ ffx target list NAME SERIAL TYPE STATE ADDRS/IP RCS <unknown> 01234ABCD012YZ Unknown Fastboot [] N
验证设备的状态是否为
Fastboot
。如果
ffx target list
在快速启动模式下仅显示一台设备(如上例所示),ffx
命令会自动定位到该设备。不过,如果连接了多个设备,您需要指定目标设备。(可选)如果存在多个设备,请设置默认的 Fuchsia 目标。
如果第 3 步中的
ffx target list
命令显示多个设备,并且您希望为ffx
命令设置默认目标(而不是使用--target
标志),则需要执行此步骤。设置默认 Fuchsia 目标取决于您所处的环境:
Fuchsia SDK
对于 Fuchsia SDK 环境,请使用
FUCHSIA_NODENAME
环境变量设置目标:FUCHSIA_NODENAME=<TARGET_DEVICE>
例如:
$ FUCHSIA_NODENAME=fuchsia-5254-0063-5e7a
fuchsia.git
在 Fuchsia 源代码检出 (
fuchsia.git
) 环境中工作时,您可以运行以下fx
命令,为当前 build 目录设置默认目标设备:fx set-device <TARGET_DEVICE>`
例如:
$ fx set-device fuchsia-5254-0063-5e7a
您可以运行
fx unset-device
来取消设置默认目标。刷写设备:
ffx target flash <FUCHSIA_IMAGE>
将
FUCHSIA_IMAGE
替换为包含 Fuchsia 预构建映像及其闪存清单文件的归档文件,例如:$ ffx target flash ~/Downloads/fuchsia-image-example.zip
刷写完成后,设备会重新启动并开始运行 Fuchsia。
将设备启动到 Fastboot 模式
如需触发 Fuchsia 设备启动到 Fastboot 模式,请运行以下命令:
ffx target reboot -b
重新启动后,设备会启动到 Fastboot 模式。