此 Codelab 系列重点介绍以 Fuchsia 模拟器 (FEMU) 作为目标设备,该设备使用源代码树进行构建和分发,并在开发机器上运行。不过,您也可以为受支持的硬件平台(例如 Intel NUC)构建 Fuchsia。
本部分介绍了在实体设备上使用 Fuchsia 时需要了解的一些具体细节。
配置
Fuchsia 通过用于配置 build 的主板名称定义了对硬件设备的支持。这包括任何硬件专用软件包,例如驱动程序。回想一下之前使用的 fx set
命令:
fx set workbench_eng.x64
在此示例中,x64
是可以在 FEMU 和 Intel NUC 上运行的板名称。如需为 Khadas VIM3 构建相同的产品,您可以将 set
命令修改为使用 vim3
开发板。
fx set workbench_eng.vim3
现在,运行 fx build
会为目标设备生成映像。
引导
在刷写操作系统之前,受支持的设备必须安装与 Fuchsia 兼容的引导加载程序。此过程称为设备引导。许多设备在出厂时都安装了兼容的引导加载程序,而其他设备可能需要特定于制造商的工具才能将引导加载程序更新到兼容的版本。如需详细了解特定设备,请参阅设备文档。
闪光灯
将操作系统加载到设备上的过程称为刷写。将处于引导加载程序模式的设备连接到工作台后,您可以使用 flash
命令将 Fuchsia 刷写到设备上。
fx flash
对于已刷写的设备,如果需要使用 ffx
再次刷写,您可以从 Fuchsia 重新启动进入引导加载程序模式:
ffx target reboot --bootloader
Discover
您可以在通过 USB 或本地 IPv6 网络连接的开发机器上发现 Fuchsia 设备并与之交互。Fuchsia 支持使用基于多播 DNS (mDNS) 的 DNS 服务发现 (DNS-SD) 和网络网格协议来自动发现设备。
ffx
等托管工具可用于发现通告设备,并支持与实体设备和 FEMU 的主机-目标互动。
ffx target list
NAME SERIAL TYPE STATE ADDRS/IP RCS
fuchsia-5254-0063-5e7a <unknown> . Product [fe80::c357:53e7:aedf:ed95%qemu] Y
如果目标设备不通告发现数据包或 ffx
无法检测到这些目标,您可以使用 add
和 remove
命令手动管理这些目标:
ffx target add device-ip:device-port
ffx target remove device-ip:device-port
一旦设备在目标列表中被跟踪,ffx
便会与目标上的移除控制服务 (RCS) 互动,让您能够发送其他命令。
后续操作
恭喜!您已经从源代码成功自定义和构建了 Fuchsia,并且更好地了解了关键系统组件在源代码树中的位置。
在下一单元中,您将详细了解如何构建 Fuchsia 的基本软件单元: