20.16.15. Guest Virtual Machine Interfaces
A character device presents itself to the guest virtual machine as one of the following types.
To set the parallel port, use a management tool to make the following change to the domain XML
... <devices> <parallel type='pty'> <source path='/dev/pts/2'/> <target port='0'/> </parallel> </devices> ...
Figure 20.60. Guest virtual machine interface Parallel Port
<target>
can have a port
attribute, which specifies the port number. Ports are numbered starting from 0. There are usually 0, 1 or 2 parallel ports.
To set the serial port use a management tool to make the following change to the domain XML:
... <devices> <serial type='pty'> <source path='/dev/pts/3'/> <target port='0'/> </serial> </devices> ...
Figure 20.61. Guest virtual machine interface serial port
<target>
can have a port
attribute, which specifies the port number. Ports are numbered starting from 0. There are usually 0, 1 or 2 serial ports. There is also an optional type
attribute, which has two choices for its value, one is isa-serial
, the other is usb-serial
. If type
is missing, isa-serial
will be used by default. For usb-serial an optional sub-element <address>
with type='usb'
can tie the device to a particular controller, documented above.
The
<console>
element is used to represent interactive consoles. Depending on the type of guest virtual machine in use, the consoles might be paravirtualized devices, or they might be a clone of a serial device, according to the following rules:
- If no
targetType
attribute is set, then the default devicetype
is according to the hypervisor's rules. The defaulttype
will be added when re-querying the XML fed into libvirt. For fully virtualized guest virtual machines, the default device type will usually be a serial port. - If the
targetType
attribute isserial
, and if no<serial>
element exists, the console element will be copied to the<serial>
element. If a<serial>
element does already exist, the console element will be ignored. - If the
targetType
attribute is notserial
, it will be treated normally. - Only the first
<console>
element may use atargetType
ofserial
. Secondary consoles must all be paravirtualized. - On s390, the console element may use a targetType of sclp or sclplm (line mode). SCLP is the native console type for s390. There's no controller associated to SCLP consoles.
In the example below, a virtio console device is exposed in the guest virtual machine as /dev/hvc[0-7] (for more information, see http://fedoraproject.org/wiki/Features/VirtioSerial):
... <devices> <console type='pty'> <source path='/dev/pts/4'/> <target port='0'/> </console> <!-- KVM virtio console --> <console type='pty'> <source path='/dev/pts/5'/> <target type='virtio' port='0'/> </console> </devices> ... ... <devices> <!-- KVM s390 sclp console --> <console type='pty'> <source path='/dev/pts/1'/> <target type='sclp' port='0'/> </console> </devices> ...
Figure 20.62. Guest virtual machine interface - virtio console device
If the console is presented as a serial port, the
<target>
element has the same attributes as for a serial port. There is usually only one console.