[PATCHv7 0/7] Add non-FreeBSD guest support to Bhyve driver.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Drvbhyve hardcodes bhyveload(8) as the host bootloader for guests.
bhyveload(8) loader only supports FreeBSD guests.

This patch series adds <bootloader> and <bootloader_args> handling to
bhyve_command, so libvirt can boot non-FreeBSD guests in Bhyve.

Additionally, support for grub-bhyve(1)'s --cons-dev argument is added so that
interactive GRUB menus can be manipulated with the domain-configured serial
device.

See patch logs for further details.

Thanks,
Conrad

Changes in v7:
  - Detect grub-bhyve support for --cons-dev automatically; only pass the
    domain-configured serial device if supported.
  - Add '-nocons' version of the grub-serial unit tests to confirm we construct
    the loader Cmd correctly if the capability is missing.


Conrad Meyer (7):
  bhyve: Support /domain/bootloader configuration for non-FreeBSD
    guests.
  bhyvexml2argv: Add loader argv tests.
  domaincommon.rng: Add 'bootloader' to os=hvm schema for Bhyve
  bhyvexml2argv: Add tests for domain-configured bootloader, args
  bhyve: Probe grub-bhyve for --cons-dev capability
  bhyve: Add console support for grub-bhyve bootloader
  bhyvexml2argv: Add test for grub console support

 docs/drvbhyve.html.in                              | 100 ++++++++++-
 docs/formatdomain.html.in                          |   4 +-
 docs/schemas/domaincommon.rng                      |  17 +-
 src/bhyve/bhyve_capabilities.c                     |  37 ++++
 src/bhyve/bhyve_capabilities.h                     |   3 +
 src/bhyve/bhyve_command.c                          | 189 +++++++++++++++++++--
 src/bhyve/bhyve_command.h                          |   5 +-
 src/bhyve/bhyve_driver.c                           |  16 +-
 src/bhyve/bhyve_driver.h                           |   2 +
 src/bhyve/bhyve_process.c                          |  38 ++++-
 src/bhyve/bhyve_utils.h                            |   2 +
 .../bhyvexml2argv-acpiapic.ldargs                  |   1 +
 tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs  |   1 +
 .../bhyvexml2argv-bhyveload-explicitargs.args      |   3 +
 .../bhyvexml2argv-bhyveload-explicitargs.ldargs    |   1 +
 .../bhyvexml2argv-bhyveload-explicitargs.xml       |  23 +++
 .../bhyvexml2argvdata/bhyvexml2argv-console.ldargs |   1 +
 .../bhyvexml2argv-custom-loader.args               |   3 +
 .../bhyvexml2argv-custom-loader.ldargs             |   1 +
 .../bhyvexml2argv-custom-loader.xml                |  24 +++
 .../bhyvexml2argv-disk-cdrom-grub.args             |   3 +
 .../bhyvexml2argv-disk-cdrom-grub.devmap           |   1 +
 .../bhyvexml2argv-disk-cdrom-grub.ldargs           |   2 +
 .../bhyvexml2argv-disk-cdrom-grub.xml              |  23 +++
 .../bhyvexml2argv-disk-cdrom.ldargs                |   1 +
 .../bhyvexml2argv-disk-virtio.ldargs               |   1 +
 .../bhyvexml2argv-grub-defaults.args               |   3 +
 .../bhyvexml2argv-grub-defaults.devmap             |   1 +
 .../bhyvexml2argv-grub-defaults.ldargs             |   2 +
 .../bhyvexml2argv-grub-defaults.xml                |  23 +++
 .../bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs |   1 +
 .../bhyvexml2argv-serial-grub-nocons.args          |   4 +
 .../bhyvexml2argv-serial-grub-nocons.devmap        |   1 +
 .../bhyvexml2argv-serial-grub-nocons.ldargs        |   2 +
 .../bhyvexml2argv-serial-grub-nocons.xml           |  26 +++
 .../bhyvexml2argv-serial-grub.args                 |   4 +
 .../bhyvexml2argv-serial-grub.devmap               |   1 +
 .../bhyvexml2argv-serial-grub.ldargs               |   2 +
 .../bhyvexml2argv-serial-grub.xml                  |  26 +++
 .../bhyvexml2argvdata/bhyvexml2argv-serial.ldargs  |   1 +
 tests/bhyvexml2argvtest.c                          |  71 +++++++-
 41 files changed, 631 insertions(+), 39 deletions(-)
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-base.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-console.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.devmap
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.devmap
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.devmap
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.devmap
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-serial.ldargs

-- 
1.9.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]