There is no keyboard support currently in libvirt.
For some platforms (PPC64 QEMU) this makes graphics unusable,
since the keyboard is not implicit and it can't be added via libvirt.
Signed-off-by: Li Zhang <zhlcindy@linux.vnet.ibm.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
<choice>
<value>tablet</value>
<value>mouse</value>
+ <value>keyboard</value>
</choice>
</attribute>
<optional>
VIR_ENUM_IMPL(virDomainInput, VIR_DOMAIN_INPUT_TYPE_LAST,
"mouse",
- "tablet")
+ "tablet",
+ "keyboard")
VIR_ENUM_IMPL(virDomainInputBus, VIR_DOMAIN_INPUT_BUS_LAST,
"ps2",
/* Parse the XML definition for an input device */
static virDomainInputDefPtr
-virDomainInputDefParseXML(const char *ostype,
+virDomainInputDefParseXML(const virDomainDef *dom,
xmlNodePtr node,
unsigned int flags)
{
goto error;
}
- if (STREQ(ostype, "hvm")) {
- if (def->bus == VIR_DOMAIN_INPUT_BUS_PS2 && /* Only allow mouse for ps2 */
- def->type != VIR_DOMAIN_INPUT_TYPE_MOUSE) {
+ if (STREQ(dom->os.type, "hvm")) {
+ if (def->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
+ def->type != VIR_DOMAIN_INPUT_TYPE_MOUSE &&
+ def->type != VIR_DOMAIN_INPUT_TYPE_KBD) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("ps2 bus does not support %s input device"),
type);
_("unsupported input bus %s"),
bus);
}
- if (def->type != VIR_DOMAIN_INPUT_TYPE_MOUSE) {
+ if (def->type != VIR_DOMAIN_INPUT_TYPE_MOUSE &&
+ def->type != VIR_DOMAIN_INPUT_TYPE_KBD) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("xen bus does not support %s input device"),
type);
}
}
} else {
- if (STREQ(ostype, "hvm")) {
- if (def->type == VIR_DOMAIN_INPUT_TYPE_MOUSE)
+ if (STREQ(dom->os.type, "hvm")) {
+ if ((def->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
+ def->type == VIR_DOMAIN_INPUT_TYPE_KBD))
def->bus = VIR_DOMAIN_INPUT_BUS_PS2;
else
def->bus = VIR_DOMAIN_INPUT_BUS_USB;
goto error;
break;
case VIR_DOMAIN_DEVICE_INPUT:
- if (!(dev->data.input = virDomainInputDefParseXML(def->os.type,
+ if (!(dev->data.input = virDomainInputDefParseXML(def,
node, flags)))
goto error;
break;
goto error;
for (i = 0; i < n; i++) {
- virDomainInputDefPtr input = virDomainInputDefParseXML(def->os.type,
+ virDomainInputDefPtr input = virDomainInputDefParseXML(def,
nodes[i],
flags);
if (!input)
* XXX will this be true for other virt types ? */
if ((STREQ(def->os.type, "hvm") &&
input->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
- input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE) ||
+ (input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
+ input->type == VIR_DOMAIN_INPUT_TYPE_KBD)) ||
(STRNEQ(def->os.type, "hvm") &&
input->bus == VIR_DOMAIN_INPUT_BUS_XEN &&
- input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE)) {
+ (input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
+ input->type == VIR_DOMAIN_INPUT_TYPE_KBD))) {
virDomainInputDefFree(input);
continue;
}
VIR_DOMAIN_INPUT_TYPE_MOUSE,
input_bus) < 0)
goto error;
- }
+ if (virDomainDefMaybeAddInput(def,
+ VIR_DOMAIN_INPUT_TYPE_KBD,
+ input_bus) < 0)
+ goto error;
+ }
/* analysis of the sound devices */
if ((n = virXPathNodeSet("./devices/sound", ctxt, &nodes)) < 0) {
}
if (def->ngraphics > 0) {
- /* If graphics is enabled, add the implicit mouse */
+ /* If graphics is enabled, add the implicit mouse/keyboard */
virDomainInputDef autoInput = {
VIR_DOMAIN_INPUT_TYPE_MOUSE,
STREQ(def->os.type, "hvm") ?
if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
goto error;
+ if (!(flags & VIR_DOMAIN_XML_MIGRATABLE)) {
+ autoInput.type = VIR_DOMAIN_INPUT_TYPE_KBD;
+ if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
+ goto error;
+ }
+
for (n = 0; n < def->ngraphics; n++)
if (virDomainGraphicsDefFormat(buf, def->graphics[n], flags) < 0)
goto error;
enum virDomainInputType {
VIR_DOMAIN_INPUT_TYPE_MOUSE,
VIR_DOMAIN_INPUT_TYPE_TABLET,
+ VIR_DOMAIN_INPUT_TYPE_KBD,
VIR_DOMAIN_INPUT_TYPE_LAST
};
<alias name='input0'/>
</input>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<alias name='input0'/>
</input>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no'>
<listen type='network' network='Bobsnetwork'/>
</graphics>
<controller type='usb' index='0'/>
<controller type='ide' index='0'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' listen='1.2.3.4' autoport='yes'>
<listen type='address' address='1.2.3.4'/>
<listen type='network' network='Bobsnetwork'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='sdl' display=':0.1' xauth='/root/.Xauthority' fullscreen='yes'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='sdl' display=':0.1' xauth='/root/.Xauthority'/>
<video>
<model type='vga' vram='9216' heads='1'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='auto_glz'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<channel name='main' mode='secure'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5900' autoport='no' passwd='sercet' passwdValidTo='2011-05-31T16:11:22' connected='disconnect'/>
<sound model='ac97'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1' defaultMode='secure'>
<listen type='address' address='127.0.0.1'/>
<channel name='main' mode='secure'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' listen='127.0.0.1' sharePolicy='allow-exclusive'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' socket='/tmp/foo.socket'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='usb' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' websocket='5700' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' listen='2001:1:2:3:4:5:1234:1234'>
<listen type='address' address='2001:1:2:3:4:5:1234:1234'/>
</graphics>
<controller type='usb' index='0'/>
<controller type='ide' index='0'/>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='5903' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
<sound model='ac97'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='scsi' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='sdl'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='1.2.3.4'>
<listen type='address' address='1.2.3.4'/>
<listen type='network' network='Bobsnetwork'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='spice' port='5900' autoport='no' passwd='sercet' passwdValidTo='2011-05-31T16:11:22' connected='disconnect'/>
<sound model='ac97'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes'/>
</devices>
</domain>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5925' autoport='yes' keymap='en-us'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<model type='netfront'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<target port='0'/>
</parallel>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='1'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5901' autoport='no'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
<sound model='sb16'/>
<sound model='es1370'/>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
<sound model='sb16'/>
<sound model='es1370'/>
</interface>
<input type='mouse' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
</interface>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' keymap='ja'/>
</devices>
</domain>
<target dev='vif3.0'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
</devices>
</domain>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
</devices>
</domain>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='5925' autoport='no' listen='0.0.0.0' keymap='ja'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='ja'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='ja'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes'/>
</devices>
</domain>
<on_crash>destroy</on_crash>
<devices>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' keymap='de' passwd='password'/>
<video>
<model type='vmvga' vram='4096'/>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='netfront'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target port='0'/>
</parallel>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='1'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
</interface>
<input type='mouse' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
</interface>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<model type='e1000'/>
</interface>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
</devices>
</domain>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='5925' autoport='no' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='5925' autoport='no' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='xen' port='0'/>
</console>
<input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
<hostdev mode='subsystem' type='pci' managed='no'>
<source>