<p>
The libvirt KVM/QEMU driver can manage any QEMU emulator from
- version 0.12.0 or later. It can also manage Xenner, which
- provides the same QEMU command line syntax and monitor
- interaction.
+ version 0.12.0 or later.
</p>
<h2><a name="project">Project Links</a></h2>
node. If both are found, then KVM fullyvirtualized, hardware accelerated
guests will be available.
</li>
- <li>
- <strong>Xenner hypervisor</strong>: The driver will probe <code>/usr/bin</code>
- for the presence of <code>xenner</code> and <code>/dev/kvm</code> device
- node. If both are found, then Xen paravirtualized guests can be run using
- the KVM hardware acceleration.
- </li>
</ul>
<h2><a name="uris">Connections to QEMU driver</a></h2>
</devices>
</domain></pre>
- <h3>Xen paravirtualized guests with hardware acceleration</h3>
-
-
-
</body>
</html>
virQEMUCapsSet(qemuCaps, QEMU_CAPS_ENABLE_KVM);
if (strstr(help, ",process="))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
- if (strstr(help, "-xen-domid"))
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_XEN_DOMID);
- else if (strstr(help, "-domid"))
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_DOMID);
cache = strstr(help, "cache=");
if (cache && (p = strchr(cache, ']'))) {
/* 5 */
X_QEMU_CAPS_NAME, /* Is the -name flag available */
X_QEMU_CAPS_UUID, /* Is the -uuid flag available */
- QEMU_CAPS_DOMID, /* Xenner: -domid flag available */
+ X_QEMU_CAPS_DOMID, /* Xenner: -domid flag available */
QEMU_CAPS_VNET_HDR,
QEMU_CAPS_MIGRATE_KVM_STDIO, /* avoid kvm tcp migration bug */
QEMU_CAPS_DRIVE_SERIAL, /* -driver serial= available */
/* 20 */
- QEMU_CAPS_XEN_DOMID, /* -xen-domid */
+ X_QEMU_CAPS_XEN_DOMID, /* -xen-domid */
QEMU_CAPS_MIGRATE_QEMU_UNIX, /* qemu migration via unix sockets */
QEMU_CAPS_CHARDEV, /* Is the new -chardev arg available */
QEMU_CAPS_ENABLE_KVM, /* -enable-kvm flag */
if (def->virtType == VIR_DOMAIN_VIRT_XEN ||
def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
def->os.type == VIR_DOMAIN_OSTYPE_LINUX) {
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_XEN_DOMID)) {
- virCommandAddArg(cmd, "-xen-attach");
- virCommandAddArg(cmd, "-xen-domid");
- virCommandAddArgFormat(cmd, "%d", def->id);
- } else {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("qemu emulator '%s' does not support xen"),
- def->emulator);
- goto error;
- }
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("qemu emulator '%s' does not support xen"),
+ def->emulator);
+ goto error;
}
if ((def->os.smbios_mode != VIR_DOMAIN_SMBIOS_NONE) &&
if (!(path = last_component(def->emulator)))
goto error;
- if (strstr(path, "xenner")) {
+ def->os.type = VIR_DOMAIN_OSTYPE_HVM;
+ if (strstr(path, "kvm")) {
def->virtType = VIR_DOMAIN_VIRT_KVM;
- def->os.type = VIR_DOMAIN_OSTYPE_XEN;
- } else {
- def->os.type = VIR_DOMAIN_OSTYPE_HVM;
- if (strstr(path, "kvm")) {
- def->virtType = VIR_DOMAIN_VIRT_KVM;
- def->features[VIR_DOMAIN_FEATURE_PAE] = VIR_TRISTATE_SWITCH_ON;
- }
+ def->features[VIR_DOMAIN_FEATURE_PAE] = VIR_TRISTATE_SWITCH_ON;
}
if (def->virtType == VIR_DOMAIN_VIRT_KVM)
/* This needs <emulator>./qemu.sh</emulator> which doesn't work here. */
/*DO_TEST("cpu-kvmclock");*/
- /* Can't roundtrip xenner arch */
- /*DO_TEST("bootloader");*/
-
DO_TEST("reboot-timeout-enabled");
DO_TEST("reboot-timeout-disabled");
DO_TEST("nographics-vga");
DO_TEST("input-usbmouse");
DO_TEST("input-usbtablet");
- /* Can't rountrip xenner arch */
- /*DO_TEST("input-xen");*/
DO_TEST("misc-acpi");
DO_TEST("misc-disable-s3");
DO_TEST("misc-disable-suspends");
QEMU_CAPS_0_10,
QEMU_CAPS_ENABLE_KVM,
QEMU_CAPS_SDL,
- QEMU_CAPS_XEN_DOMID,
QEMU_CAPS_MIGRATE_QEMU_UNIX,
QEMU_CAPS_CHARDEV,
QEMU_CAPS_BALLOON,
QEMU_CAPS_KVM,
QEMU_CAPS_DRIVE_FORMAT,
QEMU_CAPS_DRIVE_SERIAL,
- QEMU_CAPS_XEN_DOMID,
QEMU_CAPS_DRIVE_READONLY,
QEMU_CAPS_VGA,
QEMU_CAPS_0_10,
QEMU_CAPS_DRIVE_CACHE_UNSAFE,
QEMU_CAPS_DRIVE_FORMAT,
QEMU_CAPS_DRIVE_SERIAL,
- QEMU_CAPS_XEN_DOMID,
QEMU_CAPS_DRIVE_READONLY,
QEMU_CAPS_VGA,
QEMU_CAPS_0_10,
QEMU_CAPS_DRIVE_CACHE_UNSAFE,
QEMU_CAPS_DRIVE_FORMAT,
QEMU_CAPS_DRIVE_SERIAL,
- QEMU_CAPS_XEN_DOMID,
QEMU_CAPS_DRIVE_READONLY,
QEMU_CAPS_VGA,
QEMU_CAPS_0_10,
+++ /dev/null
-<domain type='xen'>
- <name>XenGuest2</name>
- <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
- <memory unit='KiB'>592896</memory>
- <currentMemory unit='KiB'>403456</currentMemory>
- <vcpu placement='static'>1</vcpu>
- <os>
- <type arch='i686' machine='xenfv'>hvm</type>
- <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
- <boot dev='cdrom'/>
- </os>
- <features>
- <acpi/>
- <apic/>
- <pae/>
- <vmport state='off'/>
- </features>
- <clock offset='utc' adjustment='reset'>
- <timer name='hpet' present='yes'/>
- </clock>
- <on_poweroff>destroy</on_poweroff>
- <on_reboot>restart</on_reboot>
- <on_crash>restart</on_crash>
- <devices>
- <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
- </devices>
-</domain>
QEMU_CAPS_MACHINE_USB_OPT);
DO_TEST("machine-vmport-opt", QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_VMPORT_OPT);
- DO_TEST_FAILURE("machine-xen-vmport-opt", QEMU_CAPS_MACHINE_OPT,
- QEMU_CAPS_MACHINE_VMPORT_OPT);
DO_TEST("kvm", QEMU_CAPS_MACHINE_OPT);
DO_TEST("default-kvm-host-arch", QEMU_CAPS_MACHINE_OPT);
DO_TEST("default-qemu-host-arch", QEMU_CAPS_MACHINE_OPT);
virCapsGuestPtr guest;
virCapsGuestMachinePtr *machines = NULL;
int nmachines = 0;
- static const char *const xen_machines[] = {
- "xenner"
- };
if (!(caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false)))
return NULL;
goto cleanup;
machines = NULL;
- nmachines = ARRAY_CARDINALITY(xen_machines);
- if ((machines = virCapabilitiesAllocMachines(xen_machines, nmachines)) == NULL)
- goto cleanup;
-
- if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_X86_64,
- "/usr/bin/xenner", NULL,
- nmachines, machines)) == NULL)
- goto cleanup;
- machines = NULL;
-
if (virCapabilitiesAddGuestDomain(guest,
VIR_DOMAIN_VIRT_KVM,
"/usr/bin/kvm",