fvdl


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.

console.


Unrecognized argument: 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

mode


Unrecognized argument: mode

on


Unrecognized argument: on

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 <fvm-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/aemu/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, --fvm-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, --fvm-image   string, absolute path to fvm image 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
                    --fvm-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