[Bug 244110] x11-drivers/xf86-input-vmmouse InputClass not matching when VMWare is used
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Feb 13 22:40:04 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244110
Bug ID: 244110
Summary: x11-drivers/xf86-input-vmmouse InputClass not matching
when VMWare is used
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: x11 at FreeBSD.org
Reporter: daniel at morante.net
Assignee: x11 at FreeBSD.org
Flags: maintainer-feedback?(x11 at FreeBSD.org)
When using AutoAddDevices (currently the default behavior), X11 is not able to
correctly match the input class of the vmware mouse in a virtual machine. X11
therefore defaults to using the normal 'mouse' driver instead of 'vmmouse'.
This is true no matter if moused is used or not.
Both 'moused_nondefault_enable' and 'moused_enable' are set to "NO" in
/etc/rc.conf:
```
sysrc moused_nondefault_enable moused_enable
moused_nondefault_enable: NO
moused_enable: NO
```
Currently in `/usr/local/share/X11/xorg.conf.d/50-vmmouse.conf` (as installed
by x11-drivers/xf86-input-vmmouse)
```
Section "InputClass"
Identifier "vmmouse"
MatchIsPointer "on"
MatchTag "vmmouse"
Driver "vmmouse"
EndSection
```
Xorg.0.log shows that X11 is falling back to using the default "mouse' driver
for both /dev/sysmouse and /dev/psm0.
```
[ 9.160] (II) config/devd: adding input device (null) (/dev/sysmouse)
[ 9.160] (II) LoadModule: "mouse"
[ 9.160] (II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so
[ 9.161] (II) Module mouse: vendor="X.Org Foundation"
[ 9.161] compiled for 1.18.4, module version = 1.9.3
[ 9.161] Module class: X.Org XInput Driver
[ 9.161] ABI class: X.Org XInput driver, version 22.1
[ 9.161] (II) Using input driver 'mouse' for 'sysmouse'
[ 9.161] (**) sysmouse: always reports core events
[ 9.161] (**) Option "Device" "/dev/sysmouse"
[ 9.161] (==) sysmouse: Protocol: "Auto"
[ 9.161] (**) sysmouse: always reports core events
[ 9.161] (==) sysmouse: Emulate3Buttons, Emulate3Timeout: 50
[ 9.161] (**) sysmouse: ZAxisMapping: buttons 4 and 5
[ 9.161] (**) sysmouse: Buttons: 5
[ 9.161] (**) Option "config_info" "devd:sysmouse"
[ 9.161] (II) XINPUT: Adding extended input device "sysmouse" (type: MOUSE,
id 7)
[ 9.161] (**) sysmouse: (accel) keeping acceleration scheme 1
[ 9.161] (**) sysmouse: (accel) acceleration profile 0
[ 9.161] (**) sysmouse: (accel) acceleration factor: 2.000
[ 9.161] (**) sysmouse: (accel) acceleration threshold: 4
[ 9.161] (II) sysmouse: SetupAuto: hw.iftype is 4, hw.model is 0
[ 9.161] (II) sysmouse: SetupAuto: protocol is SysMouse
[ 9.194] (II) config/devd: adding input device Mouse (/dev/psm0)
[ 9.194] (II) Using input driver 'mouse' for 'Mouse'
[ 9.194] (**) Mouse: always reports core events
[ 9.194] (**) Option "Device" "/dev/psm0"
[ 9.194] (==) Mouse: Protocol: "Auto"
[ 9.194] (**) Mouse: always reports core events
[ 9.227] (==) Mouse: Emulate3Buttons, Emulate3Timeout: 50
[ 9.227] (**) Mouse: ZAxisMapping: buttons 4 and 5
[ 9.227] (**) Mouse: Buttons: 5
[ 9.227] (**) Option "config_info" "devd:psm0"
[ 9.227] (II) XINPUT: Adding extended input device "Mouse" (type: MOUSE, id
8)
[ 9.227] (**) Mouse: (accel) keeping acceleration scheme 1
[ 9.227] (**) Mouse: (accel) acceleration profile 0
[ 9.227] (**) Mouse: (accel) acceleration factor: 2.000
[ 9.227] (**) Mouse: (accel) acceleration threshold: 4
[ 9.233] (II) Mouse: SetupAuto: hw.iftype is 3, hw.model is 4
[ 9.233] (II) Mouse: SetupAuto: protocol is IMPS/2
[ 9.519] (II) Mouse: ps2EnableDataReporting: succeeded
```
Output of xinput
```
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ sysmouse id=7 [slave pointer (2)]
⎜ ↳ Mouse id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ kbdmux id=6 [slave keyboard (3)]
xinput list-props 7
Device 'sysmouse':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (230): 0
Device Accel Constant Deceleration (231): 1.000000
Device Accel Adaptive Deceleration (232): 1.000000
Device Accel Velocity Scaling (233): 10.000000
Device Node (234): "/dev/sysmouse"
Button Labels (235): "Button Left" (119), "Button Middle" (120),
"Button Right" (121), "Button Wheel Up" (122), "Button Wheel Down" (123)
Mouse Middle Button Emulation (236): 1
Mouse Middle Button Timeout (237): 50
xinput list-props 8
Device 'Mouse':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (230): 0
Device Accel Constant Deceleration (231): 1.000000
Device Accel Adaptive Deceleration (232): 1.000000
Device Accel Velocity Scaling (233): 10.000000
Device Node (234): "/dev/psm0"
Button Labels (235): "Button Left" (119), "Button Middle" (120),
"Button Right" (121), "Button Wheel Up" (122), "Button Wheel Down" (123)
Mouse Middle Button Emulation (236): 1
Mouse Middle Button Timeout (237): 50
```
My guess is that for some reason in FreeBSD it's unable to make the match based
on the tag. (I don't know how to get the tag to confirm). By changing
`/usr/local/share/X11/xorg.conf.d/50-vmmouse.conf` to match on the device node
instead, the correct driver is loaded:
```
Section "InputClass"
Identifier "vmmouse"
MatchIsPointer "on"
MatchDevicePath "/dev/psm0"
Driver "vmmouse"
EndSection
```
```
[ 9.407] (II) config/devd: adding input device (null) (/dev/sysmouse)
[ 9.407] (**) sysmouse: Applying InputClass "vmmouse"
[ 9.407] (II) LoadModule: "vmmouse"
[ 9.407] (II) Loading /usr/local/lib/xorg/modules/input/vmmouse_drv.so
[ 9.408] (II) Module vmmouse: vendor="X.Org Foundation"
[ 9.408] compiled for 1.18.4, module version = 13.1.0
[ 9.408] Module class: X.Org XInput Driver
[ 9.408] ABI class: X.Org XInput driver, version 22.1
[ 9.408] (II) VMWARE(0): VMMOUSE module was loaded
[ 9.408] (II) Using input driver 'vmmouse' for 'sysmouse'
[ 9.408] (**) sysmouse: always reports core events
[ 9.408] (II) VMWARE(0): vmmouse is available
[ 9.408] (**) Option "Device" "/dev/sysmouse"
[ 9.408] (**) sysmouse: ZAxisMapping: buttons 4 and 5
[ 9.408] (**) Option "config_info" "devd:sysmouse"
[ 9.408] (II) XINPUT: Adding extended input device "sysmouse" (type: MOUSE,
id 7)
[ 9.408] (II) VMWARE(0): VMMOUSE DEVICE_INIT
[ 9.408] (**) sysmouse: (accel) keeping acceleration scheme 1
[ 9.408] (**) sysmouse: (accel) acceleration profile 0
[ 9.408] (**) sysmouse: (accel) acceleration factor: 2.000
[ 9.408] (**) sysmouse: (accel) acceleration threshold: 4
[ 9.408] (II) VMWARE(0): VMMOUSE DEVICE_ON
[ 9.408] (II) VMWARE(0): vmmouse enabled
[ 9.441] (II) config/devd: adding input device Mouse (/dev/psm0)
[ 9.441] (**) Mouse: Applying InputClass "vmmouse2"
[ 9.441] (II) Using input driver 'vmmouse' for 'Mouse'
[ 9.441] (**) Mouse: always reports core events
[ 9.441] (II) VMWARE(0): vmmouse is available
[ 9.441] (**) Option "Device" "/dev/psm0"
[ 9.475] (**) Mouse: ZAxisMapping: buttons 4 and 5
[ 9.475] (**) Option "config_info" "devd:psm0"
[ 9.475] (II) XINPUT: Adding extended input device "Mouse" (type: MOUSE, id
8)
[ 9.475] (II) VMWARE(0): VMMOUSE DEVICE_INIT
[ 9.475] (**) Mouse: (accel) keeping acceleration scheme 1
[ 9.475] (**) Mouse: (accel) acceleration profile 0
[ 9.475] (**) Mouse: (accel) acceleration factor: 2.000
[ 9.475] (**) Mouse: (accel) acceleration threshold: 4
[ 9.475] (II) VMWARE(0): VMMOUSE DEVICE_ON
[ 9.481] (II) VMWARE(0): vmmouse enabled
(II) VMWARE(0): vmmouse enable absolute mode
(II) VMWARE(0): re-requesting absolute mode after reset
```
Or in the case of when you are using moused (sysrc
moused_nondefault_enable="YES" moused_enable="YES"), it needs to match on
`/dev/sysmouse`:
```
Section "InputClass"
Identifier "vmmouse"
MatchIsPointer "on"
MatchDevicePath "/dev/sysmouse"
Driver "vmmouse"
EndSection
```
Even though it 'fixes' the problem, I'm not sure if the correct way is by
changing the InputClass match, that's beyond my current know-how.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-x11
mailing list