On Mon, Apr 25, 2011 at 6:28 PM, Cole Robinson <crobinso(a)redhat.com> wrote:
On 04/25/2011 04:27 AM, Richard W.M. Jones wrote:
> [Copying this to libvir-list]
>
> On Mon, Apr 25, 2011 at 01:07:37AM +0400, Emre Erenoglu wrote:
>> Hi,
>>
>> I'm the package maintainer for virt-manager and related packages for
Pardus
>> distribution. While testing the latest libvirt, virtinst & virt-manager
>> packages, I've come across a strange issue and I would like to get your
>> valuable opinion.
>>
>> I add all spice related devices and everything works good, except the
>> vdagent inside the windows xp guest. The virtio serial driver is loaded
>> correctly. As I track down the issue, I found out that libvirt is
starting
>> qemu-kvm with parameters which do not match the ones adviced by the
spice
>> people. Please see below email discussion with them on this. The
offending
>> line seems to be the chardev parameter. qemu-kvm is started by
virt-manager
>> with the following parameter for chardev:
>>
>> -chardev null,id=channel0
>>
>> and the full spice related parameters are:
>>
>> -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev
>> null,id=channel0 -device
>>
virtserialport,bus=virtio-serial0.0,nr=0,chardev=channel0,name=com.redhat.spice.0
>> -usb -device usb-tablet,id=input0 -spice
>> port=5900,addr=127.0.0.1,disable-ticketing -vga qxl -device
>> qxl,id=video1,bus=pci.0,addr=0x7
>>
>> while spice people adviced:
>>
>> -chardev spicevmc,id=channel0,name=vdagent
>>
>> and the rest of the parameters to match it. See below mail on the
details.
>> I don't know if this is really the issue, but I also recognize the
following
>> inside the domain XML:
>>
>> <channel type='null'>
>> <target type='virtio' name='com.redhat.spice.0'/>
>> <address type='virtio-serial' controller='0'
bus='0' port='0'/>
>> </channel>
>>
>> the "channel type" is listed as "null", while I assume it
should have
been
>> listed as "spicevmc". (not sure of this, I saw this in some other
>> websites). When I edit the domain xml with virsh edit, it saves my
changes
>> but the "null" stays the same how many times I try to change it.
>>
>> Please note that I've applied the following patches to virtinst 0.500.6:
>>
>> constrain-spicevmc-usage-correct.patch
>> virtinst-fix-channel-parse.patch
>> virtinst-spicevmc-fixes.patch
>>
>> which I obtained from the git. I also patched virt-manager 0.8.7 with
the
>> following I obtained from the git:
>>
>> chardev-hide-unsupported-params-for-selected-type.patch
>> only-show-relevant-char-device-fields.patch
>> show-char-device-target-name.patch
>> chardev-propose-to-add-remove-spice-agent.patch
>> allow-setting-char-device-target-name.patch
>> fix-adding-removing-channel-device.patch
>>
>> Any idea what I might be missing to get the vdagent run inside the
windows
>> guest?
>>
>> Many thanks,
>>
>> Emre Erenoglu
What libvirt version are you using? spicevmc requires libvirt 0.8.8.
However
if libvirt is silently reverting to 'null' it's a bug either way.
Hi Cole,
I recognized that I was using 0.8.7 since our iptables version does not
support the newly added "CHECKSUM" parameter that libvirt used for iptables
commands. I disabled this by patching it and now libvirt 0.9.0 runs good,
with the vdagent in the guest also working OK.
Many thanks for all who spent their time to fix this issue.
yes, libvirt 0.8.7 was silently reverting the change I made manually in the
xml file. Neither virsh edit nor editing the xml and re-defining it worked.
Once libvirt saw the "spicevmc" there, it just removed it and put
"null"
instead.
--
Emre