[Spice-devel] BSOD when booting Win7 Pro with spice

Alon Levy alevy at redhat.com
Sun Jan 30 23:08:55 PST 2011


On Mon, Jan 31, 2011 at 01:22:20AM +0100, Julian Sikorski wrote:
> W dniu 30.01.2011 23:45, Julian Sikorski pisze:
> > W dniu 30.01.2011 22:39, Alon Levy pisze:
> >> This looks like perfectly normal behavior for a qemu process (sorry, listened
> >> to h2g2 recently). But it still does. So I'm going to ask if you can eradicate parts
> >> of the qemu command line, or better yet do the reverse, start from the minimal
> >> command line with -vga qxl -spice port=5920,disable-ticketing and see if it still
> >> gives the screen. Another thing is if you can give the spicec.log file from your client,
> >> it's at $HOME/.spicec/spicec.log.
> > 
> > This actually boots:
> > 
> > I think I got it: it was the -S option at fault, which is not surprising
> > at all after you read the manpage: Do not start CPU at startup (you must
> > type 'c' in the monitor).
> > Still, while the machine boots now, it seems to get stuck at the
> > "Starting windows" screen.
> > Only after you remove the network part from the command it boots as
> > expected. I.e, the most complete machine I was able to boot is as follows:
> > 
> > QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvmM fedora-13 -enable-kvm -m 1024
> > -smp 1,sockets=1,cores=1,threads=1 -name windows -uuid
> > a5a9cf48-603e-5795-ba0f-b5692ce2d93d -nodefconfig -nodefaults -chardev
> > socket,id=monitor,path=/var/lib/libvirt/qemu/windows.monitor,server,nowait
> > -mon chardev=monitor,mode=control -rtc base=localtime -boot c -drive
> > if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device
> > ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive
> > file=/var/lib/libvirt/images/windows.img,if=none,id=drive-virtio-disk0,boot=on,format=raw
> > -device
> > virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0
> > -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device
> > usb-tablet,id=input0 -spice port=5900,disable-ticketing -vga qxl -device
> > AC97,id=sound0,bus=pci.0,addr=0x5 -device
> > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
> > 
> > The addition of
> > 
> > -netdev tap,fd=42,id=hostnet0 -device
> > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:6a:d1:82,bus=pci.0,addr=0x4
> > 
> > is the part which gets it stuck. Fortunately there is an error (which
> > was there all the time I just missed it somehow):
> > 
> > qemu-kvm: -netdev tap,fd=42,id=hostnet0: TUNGETIFF ioctl() failed: Bad
> > file descriptor
> > TUNSETOFFLOAD ioctl() failed: Bad file descriptor
> > 
> > Once we get this to work I'll be able to download the spice VGA driver
> > and test this properly.
> > 
> > Julian
> > 
> > 
> OK, it looks like I got it. Taking the fixes from RH bugs 664190 and
> 664192 I built my own libvirt and qemu, which were in the end able to
> start the domain via virsh - this solved the last issue with network.
> This has allowed me to install the vga qxl driver - it seems to work
> nicely so far.
> I'm still a little confused about VDI port, vioserial and vdagent, and
> what are they supposed to do.
> Is there anything else I could test?

Short summary: vdagent is the in guest agent, under windows vm's there
are two executables (vdservice and vdagent) but we refer to them sometimes
as vdagent collectively. Under linux its two executables as well (spice-vdagent
and spice-vdagentd). VDI port is the old transport host<->guest, vioserial
is the new. The reason for the change is that vioserial was already in qemu,
and VDI port would have needed to be accepted, and doesn't have any benefit
technically (except for being tested, but vioserial is being used by everyone
so it will be just as or even more tested).

You could test the agent - I don't think libvirt supports installing it, so
you need to do this manually. It should be on spice-space.org. You will need
changes to the commandline though:
 -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent
 -device virtserialport,chardev=vdagent,name=com.redhat.spice.0

You can change the debug setting. In the guest:
 windows - install according to the spice user manual item 6.1.2 (just
  grab the latest binaries from spice-space.org)
 fedora - yum install spice-vdagent

Alon
> 
> Thanks a lot for your input,
> Julian


More information about the Spice-devel mailing list