这篇文档介绍了一般情况下使用 fx
开发命令在设备上构建和部署 Fuchsia。大多数此类命令都有不常见情况的选项;有关详细信息,请参阅 fx help <command>
。
构建与部署
使用 fx
的初始构建和部署工作流程如下:
-
fx set <arch>
为 [x64, arm64] 其中一个配置构建内容。 -
fx full-build
构建 Zircon,然后是 Fuchsia 的其余部分。
-
fx mkzedboot <usb_drive_device_path>
构建 Zedboot 介质然后安装到 USB 驱动器中。请参见下边的内容说明,获取 USB 驱动器的路径。
-
fx pave
启动 bootserver。
-
将 Zedboot USB 连接到设备并重新启动。
Zedboot 会连接主机设备,并下载安装镜像,然后安装到设备中。
USB 驱动器的路径
根据主机设备操作系统的不同,确定 USB 驱动器的正确路径的说明如下。你可以运行这些命令观察在连接 USB 驱动器和未连接 USB 驱动器时的区别。
-
Linux 用户:
sudo fdisk -l
设备通常是 /dev/sd[x] 这种格式,例如:“/dev/sdc”。选择驱动器而不是特定分区。
-
Mac 用户:
diskutil list | grep external
设备通常是 /dev/disk[n] 这种格式,例如:“/dev/disk2”。
- 如果看到错误 “ERROR: Can’t open /dev/disk[n]: Resource busy” 那么你需要解除 USB 挂载。运行
hdiutil unmount /dev/disk[n]
。如果没有修复这个错误,尝试重新配置驱动:diskutil eraseDisk JHFSX <name_of_the_usb_stick> /dev/disk[n]
。
后续构建和部署
使用 fx
重新构建和重新部署的工作流略有不同:
-
检查瀑布式仪表盘。
帮助确保 HEAD 处于可拉取状态。 -
jiri update
获取最新的源码。 -
fx full-build
构建 Zircon,和 Fuchsia 的剩余部分。
-
fx serve
在 host 上启动开发包服务器。
-
移除 Zedboot USB 启动设备。
将设备引导至最后安装的状态。
-
fx ota
将更新的包推送到设备。
注意:如果需要,可以按照上一节中的步骤 4-5 使用 Zedboot USB 重新安装。虽然这比较慢,但是在系统处理 OTA 的方式不够优雅的情况下这可能又是必须的。
常见问题
- 在你的路径中含有 “.” 有可能导致
fx full-build
运行失败。脚本会改变工作目录,这有可能导致使用的命令(例如:touch
)和在工作目录下的二进制文件产生冲突。
Comments