Bug #2697
openHAL sets input.device to /dev/mouse for PS/2 mice
0%
Description
The the virtualkm(7D) device nodes /dev/kbd and /dev/mouse multiplex input from all system keyboards and mice, respectively. Input device multiplexing in the kernel hides the individual devices from applications and is redundant in a modern X environment which handles input device hotplug in the X server.
It is harmful to pointing devices in X for multiple reasons:- It prevents X drivers other than mousedrv(7) which may be necessary for touchpads and other devices from working
- It prevents per-device-instance configuration in X
- It prevents the devices from working as multiple distinct pointers ("multi-pointer X")
devinfo_keyboard_add and devinfo_mouse_add set the input.device property for detected keyboards and mice to the virtualkm nodes.
For example:
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0_logicaldev_input' input.originating_device = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0' (string) input.device = '/dev/mouse' (string) info.category = 'input' (string) info.subsystem = 'input' (string) info.capabilities = {'input', 'input.mouse', 'input.touchpad'} (string list) info.solaris.driver = 'mouse8042' (string) solaris.devfs_path = '/pci@0,0/isa@1f/i8042@1,60/mouse@1' (string) info.product = 'PS/2 Port for PS/2-style Mice' (string) info.udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0_logicaldev_input' (string) info.parent = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60_0' (string)
Whereas USB devices seem to get a raw device (for HID), e.g.:
input.device = '/dev/usb/hid1' (string)
The raw device for PS/2 mice is /dev/kdmouse (no equivalent exists for keyboards that I know of).
To allow the synaptics(7) X driver for touchpads to work, I've had to add an override for input.device like:
/etc/hal/fdi/preprobe/30user/01-mouse8042.fdi:
<deviceinfo version="0.2"> <device> <match key="info.solaris.driver" contains="mouse8042"> <append key="info.capabilities" type="strlist">input.touchpad</append> <merge key="input.device" type="string">/dev/kdmouse</merge> </match> </device> </deviceinfo>
Updated by Albert Lee about 10 years ago
- Category set to cmd - userland programs
- Priority changed from Normal to Low
- Tags changed from needs-triage to hal