Usage: fvdl [--sdk] <command> [<args>]
entry point for fvdl Commands to start/stop the emulator via fuchsia virtual device launcher (VDL)
Options:
--sdk running in fuchsia sdk (not inside the fuchsia code
repository)
--help display usage information
Commands:
start Starting Fuchsia Emulator
kill Killing Fuchsia Emulator - only required in nointeractive
mode else emulator can be closed by hitting the close button
on the GUI or sending a `dm poweroff` command through the
console.
kill
Usage: fvdl kill [-d <vdl-path>] [--launched-proto <launched-proto>] [--sdk]
Killing Fuchsia Emulator - only required in nointeractive mode else emulator can be closed by hitting the close button on the GUI or sending a `dm poweroff` command through the console.
Options:
-d, --vdl-path device_launcher binary location. Defaults to looking in
prebuilt/vdl/device_launcher
--launched-proto required, file containing device_launcher process artifact
location.
--sdk running in fuchsia sdk (not inside the fuchsia code
repository)
--help display usage information
start
Usage: fvdl start [-H] [-N] [--host-gpu] [--software-gpu] [--hidpi-scaling] [-u <upscript>] [-p <pointing-device>] [-w <window-width>] [-h <window-height>] [--ram-mb <ram-mb>] [--audio <audio>] [-s <image-size>] [-F <device-proto>] [--device-spec <device-spec>] [-e <aemu-path>] [--aemu-version <aemu-version>] [-d <vdl-path>] [--vdl-version <vdl-version>] [-x <grpcwebproxy>] [-X <grpcwebproxy-path>] [--grpcwebproxy-version <grpcwebproxy-version>] [-v <sdk-version>] [--gcs-bucket <gcs-bucket>] [--image-name <image-name>] [-l <emulator-log>] [--port-map <port-map>] [--vdl-output <vdl-output>] [-c <kernel-args>] [--nointeractive] [-i] [--debugger] [-m] [--emu-only] [--nopackageserver] [-P] [--packages-to-serve <packages-to-serve>] [--package-server-log <package-server-log>] [--amber-unpack-root <amber-unpack-root>] [--envs <envs...>] [--noacceleration] [--package-server-port <package-server-port>] [-a <amber-files>] [-f <disk-image>] [-k <kernel-image>] [-z <zbi-image>] [-A <image-architecture>] [--ssh <ssh>] [-V] [--dry-run] [--cpu-count <cpu-count>] [--sdk] [--isolated-ffx-config-path <isolated-ffx-config-path>]
Starting Fuchsia Emulator
Options:
-H, --headless bool, run emulator in headless mode where there is no GUI.
Note that ssh console in terminal will still be started. In
order to run the emulator completely in the background use
this flag along with --nointeractive and --vdl-output
-N, --tuntap bool, run emulator with emulated nic via tun/tap.
--host-gpu bool, run emulator with host GPU acceleration, this doesn't
work on remote-desktop with --headless.
--software-gpu bool, run emulator without host GPU acceleration, default.
--hidpi-scaling bool, enable pixel scaling on HiDPI devices.
-u, --upscript path to tun/tap upscript, this script will be executed
before booting up FEMU.
-p, --pointing-device
set pointing device used on emulator: mouse or touch screen.
Allowed values are "touch", "mouse". Default is "touch".
-w, --window-width
emulator window width. Default to 1280.
-h, --window-height
emulator window height. Default to 800.
--ram-mb emulator ram in megabytes. Default is 8192.
--audio emulator audio interface enabled. Default is true.
-s, --image-size extends storage size to <size> bytes. Default is "2G".
-F, --device-proto
path to fuchsia virtual device configuration as a protobuf,
if not specified a generic one will be generated.
--device-spec path to fuchsia virtual device configuration as a JSON
manifest
-e, --aemu-path path to aemu location. When running in fuchsia repo,
defaults to looking in
prebuilt/third_party/android/aemu/release/PLATFORM. When
running in fuchsia sdk, defaults to looking in
$HOME/.fuchsia/femu.
--aemu-version label used to download AEMU from CIPD. Default is
"integration". Download only happens if aemu binary cannot
be found from known paths.
-d, --vdl-path device_launcher binary location. When running in fuchsia
repo, defaults to looking in prebuilt/vdl/device_launcher.
When running in fuchsia sdk, defaults to looking in
directory containing `fvdl`.
--vdl-version label used to download vdl from CIPD. Default is "latest".
Download only happens if vdl (device_launcher) binary cannot
be found from known paths.
-x, --grpcwebproxy
enable WebRTC HTTP service on port, if set to 0 a random
port will be picked
-X, --grpcwebproxy-path
location of grpcwebproxy, When running in fuchsia repo,
defaults to looking in prebuilt/third_party/grpcwebproxy
When running in fuchsia sdk, defaults to looking in
$HOME/.fuchsia/femu.
--grpcwebproxy-version
label used to download grpcwebproxy from CIPD. Default is
"latest". Download only happens if --grpcwebproxy is set and
grpcwebproxy binary cannot be found from known paths or path
specified by --grpcwebproxy_path.
-v, --sdk-version fuchsia sdk ID used to fetch from gcs, if specified, the
emulator will launch with fuchsia sdk files fetched from
gcs. To find the latest version run `gsutil cat
gs://fuchsia/development/LATEST_LINUX`.
--gcs-bucket gcs bucket name. Default is "fuchsia".
--image-name image file name used to fetch from gcs. Default is
"qemu-x64". To view available image names run `gsutil ls -l
gs://fuchsia/development/$(gsutil cat
gs://fuchsia/development/LATEST_LINUX)/images`.
-l, --emulator-log
file path to store emulator log. Default is a temp file that
is deleted after `fvdl` exits.
--port-map host port mapping for user-networking mode. This flag will
be ignored if --tuntap is used. If not specified, an ssh
port on host will be randomly picked and forwarded. ex:
hostfwd=tcp::<host_port>-:<guest_port>,hostfwd=tcp::<host_port>-:<guest_port>
--vdl-output file destination to write `device_launcher` output. Required
for --nointeractive mode. Default is a temp file that is
deleted after `fvdl` exits. Specify this flag if you plan to
use the `kill` subcommand.
-c, --kernel-args extra kernel flags to pass into aemu.
--nointeractive bool, turn off interactive mode. if turned off, fvdl will
not land user in the ssh console but GUI will still be
launched. A ssh port will still be forwarded. User needs to
specify --vdl-output flag with this mode, and manually call
the `kill` subcommand to perform clean shutdown. In order to
run the emulator completely in the background use this flag
along with --headless.
-i, --cache-image bool, download and re-use image files in the cached location
~/.fuchsia/<image_name>/<sdk_version>/. If not set
(default), image files will be stored in a temp location and
removed with `kill` subcommand. If image location is
specified with --kernel-image, --zbi-image, --disk-image
etc., the cached image will be overwritten for the specified
image file.
--debugger bool, pause on launch and wait for a debugger process to
attach before resuming
-m, --monitor bool, launches emulator in qemu console No local services
such as package_server will be running in this mode.
--emu-only bool, launches user in femu serial console, this flag is
required for bringup image. No local services such as
package_server will be running in this mode.
--nopackageserver deprecated, does nothing, will soon be removed.
-P, --start-package-server
bool, enables automatically launching package server.
--packages-to-serve
comma separated string of fuchsia package urls, extra
packages to serve after starting FEMU. Requires
--start_package_server=true
--package-server-log
file path to store package server log. Default is a stdout.
Requires --start_package_server=true
--amber-unpack-root
path to unpack archived_package downloaded from GCS. This
only applies when fvdl is downloading images files from GCS
(ex: --gcs-bucket, --sdk-verion, --image-name flags are
specified). If not specified, a temporary path will be used.
--envs environment variables for emulator. The argument can be
repeated for multiple times to add multiple arguments. If
not specified, only the default environment variables
(DISPLAY) will be set to run the emulator.
--noacceleration bool, disable acceleration using KVM on Linux and HVF on
macOS.
--package-server-port
int, port to an existing package server running on the host.
-a, --amber-files string, absolute path to amber-files location, path name
must end with 'amber-files'.
-f, --disk-image string, absolute path to disk image (Fxfs or FVM) file
location.
-k, --kernel-image
string, absolute path to kernel image file location. If
specified --zbi-image and --image-architecture must also be
specified. When running with --sdk option, this will skip
downloading fuchsia image prebuilts from GCS.
-z, --zbi-image string, absolute path to zircon image file location. If
specified --kernel-image and --image-architecture must also
be specified. When running with --sdk option, this will skip
downloading fuchsia image prebuilts from GCS.
-A, --image-architecture
string, specifies image architecture, accepted values are
'arm64' or 'x64'. Required if image override flags (i.e
--disk-image, --kernel-image, --zbi-image, or --amber-files)
are specified.
--ssh string, specifies an alternative path for ssh keys. The
emulator defaults to the user's $HOME/.ssh directory if none
is specified. The path indicated must contain the files
`fuchsia_authorized_keys` and `fuchsia_ed25519`.
-V, --verbose bool, enables extra logging for debugging
--dry-run bool, terminates the plugin before it calls out to the next
layer, and prints the command to the screen for debugging.
The temporary staging directory is also retained.
--cpu-count usize, specifies the count of cpu cores used by the
emulator. If unspecified, the emulator will pick up a value
best for the host environment.
--sdk running in fuchsia sdk (not inside the fuchsia code
repository)
--isolated-ffx-config-path
string, specifies a config to an isolated ffx instance. If
unspecified, will use the default ffx instance.
--help display usage information