Project

General

Profile

Bug #2697

HAL sets input.device to /dev/mouse for PS/2 mice

Added by Albert Lee about 8 years ago. Updated about 8 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
cmd - userland programs
Start date:
2012-05-07
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
hal
Gerrit CR:

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>

History

#1

Updated by Albert Lee about 8 years ago

  • Category set to cmd - userland programs
  • Priority changed from Normal to Low
  • Tags changed from needs-triage to hal

Also available in: Atom PDF