[libvirt-users] Unable to use more than 4 serial devices at once.
Cole Robinson
crobinso at redhat.com
Tue Nov 19 19:39:01 UTC 2013
On 11/17/2013 09:18 PM, Matthew Harrold wrote:
> On Sun, Nov 17, 2013 at 7:44 PM, Cole Robinson <crobinso at redhat.com
> <mailto:crobinso at 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
More information about the libvirt-users
mailing list