vmmouse 12.8 behaves erratically in when running as a VMware guest

Bug #996821 reported by Johann MacDonagh
40
This bug affects 7 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-vmmouse (Suse)
Won't Fix
Medium
xserver-xorg-input-vmmouse (Ubuntu)
Fix Released
Medium
Canonical X.org
Precise
Fix Released
Medium
Unassigned

Bug Description

[Impact]
The default version of the xserver-xorg-input-vmmouse package in Ubuntu 12.04 is 1:12.8.0-1. When Ubuntu 12.04 is installed as a guest in VMware Workstation (tested on 8.0.3) or VMware Player (tested on 4.0.3), the mouse behaves rather erratically. For example, if you *slowly* move the mouse down 1 pixel, the mouse will actually move several pixels down, then sometimes a pixel or two to the right, then sometimes back up. The end result is a very un-smooth user experience. This is very visible by opening a new un-maximized window and dragging it slowly across the screen. Rather than it being a smooth movement, the window will jerk around slightly. This causes huge issues when navigating menus. Sometimes the guest will think the mouse has moved off a menu.

[Development Fix]
The upstream package includes this bug fix plus a couple other minor changes:

      config: replace obsolete AM_CONFIG_HEADER with AC_CONFIG_HEADERS
      Enable hardware access during vmmouse preinit.
      Revert "Adjust the kernel name in the udev file."

The config change just drops something obsolete in automake 1.12, which should have no post-build effect to users.

The hardware access change fixes an issue where if no other drivers request hardware access, vmmouse won't either (even though it requires it), and thus will fail; this was seen in a KVM virtual machine when running with fbdev, but there've been no reports of this fault in Ubuntu so far. This change makes vmmouse request hardware access explicitly so it won't fail this way.

The revert is the fix for this bug.

The 12.9.0-1 package is currently in Debian's git tree but not yet released to experimental or unstable. A pre-release version is uploaded to quantal as version 12.9.0-0ubuntu1.

[Stable Fix]
Since the same versions of -vmmouse were in quantal and precise, the same package can be used in precise. This is numbered 12.9.0-0ubuntu0.1.

[Test Case]
Steps to reproduce:
1. Install Ubuntu 12.04 as a new guest operating system inside either VMware Workstation 8 or VMware Player.
2. Once installed and logged in, run xev in a terminal.
3. Move the mouse slowly but smoothly downward along the Event Tester window while monitoring the console output.

-------------------------------

What should happen:
1. The x,y coordinates reported after the "time" field should increment / decrement smoothly. For example, is moving the mouse downward in the Event Tester, the x coordinate should stay relatively stable (a change +- 1 is acceptable), while the y coordinate should increase proportional to the speed that the mouse is moving.

What actually happens:
1. The x coordinate will change +- 3 or so pixels, even though no horizontal movement is occuring.
2. The y coordinate will not increase linearly. For example, if moving the mouse downward starting with a y coordinate of 60, the next few events might show the y coordinate as 61, 62, 63, 64, 60, 63, 67, etc...
----------------------------

[Regression Potential]
The three changes included in this release suggest looking for the following types of regressions:

  * Package build issues
  * Cursor movement problems running in vmware
  * Incompatibilities with untested kernel versions

[Original Report]
I am running VMware Workstation 8.0.3 on a Windows 7 x64 host, installing the standard Ubuntu 12.04 amd64 desktop version.

I have confirmed this is an issue with vmmouse 12.8 by rebuilding the 12.7 package from the Ubuntu 11.10 source repo, removing the 12.8 package, and installing the newly build 12.7 package. After this has occurred, the mouse moves smoothly, and the events reported by xev make much more sense. The x coordinate does not change while moving the mouse straight down, and the y coordinate increases linearly without skipping back up.

Revision history for this message
In , Sebastian-henrich (sebastian-henrich) wrote :
Download full text (6.3 KiB)

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2

When openSUSE 11.4 is installed inside a VMware Workstation VM the VMware mouse driver vmouse_drv.so isn't loaded during X startup and the mouse is imprecise.

Reproducible: Always

Steps to Reproduce:
1. Install openSUSE 11.4 inside VMware Workstation 7.1.4 VM
2. Put /usr on a separate partition
3. Start newly installed system
4. Open /var/log/Xorg.0.log
Actual Results:
[ 24.823] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/event1)
[ 24.823] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "evdev pointer catchall"
[ 24.823] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "ImPS/2 Generic Wheel Mouse"
[ 24.823] (**) ImPS/2 Generic Wheel Mouse: always reports core events
[ 24.823] (**) ImPS/2 Generic Wheel Mouse: Device: "/dev/input/event1"
[ 24.824] (--) ImPS/2 Generic Wheel Mouse: Found 3 mouse buttons
[ 24.824] (--) ImPS/2 Generic Wheel Mouse: Found scroll wheel(s)
[ 24.824] (--) ImPS/2 Generic Wheel Mouse: Found relative axes
[ 24.824] (--) ImPS/2 Generic Wheel Mouse: Found x and y relative axes
[ 24.824] (II) ImPS/2 Generic Wheel Mouse: Configuring as mouse
[ 24.824] (II) ImPS/2 Generic Wheel Mouse: Adding scrollwheel support
[ 24.824] (**) Option "Emulate3Buttons" "on"
[ 24.824] (**) Option "EmulateWheel" "on"
[ 24.824] (**) Option "EmulateWheelButton" "2"
[ 24.824] (**) Option "EmulateWheelTimeout" "200"
[ 24.824] (**) Option "YAxisMapping" "4 5"
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: YAxisMapping: buttons 4 and 5
[ 24.824] (**) Option "XAxisMapping" "6 7"
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: XAxisMapping: buttons 6 and 7
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: EmulateWheelButton: 2, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 24.824] (II) XINPUT: Adding extended input device "ImPS/2 Generic Wheel Mouse" (type: MOUSE)
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: (accel) keeping acceleration scheme 1
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration profile 0
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration factor: 2.000
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration threshold: 4
[ 24.824] (II) ImPS/2 Generic Wheel Mouse: initialized for relative axes.
[ 24.824] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/mouse0)
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "ImPS/2 Generic Wheel Mouse"
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: always reports core events
[ 24.824] (**) ImPS/2 Generic Wheel Mouse: Device: "/dev/input/mouse0"
[ 24.826] (EE) ioctl EVIOCGNAME failed: Inappropriate ioctl for device
[ 24.830] (II) UnloadModule: "evdev"
[ 24.830] (EE) PreInit returned NULL for "ImPS/2 Generic Wheel Mouse"

Expected Results:
[ 499.673] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/event1)
[ 499.673] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "evdev pointer catchall"
[ 499.673] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "ImPS/2 Generic Wheel Mouse...

Read more...

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

We're using the upstream udev rule file. Hence I believe this issue needs to be addressed upstream. Michel, what do you think?

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Michel? (I've put the wrong person into NEEDINFO field).

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Michel, any chance you could comment on this one?

Revision history for this message
In , Michel Dänzer (michel-daenzer) wrote :

I'm no longer working on VMware stuff. Adding Thomas Hellström to CC.

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Thanks, Michel!

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Thomas, any chance you could comment on this one?

Revision history for this message
In , Thomas Hellström (thellstrom) wrote :

(In reply to comment #6)
> Thomas, any chance you could comment on this one?

Hi! Sorry for the late response.

The xf86-input-vmmouse configure script should have a number of options to adapt to distro-specific locations and other stuff.

For example, if vmmouse_detect isn't present when it's needed you should install it somewhere else (/bin perhaps?). I think vmmouse_detect is the only executable the package installs sou it should be sufficient to use

--bindir=/bin

during configuration.

The first issue with "KERNEL=="event[0-9]*" is a bit trickier!
Why doesn't it work with OpenSuSE?
Is there something that works better with this distro?,
I could certainly add a configure option to xf86-input-vmmouse to look for something else.

Thanks,
Thomas

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Thanks for the hint about vmmouse_detect program, Thomas! Not sure why "KERNEL=="event[0-9]*" doesn't match on openSUSE. Sebastian, could you provide the output of

udevadm info --query=all --path=$(udevadm info --query=path --name /dev/input/mouse0)

Hope this helps to investigate that issue. Unfortunately I'm neither an udev expert nor a vmware user. :-(

What I've seen is that we have several udev rule files with

  KERNEL="event*"

rules, but only one (/lib/udev/rules.d/69-xorg-vmmouse.rules) with

  KERNEL="even[0-9]"

Maybe that's issue.

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Still waiting for a response for more than a month now. Please reopen once
you can provide the requested feedback. Thanks.

Revision history for this message
In , Sebastian-henrich (sebastian-henrich) wrote :

Sorry, I din't see your comment at 2012-01-12 08:51:53. Here's the output:

linux-rjhp:~ # udevadm info --query=all --path=$(udevadm info --query=path --name /dev/input/mouse0)
P: /devices/platform/i8042/serio1/input/input1/mouse0
N: input/mouse0
S: input/by-path/platform-i8042-serio-1-mouse
E: UDEV_LOG=3
E: DEVPATH=/devices/platform/i8042/serio1/input/input1/mouse0
E: MAJOR=13
E: MINOR=32
E: DEVNAME=/dev/input/mouse0
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_SERIAL=noserial
E: ID_PATH=platform-i8042-serio-1
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-mouse

Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

Thanks. Unfortunately I no longer remember, why I aseked for that information.

Revision history for this message
In , Sebastian-henrich (sebastian-henrich) wrote :

Mmh, that's bad.

Here's the output from a Ubuntu 10.04 installation with working vmmouse driver:

udevadm info --query=all --path=$(udevadm info --query=path --name /dev/input/mouse0)
P: /devices/virtual/input/input1/mouse0
N: input/mouse0
S: char/13:32
E: UDEV_LOG=3
E: DEVPATH=/devices/virtual/input/input1/mouse0
E: MAJOR=13
E: MINOR=32
E: DEVNAME=/dev/input/mouse0
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_SERIAL=noserial
E: DEVLINKS=/dev/char/13:32

As you can see, there're some differences. Perhaps it helps. If it helps I can also do a test installation with openSUSE 12.1.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xserver-xorg-input-vmmouse (Ubuntu):
status: New → Confirmed
Revision history for this message
Johann MacDonagh (johann-macdonagh) wrote :

Just an update. I have been in touch with the developers of vmmouse. We've determined the issue occurred with commit 189dc266 ( http://cgit.freedesktop.org/xorg/driver/xf86-input-vmmouse/commit/?id=189dc266a66485d48303acbc1a4fbe4642c75e9f ). A very simple change. I've rebuild my 12.8 package with that commit reverted and it works great.

It seems this may only affect Windows 7 x64 hosts (and maybe more). The upstream devs could not reproduce on a Linux host.

Revision history for this message
Adar Dembo (adembo) wrote :

Johann: can we get an updated xserver-xorg-input-vmmouse package with that commit reverted? What's the process we need to follow?

Revision history for this message
Johann MacDonagh (johann-macdonagh) wrote :

Adar: Beats me. I'm by no means an expert on how upstream determines what gets packaged where. I can tell you that the VMware devs have reverted the commit (http://cgit.freedesktop.org/xorg/driver/xf86-input-vmmouse/commit/?id=2a321a39350aa020a8103813bed61ff559088195), but they haven't tagged or released that code yet.

Below are some instructions you can follow to rebuild the package that reverts the change. After doing this, your mouse should function properly. You'll have a new version of the vmmouse with the version string "12.8.0-1revert189dc266". It looks ugly, but hopefully if a fix is ever released the version string will be 12.8.0-2, and this quick rebuild will be overwritten. Let me know if I did that version string wrong.

Anyway, enter these commands in a terminal window. I suggest copying and pasting one by one rather than all at once, just in case one command fails:

# Install dependencies
sudo apt-get install build-essential devscripts patch wget
sudo apt-get build-dep xserver-xorg-input-vmmouse

# Create directory to build in
rm -rf /tmp/vmmouse
cd /tmp
mkdir vmmouse
cd vmmouse

# Get the source debian package
apt-get source xserver-xorg-input-vmmouse

# Download the patch and apply it
wget https://raw.github.com/gist/2663977/2637b39e07ca2ed6620df7d137333c8e20afa6d1/revert-189dc266.patch -O revert-189dc266.patch
cd xserver-xorg-input-vmmouse-12.8.0
patch -p1 < ../revert-189dc266.patch

# Rebuild the package
debuild -us -uc

# Install it
sudo dpkg -i ../xserver-xorg-input-vmmouse_12.8.0-1revert189dc266_*.deb

Revision history for this message
Jakob Bornecrantz (jakob-vmware) wrote :

The revert has been applied to the packaging, and we will be doing a release soon.

Cheers, Jakob.

Robert Hooker (sarvatt)
Changed in xserver-xorg-input-vmmouse (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Triaged
assignee: nobody → Canonical X.org (canonical-x)
Revision history for this message
Jakob Bornecrantz (jakob-vmware) wrote :

xf86-input-vmmouse 12.9.0 has been release to address this issue, which is a bug fix only release.

Cheers, Jakob.

Robert Hooker (sarvatt)
Changed in xserver-xorg-input-vmmouse (Ubuntu Precise):
status: New → Triaged
importance: Undecided → Medium
milestone: none → precise-updates
Robert Hooker (sarvatt)
Changed in xserver-xorg-input-vmmouse (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-vmmouse - 1:12.9.0-0ubuntu1

---------------
xserver-xorg-input-vmmouse (1:12.9.0-0ubuntu1) quantal; urgency=low

  * New upstream bugfix release.
    - Fixes erratic mouse behavior with a Windows x64 host. (LP: #996821)
    - Fixes initialization when no other drivers request hardware access.
 -- Bryce Harrington <email address hidden> Tue, 12 Jun 2012 13:58:47 -0700

Changed in xserver-xorg-input-vmmouse (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Bryce Harrington (bryce) wrote :

Looks like sarvatt's gotten it fix committed in Debian, but I went ahead and pushed the ubuntu package into quantal to shortcut this towards SRUing.

Once it's in quantal I'll proceed with the SRU paperwork.

Bryce Harrington (bryce)
description: updated
Changed in xserver-xorg-input-vmmouse (Suse):
importance: Unknown → Medium
status: Unknown → In Progress
Bryce Harrington (bryce)
description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Johann, or anyone else affected,

Accepted xserver-xorg-input-vmmouse into precise-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in xserver-xorg-input-vmmouse (Ubuntu Precise):
status: Triaged → Fix Committed
tags: added: verification-needed
Revision history for this message
Adar Dembo (adembo) wrote :

I enabled -proposed, installed vmmouse with version 1:12.9.0-0ubuntu0.1, and using xev, verified that there are no motion events when pressing mouse buttons. Thanks guys!

Robert Hooker (sarvatt)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Johann MacDonagh (johann-macdonagh) wrote :

I can also confirm that 1:12.9.0-0ubuntu0.1 works great! xev is reporting normal movement, and all the issues I initially described no longer occur. Thanks!

Revision history for this message
Evan Sosenko (razorx-d) wrote :

This has also fixed the problem for me. Hopefully we can see it released as an official update soon.

Revision history for this message
Tais P. Hansen (taisph) wrote :

Fixes the problem for me as well. This was driving me nuts as clicking on buttons sometimes didn't work because it was interpreted as a mouse drag event.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-vmmouse - 1:12.9.0-0ubuntu0.1

---------------
xserver-xorg-input-vmmouse (1:12.9.0-0ubuntu0.1) precise-proposed; urgency=low

  * New upstream bugfix release.
    - Fixes erratic mouse behavior with a Windows x64 host. (LP: #996821)
    - Fixes initialization when no other drivers request hardware access.
 -- Bryce Harrington <email address hidden> Tue, 12 Jun 2012 13:58:47 -0700

Changed in xserver-xorg-input-vmmouse (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
In , Sndirsch-u (sndirsch-u) wrote :

openSUSE 11.4 is no longer supported. Feel free to reopen, if the issue still exists with openSUSE 12.3. Thanks.

Changed in xserver-xorg-input-vmmouse (Suse):
status: In Progress → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.