本文档向您展示如何使用开发命令fx
在目标设备上构建和运行Fuchsia。大多数命令含有额外的子命令。可以通过fx help <command>
了解更多细节。
在目标设备上构建和部署Fuchsia之前,需要了解您所使用的USB设备的路径。
注意:在您所使用的任何操作系统上都可以在USB设备断开之后执行以下命令,之后在USB设备重新连接之后再执行一遍命令以查看二者的差异。
通过以下命令确定USB设备的确切路径:
注意:fx
工具用于列出可用的USB设备,与具体的操作系统平台无关。
fx mkzedboot
<!--
### Linux
To determine the correct path to your USB drive:
```posix-terminal
sudo fdisk -l
Drives are usually in the form /dev/sd[x]
such as /dev/sdc
.
Make sure that you select the drive rather than a specific partition. For
example, a specific partition has a number at the end of the path such as
/dev/sdc1
.
-->
可以通过以下命令确定USB设备的确切路径:
sudo fdisk -l
设备路径通常形如/dev/sd[x]
,比如/dev/sdc
。
确保选择的是一个设备而不是某一个分区。一个分区路径信息的末尾通常有一个数字,如/dev/sdc1
。
可以通过以下命令确定USB设备的确切路径:
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
从头构建Fuchsia,跟着如下步骤来:
- 设定构建类型:
注:本设定为在通用的x64架构主板上构建
core
核心产品。要想查看支持的产品和主板,可以相应的用fx list-products
和fx list-boards
命令查看。fx set core.x64
-
使用如下命令构建Fuchsia镜像:
fx build
以上命令首先构建Zircon,然后构建Fuchsia的其他组件。
-
构建Zedboot组件并安装到目标USB设备上:
fx mkzedboot <usb设备路径>
注意:如何获取USB设备路径,参考USB设备路径.
-
把上一步构建好的带有Zedboot信息的USB设备连接到目标设备上并重启。
-
在目标设备上执行:
lsblk
-
留意该命令的输出中的HDD或SSD设备的路径。该路径形如:
/dev/sys/pci/00:17.0/ahci/sata0/block
。 -
在目标设备上执行:
install-disk-image init-partition-tables --block-device <HDD或SSD块设备路径>
-
在本机上开始 bootserver
fx pave
注意:bootserver 会连接到目标设备上,并上传Fuchsia镜像,之后铺设。
采用fx
进行重建和重部署:
-
确保版本状态正常,并指向构建面板
-
使用以下命令下载最新代码:
jiri update
-
构建Fuchsia镜像:
-
Build a Fuchsia image:
fx build
本命令构建Zircon并构建Fuchsia的其余部分。
-
设定防火墙规则(仅限于使用macOS的用户)
fx setup-macos
-
从你构建的宿主机上启动一个开发打包服务器:
fx serve
-
在Zedboot USB设备未连接时启动目标设备.
-
从宿主机上推送Fuchsia更新包到目标设备:
fx ota
某些情况下,如果fx ota
命令没有成功执行,考虑用fx pave
重发。
-
若
fx build
失败,请检查PATH环境变量是否正确设置。 使用如下命令确认PATH环境变量的值:echo $PATH
确保输出的信息是一系列由冒号
:
分隔的目录名,注意不是.
分隔。 注意:fx
相关命令会以某种方式重设工作目录,该方式可能会导致它所使用的命令(如touch)与在工作路径下的可执行程序产生冲突。