CCACHE_DIR环境变量并引用存在的目录,则自动启用ccache。

[Googlers only: goma通过在许多机器上分发编译来加速构建。如果在~/goma中安装了goma,默认情况下使用它。默认情况下,它也优先使用ccache。]

若要覆盖默认行为,请将标志传递给fx set:

–ccache # force use of ccache even if goma is available
–no-ccache # disable use of ccache
–no-goma # disable use of goma

Boot Fuchsia


从硬件安装和引导

要让Fuchsia 在硬件上运行,需要使用铺路机(paver),这些说明将帮助您启动和运行。

**注意:**在这里可以快速浏览基本的构建和铺路(build-and-pave)工作流。

Boot from QEMU


如果没有支持的硬件,可以使用QEMU在模拟下运行Fuchsia。在buildtools/ QEMU下,Fuchsia包括为QEMU预构建的二进制文件。

fx run命令将在QEMU中启动Zircon,使用本地构建的磁盘映像:

fx run

有各种各样的标志fx运行控制QEMU的配置:

  • -m sets QEMU’s memory size in MB.

  • -g enables graphics (see below).

  • -N enables networking (see below).

  • -k enables KVM acceleration on Linux.

使用fx run -h查看所有可用选项。

QEMU 技巧

  • ctrl+a x将在文本模式下退出QEMU。

  • ctrl + a ?或ctrl+a h打印所有支持的命令。

使用图形

**注意:**由于缺乏Vulkan支持,QEMU下的图形非常有限。只有Zircon UI渲染。

要启用QEMU下的图形,请将-g标志添加到fx run:

fx run -g

使用网络

首先,为QEMU的使用配置一个虚拟接口。

一旦完成这一步,你可以添加-N和-u标志到fx运行:

fx run -N -u scripts/start-dhcp-server.sh

u标志运行一个脚本,该脚本设置一个本地DHCP服务器和NAT来配置IPv4接口和路由。

浏览Fuchsia


在一个单独的shell中,启动开发更新服务器,如果它还没有运行:

fx serve -v

网络状态下启动Fuchsia。这可以在QEMU中通过-N标志完成,也可以在上面描述的已铺好的硬件上完成。当Fuchsia引导并显示“$”shell提示符时,就可以运行程序了!

例如,要接受深度智能,运行:

fortune

要关闭或重新启动Fuchsia,请使用dm命令:

dm help
dm shutdown

修改一些资源
几乎所有存在于Fuchsia系统中的东西都存储在Fuchsia包中。典型的开发
工作流包括重新构建并将Fuchsia包推入开发设备或QEMU虚拟设备。

在示例/rolldice/src/main.rs中更改rolldice二进制文件。

重新构建并将rolldice包推送到运行中的Fuchsia设备,使用:

fx build-push rolldice

从Fuchsia设备上的shell提示符,运行更新后的rolldice组件:

rolldice

选择选项卡

启用图形启动后,Fuchsia显示多个选项卡。当前选中的选项卡在屏幕顶部以黄色突出显示。您可以使用键盘上的Alt-Tab切换到下一个选项卡。

  • 选项卡0是控制台,显示引导和组件日志。

  • 选项卡1、2和3包含shell。

  • 选项卡4及以上包含已启动的组件。

**注意:**要选择制表符,您可能需要进入“控制台模式”。有关详细信息,请参见下一节。

启动图形组件

QEMU不支持Vulkan,因此无法运行我们的图形堆栈。

Fuchsia中的大多数图形组件都使用Scenic系统合成器。你可以启动这些组件,通常可以在/system/apps中找到,如下所示:

lauch spinning_square_view

Scenic 示例应用程序的源代码在这里

当您启动使用Scenic、使用硬件加速图形的东西,或者构建默认包(将引导到Fuchsia系统UI)时,Fuchsia将进入“图形模式”,不会显示任何文本shell。为了使用文本shell,您需要通过按Alt-Escape进入“控制台模式”。在控制台模式下,Alt-Tab将具有上一节描述的行为,再次按Alt-Escape将返回图形化shell。

如果您希望在终端仿真器中使用文本shell,可以从图形化shell中启动术语,方法是选择“Ask Anything”框并键入moterm。

####运行测试


编译后的测试二进制文件像其他组件一样缓存在pkgfs中,并由URI引用。您可以通过在终端中调用它来运行测试。如。

run fuchsia-pkg://fuchsia.com/ledger_tests#meta/ledger_unittests.cmx

如果您想让Fuchsia继续运行,并重新编译和重新运行测试,请在一个终端上运行启用联网的Fuchsia,然后在另一个终端上运行:

fx run-test < test name> [< test args>]

您可能希望仔细阅读测试FAQ

贡献的变化


其它参考文档