On Sun, Nov 17, 2013 at 7:44 PM, Cole Robinson
<crobinso(a)redhat.com
<mailto:crobinso@redhat.com>> wrote:
On 11/17/2013 01:26 PM, Matthew Harrold wrote:
> Hi All.
>
> I'm trying to setup a guest within my hypervisor that acts as a Console
> Server, using 10 USB to Serial adapters. The Host is all setup and can
access
> each Serial Port without problems.
>
> I have attempted to add the Serial Connections to a Guest, using both
Virtual
> Machine Manager and by editing the .XML file, and I can add up to 4 Serial
> devices (Including one for console access to the guest) without any
issues at
> all. However when I try to add a fifth , the virtual machine refuses to
start
>
>
> Distro: Ubuntu 13.04
> Kernel: 3.8.0-33-generic
> libvirtd: 1.0.2
> QEMU:1.4.0 (Debian 1.4.0+dfsg-1expubuntu4)
>
> The log-
>
> _4 Serial Devices_
>
> 2013-11-17 17:37:45.901+0000: starting up
> LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
> QEMU_AUDIO_DRV=none /usr/bin/kvm -name Ubuntu12.04-Cisco -S -M pc-1.0 -m
1024
> -smp 2,sockets=2,cores=1,threads=1 -uuid
1837c56f-6f84-2abe-8bdd-d7c974803b84
> -no-user-config -nodefaults -chardev
>
socket,id=charmonitor,path=/var/lib/libvirt/qemu/Ubuntu12.04-Cisco.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
> -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
>
file=/mnt/DiskRepo/Ubuntu12.04-TFTP.qcow2,if=none,id=drive-virtio-disk0,format=qcow2
> -device
>
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
> -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device
> ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev
> tap,fd=31,id=hostnet0,vhost=on,vhostfd=32 -device
>
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e6:9c:c0,bus=pci.0,addr=0x3
-chardev
> pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0
-chardev
> tty,id=charserial1,path=/dev/c1841-A -device
> isa-serial,chardev=charserial1,id=serial1 -chardev
> tty,id=charserial2,path=/dev/c2620-A -device
> isa-serial,chardev=charserial2,id=serial2 -chardev
> tty,id=charserial3,path=/dev/c2620-B -device
> isa-serial,chardev=charserial3,id=serial3 -vnc 0.0.0.0:0
<
http://0.0.0.0:0> <
http://0.0.0.0:0>
> -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> W: kvm binary is deprecated, please use qemu-system-x86_64 instead
> char device redirected to /dev/pts/0 (label charserial0)
>
>
> _5 Serial Devices_
>
> 2013-11-17 18:05:59.925+0000: starting up
> LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
> QEMU_AUDIO_DRV=none /usr/bin/kvm -name Ubuntu12.04-Cisco -S -M pc-1.0 -m
1024
> -smp 2,sockets=2,cores=1,threads=1 -uuid
1837c56f-6f84-2abe-8bdd-d7c974803b84
> -no-user-config -nodefaults -chardev
>
socket,id=charmonitor,path=/var/lib/libvirt/qemu/Ubuntu12.04-Cisco.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
> -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
>
file=/mnt/DiskRepo/Ubuntu12.04-TFTP.qcow2,if=none,id=drive-virtio-disk0,format=qcow2
> -device
>
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
> -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device
> ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev
> tap,fd=31,id=hostnet0,vhost=on,vhostfd=32 -device
>
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e6:9c:c0,bus=pci.0,addr=0x3
-chardev
> pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0
-chardev
> tty,id=charserial1,path=/dev/c1841-A -device
> isa-serial,chardev=charserial1,id=serial1 -chardev
> tty,id=charserial2,path=/dev/c2620-A -device
> isa-serial,chardev=charserial2,id=serial2 -chardev
> tty,id=charserial3,path=/dev/c2620-B -device
> isa-serial,chardev=charserial3,id=serial3 -chardev
> tty,id=charserial4,path=/dev/c2950-A -device
> isa-serial,chardev=charserial4,id=serial4 -vnc 0.0.0.0:0
<
http://0.0.0.0:0> <
http://0.0.0.0:0>
> -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> W: kvm binary is deprecated, please use qemu-system-x86_64 instead
> char device redirected to /dev/pts/0 (label charserial0)
> qemu-system-x86_64: -device isa-serial,chardev=charserial4,id=serial4:
Device
> 'isa-serial' could not be initialized
> 2013-11-17 18:06:00.314+0000: shutting down
>
> Does anyone have any idea what's causing this? I have attempted using
> different Serial to USB adapters to rule out a hardware / configuration
issue
> on one of the adapters, but it makes no difference. If I try to start more
> than 4 Serial Devices, it refuses to start up.
>
Pretty sure that's just a qemu or PC limit for isa-serial. The alternative is
to use virtio serial which can handle many more ports.
- Cole
That sounds likely. Is there any documentation covering 'binding' a host
serial port to a virtio serial device? I've search but not found anything
relevant.
Hmm, that's a good question. Actually it doesn't look like there is any way to
have <serial> use virtio. You can use channel to get something close, like:
<channel type='pty'>
<target type='virtio' name='my.port.2'/>
</channel>
However it won't appear as ttyS0 in the guest so it might not fit your
usecase. Recent qemu has a PCI serial device which should allow for more than
4 serial ports, but support isn't wired up in libvirt yet.
- Cole