|
|
c1c534 |
From 07ed5aa86d223b1e99ef716429be60c1823ce0f5 Mon Sep 17 00:00:00 2001
|
|
|
c1c534 |
Message-Id: <07ed5aa86d223b1e99ef716429be60c1823ce0f5@dist-git>
|
|
|
c1c534 |
From: Andrea Bolognani <abologna@redhat.com>
|
|
|
c1c534 |
Date: Wed, 29 Nov 2017 16:22:55 +0100
|
|
|
c1c534 |
Subject: [PATCH] docs: Improve documentation for serial consoles
|
|
|
c1c534 |
|
|
|
c1c534 |
Our current documentation is missing some information and doesn't
|
|
|
c1c534 |
do a great job at explaining how the <serial> and <console> elements
|
|
|
c1c534 |
are connected. Let's try to fix that.
|
|
|
c1c534 |
|
|
|
c1c534 |
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
|
|
|
c1c534 |
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
|
|
|
c1c534 |
(cherry picked from commit 4567cecb372c48095fce23ce3040d1c687cc3640)
|
|
|
c1c534 |
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1449265
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1511421
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1512929
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1512934
|
|
|
c1c534 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
c1c534 |
---
|
|
|
c1c534 |
docs/formatdomain.html.in | 224 +++++++++++++++++++++++++++++++++-------------
|
|
|
c1c534 |
1 file changed, 164 insertions(+), 60 deletions(-)
|
|
|
c1c534 |
|
|
|
c1c534 |
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
|
|
|
c1c534 |
index 4f28dce355..f57a124056 100644
|
|
|
c1c534 |
--- a/docs/formatdomain.html.in
|
|
|
c1c534 |
+++ b/docs/formatdomain.html.in
|
|
|
c1c534 |
@@ -6434,77 +6434,68 @@ qemu-kvm -net nic,model=? /dev/null
|
|
|
c1c534 |
|
|
|
c1c534 |
...
|
|
|
c1c534 |
<devices>
|
|
|
c1c534 |
+ <!-- Serial port -->
|
|
|
c1c534 |
<serial type='pty'>
|
|
|
c1c534 |
<source path='/dev/pts/3'/>
|
|
|
c1c534 |
<target port='0'/>
|
|
|
c1c534 |
</serial>
|
|
|
c1c534 |
</devices>
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+<devices>
|
|
|
c1c534 |
+ <!-- USB serial port -->
|
|
|
c1c534 |
+ <serial type='pty'>
|
|
|
c1c534 |
+ <target type='usb-serial' port='0'/>
|
|
|
c1c534 |
+ <address type='usb' bus='0' port='1'/>
|
|
|
c1c534 |
+ </serial>
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
...
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
- target can have a port attribute, which
|
|
|
c1c534 |
- specifies the port number. Ports are numbered starting from 0. There are
|
|
|
c1c534 |
- usually 0, 1 or 2 serial ports. There is also an optional
|
|
|
c1c534 |
- type attribute since 1.0.2
|
|
|
c1c534 |
- which has three choices for its value, one is isa-serial ,
|
|
|
c1c534 |
- then usb-serial and last one is pci-serial .
|
|
|
c1c534 |
- If type is missing, isa-serial will be used by
|
|
|
c1c534 |
- default. For usb-serial an optional sub-element
|
|
|
c1c534 |
- <address/> with type='usb' can tie the
|
|
|
c1c534 |
- device to a particular controller, documented above.
|
|
|
c1c534 |
- Similarly, pci-serial can be used to attach the device to
|
|
|
c1c534 |
- the pci bus (since 1.2.16). Again, it has
|
|
|
c1c534 |
- optional sub-element <address/> with
|
|
|
c1c534 |
- type='pci' to select desired location on the PCI bus.
|
|
|
c1c534 |
+ The target element can have an optional port
|
|
|
c1c534 |
+ attribute, which specifies the port number (starting from 0), and an
|
|
|
c1c534 |
+ optional type attribute: valid values are,
|
|
|
c1c534 |
+ since 1.0.2, isa-serial (usable
|
|
|
c1c534 |
+ with x86 guests), usb-serial (usable whenever USB support
|
|
|
c1c534 |
+ is available) and pci-serial (usable whenever PCI support
|
|
|
c1c534 |
+ is available).
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ If any of the attributes is not specified by the user, libvirt will
|
|
|
c1c534 |
+ choose a value suitable for most users.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ All of the target types support configuring the guest-visible device
|
|
|
c1c534 |
+ address as documented above; more
|
|
|
c1c534 |
+ specifically, acceptable address types are isa (for
|
|
|
c1c534 |
+ isa-serial ), usb (for usb-serial )
|
|
|
c1c534 |
+ and pci (for pci-serial ).
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ For the relationship between serial ports and consoles,
|
|
|
c1c534 |
+ see below.
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
-
|
|
|
c1c534 |
- The console element is used to represent interactive consoles. Depending
|
|
|
c1c534 |
- on the type of guest in use, the consoles might be paravirtualized devices,
|
|
|
c1c534 |
- or they might be a clone of a serial device, according to the following
|
|
|
c1c534 |
- rules:
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
- If no targetType attribute is set, then the default
|
|
|
c1c534 |
- device type is according to the hypervisor's rules. The default
|
|
|
c1c534 |
- type will be added when re-querying the XML fed into libvirt.
|
|
|
c1c534 |
- For fully virtualized guests, the default device type will usually
|
|
|
c1c534 |
- be a serial port.
|
|
|
c1c534 |
- If the targetType attribute is serial ,
|
|
|
c1c534 |
- then if no <serial> element exists, the console
|
|
|
c1c534 |
- element will be copied to the serial element. If a <serial>
|
|
|
c1c534 |
- element does already exist, the console element will be ignored.
|
|
|
c1c534 |
- If the targetType attribute is not serial ,
|
|
|
c1c534 |
- it will be treated normally.
|
|
|
c1c534 |
- Only the first console element may use a targetType
|
|
|
c1c534 |
- of serial . Secondary consoles must all be paravirtualized.
|
|
|
c1c534 |
-
|
|
|
c1c534 |
- On S390, the console element may use a
|
|
|
c1c534 |
- targetType of sclp or sclplm
|
|
|
c1c534 |
- (line mode). SCLP is the native console type for S390. There's no
|
|
|
c1c534 |
- controller associated to SCLP consoles.
|
|
|
c1c534 |
- Since 1.0.2
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
- A virtio console device is exposed in the
|
|
|
c1c534 |
- guest as /dev/hvc[0-7] (for more information, see
|
|
|
c1c534 |
- http://fedoraproject.org/wiki/Features/VirtioSerial)
|
|
|
c1c534 |
- Since 0.8.3
|
|
|
c1c534 |
-
|
|
|
c1c534 |
-
|
|
|
c1c534 |
|
|
|
c1c534 |
...
|
|
|
c1c534 |
<devices>
|
|
|
c1c534 |
+ <!-- Serial console -->
|
|
|
c1c534 |
<console type='pty'>
|
|
|
c1c534 |
- <source path='/dev/pts/4'/>
|
|
|
c1c534 |
- <target port='0'/>
|
|
|
c1c534 |
+ <source path='/dev/pts/2'/>
|
|
|
c1c534 |
+ <target type='serial' port='0'/>
|
|
|
c1c534 |
</console>
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
<!-- KVM virtio console -->
|
|
|
c1c534 |
<console type='pty'>
|
|
|
c1c534 |
<source path='/dev/pts/5'/>
|
|
|
c1c534 |
@@ -6513,21 +6504,134 @@ qemu-kvm -net nic,model=? /dev/null
|
|
|
c1c534 |
</devices>
|
|
|
c1c534 |
...
|
|
|
c1c534 |
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ The console element is used to represent interactive
|
|
|
c1c534 |
+ serial consoles. Depending on the type of guest in use and the specifics
|
|
|
c1c534 |
+ of the configuration, the console element might represent
|
|
|
c1c534 |
+ the same device as an existing serial element or a separate
|
|
|
c1c534 |
+ device.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ A target subelement is supported and works the same
|
|
|
c1c534 |
+ way as with the serial element
|
|
|
c1c534 |
+ (see above for details).
|
|
|
c1c534 |
+ Valid values for the type attribute are:
|
|
|
c1c534 |
+ serial (described below);
|
|
|
c1c534 |
+ virtio (usable whenever VirtIO support is available);
|
|
|
c1c534 |
+ xen , lxc , uml and
|
|
|
c1c534 |
+ openvz (available when the corresponding hypervisor is in
|
|
|
c1c534 |
+ use); sclp and sclplm (usable for s390 and
|
|
|
c1c534 |
+ s390x QEMU guests).
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ Of the target types listed above, serial is special in
|
|
|
c1c534 |
+ that it doesn't represents a separate device, but rather the same
|
|
|
c1c534 |
+ device as the first serial element. Due to this, there can
|
|
|
c1c534 |
+ only be a single console element with target type
|
|
|
c1c534 |
+ serial per guest.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ Virtio consoles are usually accessible as /dev/hvc[0-7]
|
|
|
c1c534 |
+ from inside the guest; for more information, see
|
|
|
c1c534 |
+ http://fedoraproject.org/wiki/Features/VirtioSerial.
|
|
|
c1c534 |
+ Since 0.8.3
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ For the relationship between serial ports and consoles,
|
|
|
c1c534 |
+ see below.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ Due to hystorical reasons, the serial and
|
|
|
c1c534 |
+ console elements have partially overlapping scopes.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ In general, both elements are used to configure one or more serial
|
|
|
c1c534 |
+ consoles to be used for interacting with the guest. The main difference
|
|
|
c1c534 |
+ between the two is that serial is used for emulated,
|
|
|
c1c534 |
+ usually native, serial consoles, whereas console is used
|
|
|
c1c534 |
+ for paravirtualized ones.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ Both emulated and paravirtualized serial consoles have advantages and
|
|
|
c1c534 |
+ disadvantages:
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ emulated serial consoles are usually initialized much earlier than
|
|
|
c1c534 |
+ paravirtualized ones, so they can be used to control the bootloader
|
|
|
c1c534 |
+ and display both firmware and early boot messages;
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ on several platforms, there can only be a single emulated serial
|
|
|
c1c534 |
+ console per guest but paravirtualized consoles don't suffer from the
|
|
|
c1c534 |
+ same limitation.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ A configuration such as:
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
|
|
|
c1c534 |
...
|
|
|
c1c534 |
-<devices>
|
|
|
c1c534 |
- <!-- KVM S390 sclp console -->
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
<console type='pty'>
|
|
|
c1c534 |
- <source path='/dev/pts/1'/>
|
|
|
c1c534 |
- <target type='sclp' port='0'/>
|
|
|
c1c534 |
+ <target type='serial'/>
|
|
|
c1c534 |
+ </console>
|
|
|
c1c534 |
+ <console type='pty'>
|
|
|
c1c534 |
+ <target type='virtio'/>
|
|
|
c1c534 |
</console>
|
|
|
c1c534 |
</devices>
|
|
|
c1c534 |
...
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
- If the console is presented as a serial port, the target
|
|
|
c1c534 |
- element has the same attributes as for a serial port. There is usually
|
|
|
c1c534 |
- only 1 console.
|
|
|
c1c534 |
+ will work on any platform and will result in one emulated serial console
|
|
|
c1c534 |
+ for early boot logging / interactive / recovery use, and one
|
|
|
c1c534 |
+ paravirtualized serial console to be used eg. as a side channel. Most
|
|
|
c1c534 |
+ people will be fine with having just the first console
|
|
|
c1c534 |
+ element in their configuration.
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ Note that, due to the compatibility concerns mentioned earlier, all the
|
|
|
c1c534 |
+ following configurations:
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+ <serial type='pty'/>
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+ <console type='pty'/>
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+ <serial type='pty'/>
|
|
|
c1c534 |
+ <console type='pty'/>
|
|
|
c1c534 |
+</devices>
|
|
|
c1c534 |
+...
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ will be treated the same and will result in a single emulated serial
|
|
|
c1c534 |
+ console being available to the guest.
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
--
|
|
|
c1c534 |
2.15.1
|
|
|
c1c534 |
|