tree: d5e76f1d7ccf14c46e6cc10b3a03107ae144384a [path history] [tgz]
  1. docs/
  2. linux-guest/
  3. meta/
  4. scripts/
  5. tools/
  6. zircon-guest/
  7. BUILD.gn
  8. efi.cc
  9. efi.h
  10. generate_guest_config.py
  11. guest.gni
  12. guest_config-unittest.cc
  13. guest_config.cc
  14. guest_config.h
  15. guest_view.cc
  16. guest_view.h
  17. kernel.h
  18. linux.cc
  19. linux.h
  20. main.cc
  21. README.md
  22. run_all_unittests.cc
  23. zircon.cc
  24. zircon.h
bin/guest/README.md

Guest

The guest 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 Hypervisor Benchmarking.

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

Build host system with guest packages

$ cd $GARNET_DIR

# This will assemble all the boot images and start the bootserver. It will be
# ready to netboot once you see:
#
# [bootserver] listening on [::]33331
$ ./bin/guest/scripts/build.sh x86

Running guests

After netbooting the target device, to run Zircon:

$ launch_guest zircon-guest

Likewise, to launch a Linux guest:

$ launch_guest linux-guest

Running from Topaz

To run from topaz, update the build command as:

$ ./bin/guest/scripts/build.sh -p "topaz/packages/default,garnet/packages/linux-guest,garnet/packages/zircon-guest" x86

After netbooting the guest packages can be launched from the system launcher as linux-guest and zircon-guest.

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"
        },
    }
}