FS#30700 - [virtualbox] Problem with the mouse when running archlinux as guest
Attached to Project:
Community Packages
Opened by Olivier (olive) - Monday, 16 July 2012, 09:45 GMT
Last edited by Alexander F. Rødseth (xyproto) - Friday, 28 September 2012, 23:22 GMT
Opened by Olivier (olive) - Monday, 16 July 2012, 09:45 GMT
Last edited by Alexander F. Rødseth (xyproto) - Friday, 28 September 2012, 23:22 GMT
|
Details
Description:
There is a problem with the mouse integration when running archlinux as a guest in virtualbox. The mouse can behave erratically. I have already reported a bug about this ( The problem is that virtualbox present to the guest 3 mice: A generic Imps/2 mouse, a touchpad, the special device "virtualbox mouse integration". Evdev appears to pick one of these three devices at random but, provided the archlinux integration is properly installed (not sure if it is really necessary), only the third device "virtualbox mouse integration" works properly. So with the default configuration you have basically one chance out of three that everything works properly (making the problem so difficult to debug initially). The remede is to modify the files in /etc/X11/xorg.conf.d/ to remove all reference to mice expect one matching the virtual mouse integration and only this one: Section "InputClass" Identifier "evdev virtual mouse" MatchProduct "VirtualBox mouse integration" Driver "evdev" EndSection There are difficulties though, since we can only do this when running in a virtual machine and it is possible that Xorg won't run at all without the additions. I am not sure how to deal with this in a general way. Additional info: * package version(s) xf86-input-evdev 2.7.0-2 xorg-server 1.12.3-1 |
This task depends upon
Closed by Alexander F. Rødseth (xyproto)
Friday, 28 September 2012, 23:22 GMT
Reason for closing: No response
Additional comments about closing: Please reopen if this is still an issue.
Friday, 28 September 2012, 23:22 GMT
Reason for closing: No response
Additional comments about closing: Please reopen if this is still an issue.
Xorg.0.log.good (26.9 KiB)
Section "InputClass"
Identifier "evdev virtual mouse"
MatchProduct "VirtualBox mouse integration"
Driver "evdev"
EndSection
Reading your Xorg.0.log.bug and last result with Ionut suggestion, MatchIsPointer doesn't detect vbox driver as a pointer.
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbLayout" "fr"
Option "XkbModel" "pc105"
Option "XkbVariant" "oss"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
your 15-SourisCarrouf.conf use the same identifier as 10-evdev.conf and add a MatchProduct. Maybe there are some issues around here.
Virtualbox on host (win xp) is the same version on the guest (arch)?
However, the question remains, should we put 20-virtualbox.conf in the package, knowing that is working correctly without it.
@ghthor, if your bug is not arch specific, please report it upstream.
udev_db_without_bug (55.4 KiB)
E: ID_INPUT_MOUSE=1
is missing when bug occur. udev doesn't detect this device as a mouse of the vbox drivers. This explain why wonder patch works.
Do you have the latest version of udev? You should probably report this upstream, as there is a race condition on detection of the mouse status by udev in the guest.
https://bugs.freedesktop.org/show_bug.cgi?id=54123
My assessment of the situation:
Your mouse is not detected, it's because Xorg config rules MatchIsPointer is not true with this device. This parameter is based on evdev, which guess pointer/keyboard/etc on "udev input_id" informations.
From your last report, udev doesn't detect your mouse as input mouse. I don't know how udev guess this. So, maybe udev as issues, or kernel, or virtualbox code (most likely).
I agreen, we can wait udev/systemd dev give their feeling on the br. There is some quirks in the udev code for some devices, like vmware usb mouse.
So, I looked into udev code about pointer detection, it's small and clean (src/udev/udev-builtin-input_id.c).
There is some interesting line printed in debug : log_debug("%s raw kernel attribute: %s\n", attr, text);
You can run something like udevadm --debug test-builtin input_id /class/input/mouse0 to have kernel parameter.