Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 586708 - Spicy mouse and keyboard out of sync
Summary: Spicy mouse and keyboard out of sync
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Virtualization Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-22 12:34 UTC by Chris
Modified: 2018-06-10 11:56 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris 2016-06-22 12:34:12 UTC
Hello.

I just updated yesterday, and today, and I'm having some major issues with Spice/Qemu. Spicy is not grabbing and releasing the keyboard and mouse as it should.

If I:
1) start Qemu
2) start Spicy
3) Let my windows 7 VM start up
4) Click into Window 7
5) Hit ctl+alt+delete
issue:	
instead of the vm grabbing this, my KDE pops up the log-out dialogue (and starts counting down from 30 seconds)	

6) Toggle the "Grab keyboard when active and focused" to off, then back on again, Spicy will usually then grab my ctl+alt+del
7) Open up something... we'll say wordpad. Type some text.
8 ) Hit shift+f12 to release and go back to my host machine
9) Open up Konsole by clicking the big "K" and navigating to the launcher.
10) Try to type something into konsole
Issue:	
No text comes out.  If I look at the VM, I can see that all my text is still entering into wordpad.	

11) Hover over my Konsole session on the host machine. Hit shift+f12 again.
12) Now I can type into Konsole as normal.
Issue:	
Problem now is that the host machine loses the mouse!  Now my mousing is occuring on the Windows 7 VM.  Now, no matter what I hit, I cannot get the mouse and keyboard to sync.  One is always on the VM, and the other on the host.  The only solution is to shut spicy down completely, then the host machine has both the keyboard and mouse again	


This is a huge problem for me. I'm in and out of my windows VM and my host system every 5 minutes. This will dramatically reduce my productivity (to say nothing about increase my frustration level!)

I have tried toggling all the settings in the spicy menu. Nothing works. I have upgraded and downgraded my spicy to all available options in portage. No good. I have upgraded and downgraded Qemu to +1 and -1 of the current, stable version.

I need spicy because I use dual monitors, and because it gives full 32-bit color: which rules out RDP, SDL and VNC as realistic alternatives.

Current version of Spice:
app-emulation/spice-0.12.7-r1::gentoo  USE="(-libressl) -sasl -smartcard -static-libs" 0 KiB

Current version of qemu:
app-emulation/qemu-2.5.1::gentoo  USE="aio alsa bluetooth caps curl fdt filecaps jpeg ncurses nls opengl pin-upstream-blobs png pulseaudio sdl seccomp spice threads usb uuid vhost-net vnc xattr -accessibility -debug (-glusterfs) -gnutls -gtk -gtk2 -infiniband -iscsi -lzo -nfs -numa -python -rbd -sasl -sdl2 (-selinux) -smartcard -snappy -ssh -static -static-softmmu -static-user -systemtap -tci {-test} -usbredir -vde -virgl -virtfs -vte -xen -xfs" LINGUAS="-de_DE -fr_FR -hu -it -tr -zh_CN" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64 -aarch64 -alpha -arm -cris -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="i386 x86_64 -aarch64 -alpha -arm -armeb -cris -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -ppc64le -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -unicore32" 0 KiB


Code:	
# emerge --info
Portage 2.2.28 (python 3.4.3-final-0, default/linux/amd64/13.0/desktop/plasma, gcc-4.9.3, glibc-2.22-r4, 4.4.6-gentoo x86_64)
=================================================================
System uname: Linux-4.4.6-gentoo-x86_64-Intel-R-_Xeon-R-_CPU_W3670_@_3.20GHz-with-gentoo-2.2
KiB Mem:    24686296 total,    163144 free
KiB Swap:   22906876 total,  22906532 free
Timestamp of repository gentoo: Fri, 17 Jun 2016 12:30:02 +0000
sh bash 4.3_p42-r1
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
app-shells/bash:          4.3_p42-r1::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.10-r1::gentoo, 3.4.3-r1::gentoo
dev-util/cmake:           3.3.1-r1::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.19.1::gentoo
sys-apps/sandbox:         2.10-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.12.6::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            4.9.3::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22-r4::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* @EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -mtune=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://lug.mtu.edu/gentoo/"
LANG="en_US"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j 7"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa amd64 av berkdb bindist bluetooth bluray branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fortran gdbm gif glamor gpm iconv java jpeg kde kipi kvm lcms ldap libnotify mad mmx mmxext mng modules mp3 mp4 mpeg ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds pulse pulseaudio qml qt3support qt4 qt5 quicktime readline samba sdl seccomp semantic-desktop session sftp spell sse sse2 ssl startup-notification svg tcpd tiff truetype udev udf udisks unicode upower usb vorbis widgets wxwidgets x264 xattr xcb xcomposite xine xinerama xml xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_US en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="nvidia vga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON


Starting qemu with:
Code:	
qemu-system-x86_64 \
        -enable-kvm -cpu host \
        -machine iommu=off \
        -vga qxl \
        -global qxl-vga.vram_size_mb=64 \
        -global qxl-vga.ram_size_mb=64 \
        -global qxl-vga.vgamem_mb=64 \
        -smp cpus=4,cores=4,threads=1,sockets=1 \
        -soundhw hda \
        -drive file=/dev/sdc1,if=virtio,format=raw \
        -usb \
        -usbdevice host:ffff:0300 \
        -cdrom /home/gmanwin7_64.iso \
        -drive file=/home/gman/virtio.iso,bus=1,media=cdrom \
        -net tap,ifname=tap0,script=no,downscript=no \
        -net nic,model=virtio -m 16G \
        -monitor stdio \
        -name EMI-GMAN-WIN \
        -spice jpeg-wan-compression=never,image-compression=off,streaming-video=all,disable-ticketing,port=5930 \
        -device qxl "$@"	


Starting spicy with:
Code:	
spicy -h localhost -p 5930 --title "it-gman-win" --spice-shared-dir /home/gman/Scratch
Comment 1 Alex Xu (Hello71) 2016-06-26 15:38:52 UTC
consider -usbdevice tablet -usbdevice keyboard.
Comment 2 Chris 2016-06-27 12:23:04 UTC
Hmm... adding that almost works... the host and the vm seem to be in better agreement over which has the keyboard and the mouse (though not perfect), but the mouse pointer in the vim is not accurate.  The mouse pointer is out of alignment by about two inches horizontally, and worse as I move it to the right.

I've used the "-usbdevice tablet" before with vnc and it worked great... not working so great with spice...

These problems didn't exist before my last upgrade... had been using for two years with no such problems, so this is definitely new.

Thanks.
Comment 3 Chris 2016-07-01 13:11:58 UTC
Definitely still broken.

No matter what I throw at it in terms of qemu options...
Comment 4 Chris 2016-07-06 17:45:45 UTC
Threw a couple more hours at this.  Updated to the latest versions of qemu and spice in the portage tree... tried various options, including the "tablet" and "Keyboard" ones you mentioned.

The problem still persists.  Sometimes it will seem to work for a few minutes, but it always loses track, and the keyboard winds up on the vm and the mouse on the host.

Updated to this today:

[ebuild   R   ~] app-emulation/spice-0.13.1-r2::gentoo  USE="-libressl -lz4 -sasl -smartcard -static-libs" 0 KiB
[ebuild   R   ~] app-emulation/qemu-2.6.0::gentoo  USE="aio alsa bluetooth caps curl fdt filecaps gtk* gtk2* jpeg ncurses nls opengl pin-upstream-blobs png pulseaudio sdl* sdl2* seccomp spice threads usb uuid vhost-net vnc xattr -accessibility -debug -glusterfs -gnutls -infiniband -iscsi -lzo -nfs -numa -python -rbd -sasl (-selinux) -smartcard -snappy -ssh -static -static-softmmu -static-user -systemtap -tci {-test} -usbredir -vde -virgl -virtfs -vte -xen -xfs" LINGUAS="-de_DE -fr_FR -hu -it -tr -zh_CN" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64 -aarch64 -alpha -arm -cris -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="i386 x86_64 -aarch64 -alpha -arm -armeb -cris -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -ppc64le -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -unicore32" 0 KiB
Comment 5 Chris 2016-07-25 18:52:14 UTC
Hi,

Just an update if it helps...

I'm using the KDE plasma 5 desktop, and I have been fiddling with this quite a bit now.  What I'm finding is if I'm in my windows VM (both keyboard and mouse), and I hit leftShift+F12, I get my mouse back on the host -- and only my mouse.  That is, until I click on a blank area of the desktop.  Then the keyboard comes over.  From there I can switch desktops (or not) and do what I need to do on the host. But, if I click on any app, windows or desktop widget instead of the desktop, everything remains out of sync, and I have to go back to VM and click inside, the LeftShift+F12 and click on Desktop, and things will be synced for the host again.  So it seems it is one-way: that is, the vm only lets go of the mouse for starters.  Going from host to VM there is no issue. 

It slows me down quite a bit, but so long as I remember to click the desktop before moving onto other windows, then I can get it to work.  It would be less problematic if the right shift key would work... it used to back when "spicy" was called "spice"...

Anyway, I hope it helps.

G
Comment 6 Chris 2018-06-10 11:56:34 UTC
Somewhere along the line, through my fiddlings, and throughout the updates since this post, I have this working nicely now.  I wish I could say exactly what the problem was, but I'm not sure.

If someone has an issue like this in the future, however, I'm happy to share my configurations info.