Hey John, If I understand correctly, you are trying to get access to the character device after you've created the domain. The exact device is auto-assigned when the VM is created, but you can get the correct device from the domain XML after the domain is running. I use 'type=pty' in my domain definition XML. I then extract the device that was assigned to the domain using the following bit of python: import xml.etree.cElementTree as etree xml = etree.fromstring(myDomainObject.XMLDesc(0)) tty = xml.find('devices').find('console').attrib['tty'] Hope this helps! --Igor On Fri, Jan 14, 2011 at 02:35:31PM -0500, John Paul Walters wrote: > > On Jan 14, 2011, at 9:44 AM, Daniel P. Berrange wrote: > > >On Sat, Jan 15, 2011 at 01:09:07AM +1100, Justin Clift wrote: > >>On 14/01/2011, at 9:39 PM, Daniel P. Berrange wrote: > >>>On Fri, Jan 14, 2011 at 11:50:01AM +0800, Osier Yang wrote: > >>>>于 2011年01月12日 23:11, John Paul Walters 写道: > >>>>>Hi, > >>>>> > >>>>>I'm trying to get a virtual serial device up and running > >>>>>between my host > >>>>>and virtual machine with a device name on the host. I'm > >>>>>using libvirt > >>>>>0.8.3 and qemu 0.13.0. The challenge that I'm running into > >>>>>is that I'm > >>>>>able to get a serial device, but I cannot fix it to a pre- > >>>>>defined device > >>>>>name. For example, I'm using the following in my VM's xml file: > >>>>> > >>>>><serial type='pty'> > >>>>><source path='/dev/pts/19' /> > >>>>><target port='0' /> > >>>>></serial> > >>>>> > >>>>>As I said this works, but it doesn't set the host side to > >>>>>/dev/pts/19. > >>>>>Is there any way to do this? > >>>> > >>>>I could reproduce it, trying to find out why. > >>> > >>>When using type='type', the source path is an output only > >>>attribute. You can't control it yourself, it is autoassigned > >>>by the kernel as it sees fit. > >> > >>Any idea if it's the kind of thing whose name could be selected > >>or changed > >>using udev rules? > > > >No, these aren't normal devices. This is a magic filesystem > >which creates entries on the fly. > > Thanks for the replies. I'm not necessarily stuck on type='pty'. I > just need to be able to pin the device name or a pipe name to > something known on the host side. Along those lines, I've tried > using type='pipe' like so: > > <serial type='pipe'> > <source path='/tmp/mypipe' /> > <target port='1' /> > </serial> > > I've created the /tmp/mypipe.in and /tmp/mypipe.out using mkfifo per > the qemu directions. But I'm not sure what this is supposed to look > like on the VM-side. I notice that I have a ttyS1 in the VM, which > I believe is connected to the pipe on the host side, but do I use > this as a serial device or as a named pipe? > > regards, > JP > > > _______________________________________________ > libvirt-users mailing list > libvirt-users@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvirt-users
Attachment:
signature.asc
Description: Digital signature