mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Allow multiple consoles per virtual guest
While Xen only has a single paravirt console, UML, and QEMU both support multiple paravirt consoles. The LXC driver can also be trivially made to support multiple consoles. This patch extends the XML to allow multiple <console> elements in the XML. It also makes the UML and QEMU drivers support this config. * src/conf/domain_conf.c, src/conf/domain_conf.h: Allow multiple <console> devices * src/lxc/lxc_driver.c, src/xen/xen_driver.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c: Update for internal API changes * src/security/security_selinux.c, src/security/virt-aa-helper.c: Only label consoles that aren't a copy of the serial device * src/qemu/qemu_command.c, src/qemu/qemu_driver.c, src/qemu/qemu_process.c, src/uml/uml_conf.c, src/uml/uml_driver.c: Support multiple console devices * tests/qemuxml2xmltest.c, tests/qemuxml2argvtest.c: Extra tests for multiple virtio consoles. Set QEMU_CAPS_CHARDEV for all console /channel tests * tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args, tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.args tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args: Update for correct chardev syntax * tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args, tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml: New test file
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \
|
||||
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
|
||||
socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
|
||||
chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
|
||||
virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=4,bus=pci.0,addr=0x3 \
|
||||
-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa -device \
|
||||
virtio-serial-pci,id=virtio-serial2,bus=pci.0,addr=0x4 -hda \
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \
|
||||
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
|
||||
socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
|
||||
chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
|
||||
virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa -hda \
|
||||
/dev/HostVG/QEMUGuest1 -chardev pty,id=charchannel0 -device virtserialport,\
|
||||
bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,\
|
||||
|
||||
12
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args
Normal file
12
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args
Normal file
@@ -0,0 +1,12 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
|
||||
socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
|
||||
chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
|
||||
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -hda \
|
||||
/dev/HostVG/QEMUGuest1 -chardev pty,id=charserial0 \
|
||||
-device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charconsole1 \
|
||||
-device virtconsole,chardev=charconsole1,id=console1 -chardev \
|
||||
pty,id=charconsole2 -device virtconsole,chardev=charconsole2,id=console2 \
|
||||
-chardev pty,id=charconsole3 -device virtconsole,chardev=charconsole3,\
|
||||
id=console3 -usb -device virtio-balloon-pci,id=balloon0,\
|
||||
bus=pci.0,addr=0x4
|
||||
41
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml
Normal file
41
tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory>219100</memory>
|
||||
<currentMemory>219100</currentMemory>
|
||||
<vcpu cpuset='1-4,8-20,525'>1</vcpu>
|
||||
<os>
|
||||
<type arch='i686' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu</emulator>
|
||||
<disk type='block' device='disk'>
|
||||
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||
<target dev='hda' bus='ide'/>
|
||||
<address type='drive' controller='0' bus='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='ide' index='0'/>
|
||||
<controller type='virtio-serial' index='0'/>
|
||||
<serial type='pty'>
|
||||
<target port='0'/>
|
||||
</serial>
|
||||
<console type='pty'>
|
||||
<target type='serial' port='0'/>
|
||||
</console>
|
||||
<console type='pty'>
|
||||
<target type='virtio' port='1'/>
|
||||
</console>
|
||||
<console type='pty'>
|
||||
<target type='virtio' port='2'/>
|
||||
</console>
|
||||
<console type='pty'>
|
||||
<target type='virtio' port='3'/>
|
||||
</console>
|
||||
<memballoon model='virtio'/>
|
||||
</devices>
|
||||
</domain>
|
||||
@@ -1,6 +1,7 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \
|
||||
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
|
||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
|
||||
socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
|
||||
chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
|
||||
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -hda \
|
||||
/dev/HostVG/QEMUGuest1 -chardev pty,id=charconsole0 -device virtconsole,\
|
||||
chardev=charconsole0,id=console0 -usb -device virtio-balloon-pci,id=balloon0,\
|
||||
|
||||
Reference in New Issue
Block a user