tree: 299818f49e231e4ad106e910811466e5686d047e [path history] [tgz]
  1. cli/
  2. mgr/
  3. pkg/
  4. runner/
  5. scripts/
  6. third_party/
  7. vmm/
  8. MAINTAINERS
  9. README.md
bin/guest/README.md

Guest

The vmm app enables booting a guest operating system using the Zircon hypervisor.

These instructions will guide you through creating minimal Zircon and Linux guests. For instructions on building a more comprehensive linux guest system see the debian_guest package.

These instructions assume a general familiarity with how to netboot the target device.

Build host system with the guest package

Configure, build, and boot the guest package as follows:

$ fx set x64 --packages garnet/packages/experimental/linux_guest,garnet/packages/experimental/zircon_guest --args guest_display=\"framebuffer\"
$ fx full-build
$ fx boot

Building for QEMU

Configure, build, and boot the guest package as follows:

$ fx set arm64 --packages garnet/packages/experimental/linux_guest,garnet/packages/experimental/zircon_guest
$ fx full-build
$ fx run

Running guests

After netbooting the target device, to run Zircon:

$ guest launch zircon_guest

Likewise, to launch a Linux guest:

$ guest launch linux_guest

Running from Topaz

To run from Topaz, configure the guest package as follows:

$ fx set x64 --packages topaz/packages/topaz,garnet/packages/experimental/linux_guest,garnet/packages/experimental/zircon_guest

After netbooting the guest packages can be launched from the system launcher as linux_guest and zircon_guest.

Building for arm64

First flash Zedboot onto your VIM2:

$ cd $ZIRCON_DIR
$ scripts/build-zircon-arm64
$ scripts/flash-vim2 -m

Then configure, build, and boot the guest package as follows:

$ fx set arm64 --packages garnet/packages/experimental/linux_guest,garnet/packages/experimental/zircon_guest --args guest_display=\"framebuffer\" --netboot
$ fx full-build
$ fx boot vim2

Guest Configuration

Guest systems can be configured by including a config file inside the guest package:

{
    "type": "object",
    "properties": {
        "kernel": {
            "type": "string"
        },
        "ramdisk": {
            "type": "string"
        },
        "block": {
            "type": "string"
        },
        "cmdline": {
            "type": "string"
        },
        "balloon-demand-page": {
            "type": "string"
        },
        "balloon-interval": {
            "type": "string"
        },
        "balloon-threshold": {
            "type": "string"
        },
    }
}