Skip to content

Latest commit

 

History

History
345 lines (243 loc) · 8.68 KB

build_and_pave_quickstart.md

File metadata and controls

345 lines (243 loc) · 8.68 KB

构建快速入门

本文档向您展示如何使用开发命令fx在目标设备上构建和运行Fuchsia。大多数命令含有额外的子命令。可以通过fx help <command>了解更多细节。

指定USB设备驱动路径{#usb-drive-device-path}

在目标设备上构建和部署Fuchsia之前,需要了解您所使用的USB设备的路径。

注意:在您所使用的任何操作系统上都可以在USB设备断开之后执行以下命令,之后在USB设备重新连接之后再执行一遍命令以查看二者的差异。

fx

通过以下命令确定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. -->

Linux系统

可以通过以下命令确定USB设备的确切路径:

sudo fdisk -l

设备路径通常形如/dev/sd[x],比如/dev/sdc

确保选择的是一个设备而不是某一个分区。一个分区路径信息的末尾通常有一个数字,如/dev/sdc1

macOS

可以通过以下命令确定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]

构建并部署Fuchsia

要使用fx从头构建Fuchsia,跟着如下步骤来:

  1. 设定构建类型: 注:本设定为在通用的x64架构主板上构建core核心产品。要想查看支持的产品和主板,可以相应的用fx list-productsfx list-boards命令查看。
    fx set core.x64
    
  1. 使用如下命令构建Fuchsia镜像:

    fx build
    

    以上命令首先构建Zircon,然后构建Fuchsia的其他组件。

  1. 构建Zedboot组件并安装到目标USB设备上:

    fx mkzedboot <usb设备路径>
    

    注意:如何获取USB设备路径,参考USB设备路径.

  1. 把上一步构建好的带有Zedboot信息的USB设备连接到目标设备上并重启。

  2. 在目标设备上执行:

    lsblk
    
  1. 留意该命令的输出中的HDD或SSD设备的路径。该路径形如:/dev/sys/pci/00:17.0/ahci/sata0/block

  2. 在目标设备上执行:

    install-disk-image init-partition-tables --block-device <HDD或SSD块设备路径>
    
  1. 在本机上开始 bootserver

    fx pave
    

    注意:bootserver 会连接到目标设备上,并上传Fuchsia镜像,之后铺设。

Fuchsia的重建和重部署

采用fx进行重建和重部署:

  1. 确保版本状态正常,并指向构建面板

  2. 使用以下命令下载最新代码:

    jiri update
    
  3. 构建Fuchsia镜像:

  4. Build a Fuchsia image:

    fx build
    

本命令构建Zircon并构建Fuchsia的其余部分。

  1. 设定防火墙规则(仅限于使用macOS的用户)

    fx setup-macos
    
  2. 从你构建的宿主机上启动一个开发打包服务器:

    fx serve
    
  3. 在Zedboot USB设备未连接时启动目标设备.

  4. 从宿主机上推送Fuchsia更新包到目标设备:

    fx ota
    

某些情况下,如果fx ota命令没有成功执行,考虑用fx pave重发。

问题排查

  • fx build 失败,请检查PATH环境变量是否正确设置。 使用如下命令确认PATH环境变量的值:

    echo $PATH
    

    确保输出的信息是一系列由冒号:分隔的目录名,注意不是.分隔。 注意:fx相关命令会以某种方式重设工作目录,该方式可能会导致它所使用的命令(如touch)与在工作路径下的可执行程序产生冲突。