Comment 9 for bug 996821

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

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"
[ 499.673] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "vmmouse"
[ 499.673] (II) LoadModule: "vmmouse"
[ 499.673] (II) Loading /usr/lib64/xorg/modules/input/vmmouse_drv.so
[ 499.728] (II) Module vmmouse: vendor="X.Org Foundation"
[ 499.728] compiled for 1.9.3, module version = 12.6.99
[ 499.728] Module class: X.Org XInput Driver
[ 499.728] ABI class: X.Org XInput driver, version 11.0
[ 499.728] (II) VMWARE(0): VMMOUSE module was loaded
[ 499.728] (II) VMWARE(0): vmmouse is available
[ 499.728] (**) ImPS/2 Generic Wheel Mouse: always reports core events
[ 499.728] (**) Option "Device" "/dev/input/event1"
[ 499.733] (**) ImPS/2 Generic Wheel Mouse: ZAxisMapping: buttons 4 and 5
[ 499.733] (II) XINPUT: Adding extended input device "ImPS/2 Generic Wheel Mouse" (type: MOUSE)
[ 499.733] (**) ImPS/2 Generic Wheel Mouse: (accel) keeping acceleration scheme 1
[ 499.733] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration profile 0
[ 499.733] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration factor: 2.000
[ 499.733] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration threshold: 4
[ 499.733] (II) VMWARE(0): VMMOUSE DEVICE_INIT
[ 499.733] (II) VMWARE(0): VMMOUSE DEVICE_ON
[ 499.735] (II) VMWARE(0): vmmouse enabled
[ 499.735] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/mouse0)
[ 499.735] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "ImPS/2 Generic Wheel Mouse"
[ 499.735] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "vmmouse"
[ 499.735] (II) VMWARE(0): vmmouse is available
[ 499.735] (**) ImPS/2 Generic Wheel Mouse: always reports core events
[ 499.735] (**) Option "Device" "/dev/input/mouse0"
[ 499.741] (**) ImPS/2 Generic Wheel Mouse: ZAxisMapping: buttons 4 and 5
[ 499.741] (II) XINPUT: Adding extended input device "ImPS/2 Generic Wheel Mouse" (type: MOUSE)
[ 499.741] (**) ImPS/2 Generic Wheel Mouse: (accel) keeping acceleration scheme 1
[ 499.741] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration profile 0
[ 499.741] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration factor: 2.000
[ 499.741] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration threshold: 4
[ 499.741] (II) VMWARE(0): VMMOUSE DEVICE_INIT
[ 499.741] (II) VMWARE(0): VMMOUSE DEVICE_ON
[ 499.743] (II) VMWARE(0): vmmouse enabled

The problem is caused by two different things. First inside the udev rule "/lib/udev/rules.d/69-xorg-vmmouse.rules" the part "KERNEL=="event[0-9]*", " has to be removed. The rule doesn't match and "ID_INPUT.tags=vmmouse" isn't set. (udevadm info --query=all --path=$(udevadm info --query=path --name /dev/input/mouse0))

The second thing is only a problem if /usr lies on it's own partition. During system statup when the udev rule "69-xorg-vmmouse.rules" is fired, the usr-partionen isn't available and because of that the part "ROGRAM="/usr/bin/vmmouse_detect"" of the udev rule results in false and "ID_INPUT.tags=vmmouse" isn't set. If you trigger the udev-rule after system startup manually by "udevadm trigger $(udevadm info --query=path --name /dev/input/mouse0)" "ID_INPUT.tags=vmmouse" is set and vmmouse_drv.so is loaded during X restart.