[Spice-devel] Local mouse cursor with Windows client

Ralf ralf at rasu.nl
Thu Dec 18 12:04:25 PST 2014


Hi Marc-André,

Thank you for taking the time to look at this!

"Marc-André Lureau" <marcandre.lureau at gmail.com> schreef op 18 december 2014 02:00:

> Hi
> 
> On Tue, Dec 16, 2014 at 12:51 PM, Ralf <ralf at rasu.nl> wrote:
> 
>> I'm using virt-viewer 1.0256 on Windows to connect to a Debian 7.7 Server
>> running qemu-kvm-1.1.2+dfsg-6+deb7u6 and libspice-server1-0.11.0-1+deb7u1
>> which in turn runs several Virtual Machines.
> 
> Ok! Don't be surprised that your combination has never been used
> before, especially with Android VM! :)
> I suppose you got virt-viewer from the 1.0 msi in
> https://fedorahosted.org/released/virt-viewer.

I got it via www.spice-space.org which redirects to virt-manager.org for the Windows binaries. Here is the exact URL:
http://virt-manager.org/download/sources/virt-viewer/virt-viewer-x86-1.0.msi
But the URL on fedorahosted looks "visited" in my browser, so I think it is the exact same file.

>> This all works well for most VM's, but when I run an Android VM I can't see
>> my mouse when it enters the virt-viewer Window. Since Android does not show
>> a mouse pointer because it is touch based, I need to guess my location and
>> hope for the best :)
> 
> I just installed android x86 4.4r1 on f21 with virt-manager, and it
> does draw the pointer. How did you install the android VM?

I created an XML domain file and imported it via "virsh define". When I run vish dumpxml on the domain when running, this is what I get:

<domain type='kvm' id='42'>
<name>android-4.4-test-1</name>
<uuid>ede29324-d2f2-d490-34d4-169b8bdcf085</uuid>
<memory unit='KiB'>2136064</memory>
<currentMemory unit='KiB'>2136064</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-1.1'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='host-passthrough'>
</cpu>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='unsafe'/>
<source file='/srv/kvm/disks/non-prod/android-4.4-test-1.qcow2'/>
<target dev='hda' bus='ide'/>
<alias name='ide0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/srv/kvm/isos/android-x86-4.4-r1.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='de:ad:be:##:##:##'/>
<source bridge='br3'/>
<target dev='vnet1'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<input type='tablet' bus='usb'>
<alias name='input0'/>
</input>
<input type='mouse' bus='ps2'/>
<graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='qxl' vram='65536' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</memballoon>
</devices>
<seclabel type='none'/>
</domain>

This is my ps output of this domain:

/usr/bin/kvm -S -M pc-1.1 -cpu host -enable-kvm -m 2086 -smp 2,sockets=2,cores=1,threads=1 -name android-4.4-test-1 -uuid ede29324-d2f2-d490-34d4-169b8bdcf085 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/android-4.4-test-1.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=/srv/kvm/disks/non-prod/android-4.4-test-1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=unsafe -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/srv/kvm/isos/android-x86-4.4-r1.iso,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=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=de:ad:be:##:##:##,bus=pci.0,addr=0x3 -device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing -k en-us -vga qxl -global qxl-vga.vram_size=67108864 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4

>> When I read Spice for Newbies chapter 3.6 "Mouse Modes" it looks like I
>> should use "Client mouse" so I have set the libvirt domain option <mouse
>> mode='client'/>, but this makes no difference to mode server...
> 
> You shouldn't need to set any mouse mode manually.
> 
>> I've looked everywhere, but I can't find an option to have virt-viewer just
>> show my local (Windows) mouse pointer. Or just a little dot as VNC could do
>> would be nice.
> 
> Have you tried with a more recent version of client on a fedora client?

I can't find a more recent version of the official Windows client.

I did try a home-brew version of Fabiano Fidêncio from here: http://blog.fidencio.org/2014/11/virt-viewer-using-gtk3-for-windows.html but this also hides my Windows mouse pointer as soon as I enter the virt-viewer window.

I went through hell and back to compile the latest remote-viewer-1.0 from source on a Debian 7.7 machine, but when the mouse enters the remote-viewer window, the mouse leaves the building... :(

>> Am I running into a Bug (should <mouse mode='client'/> do what I want?) or
>> am I doing somethig wrong?
> 
> It's not clear yet :)
> 
> thanks a lot for trying Spice with Android, very few people try! I
> think there is a nice future in the area once we start using
> accelerate rendering with virgl! (android x86 uses Mesa iirc, it will
> need some gl extension though)

You are welcome. More accelerated stuff sounds good to me.

--
Ralf


More information about the Spice-devel mailing list