eudev-project / eudev

Repository for eudev development
GNU General Public License v2.0
523 stars 147 forks source link

Sync the HWDB with systemd to get newer hardware supported correctly. #176

Closed thomas-t-w closed 3 months ago

thomas-t-w commented 5 years ago

There has been a lot of changes to the hwdb upstream. I don't know enough about eudev to feel comfortable working on it myself but I wanted to just open an issue about this for someone who has a good understanding of how all this works.

blueness commented 5 years ago

I just updated the hwdb, but didn't do a tagged release. Can you test and see if it works for you. If it does, I'll create a tagged release.

ghost commented 5 years ago

The hwdb update fixes an issue with the touchpad of my laptop. May you please consider creating a tagged release. I think it would be a good idea to keep the hwdb in sync with the latest systemd release. Below is a diff between the results of libinput record [device] before and after the update.

--- old_record
+++ record
@@ -7,34 +7,145 @@
   kernel: "5.2.11"
 devices:
-- node: /dev/input/event8
+- node: /dev/input/event7
   evdev:
-    # Name: Apple Inc. Apple Internal Keyboard / Trackpad
-    # ID: bus 0x3 vendor 0x5ac product 0x291 version 0x171
+    # Name: bcm5974
+    # ID: bus 0x3 vendor 0x5ac product 0x291 version 0x1
+    # Size in mm: unknown, missing resolution
     # Supported Events:
     # Event type 0 (EV_SYN)
     # Event type 1 (EV_KEY)
     #   Event code 272 (BTN_LEFT)
-    #   Event code 273 (BTN_RIGHT)
-    #   Event code 274 (BTN_MIDDLE)
-    #   Event code 275 (BTN_SIDE)
-    #   Event code 276 (BTN_EXTRA)
-    # Event type 2 (EV_REL)
-    #   Event code 0 (REL_X)
-    #   Event code 1 (REL_Y)
-    #   Event code 8 (REL_WHEEL)
+    #   Event code 325 (BTN_TOOL_FINGER)
+    #   Event code 328 (BTN_TOOL_QUINTTAP)
+    #   Event code 330 (BTN_TOUCH)
+    #   Event code 333 (BTN_TOOL_DOUBLETAP)
+    #   Event code 334 (BTN_TOOL_TRIPLETAP)
+    #   Event code 335 (BTN_TOOL_QUADTAP)
+    # Event type 3 (EV_ABS)
+    #   Event code 0 (ABS_X)
+    #       Value        -419
+    #       Min         -4620
+    #       Max          5140
+    #       Fuzz            0
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 1 (ABS_Y)
+    #       Value        2899
+    #       Min          -150
+    #       Max          6600
+    #       Fuzz            0
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 24 (ABS_PRESSURE)
+    #       Value           0
+    #       Min             0
+    #       Max           256
+    #       Fuzz            5
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 28 (ABS_TOOL_WIDTH)
+    #       Value           0
+    #       Min             0
+    #       Max            16
+    #       Fuzz            0
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 47 (ABS_MT_SLOT)
+    #       Value           0
+    #       Min             0
+    #       Max            15
+    #       Fuzz            0
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 48 (ABS_MT_TOUCH_MAJOR)
+    #       Value           0
+    #       Min             0
+    #       Max          2048
+    #       Fuzz           81
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 49 (ABS_MT_TOUCH_MINOR)
+    #       Value           0
+    #       Min             0
+    #       Max          2048
+    #       Fuzz           81
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 50 (ABS_MT_WIDTH_MAJOR)
+    #       Value           0
+    #       Min             0
+    #       Max          2048
+    #       Fuzz           81
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 51 (ABS_MT_WIDTH_MINOR)
+    #       Value           0
+    #       Min             0
+    #       Max          2048
+    #       Fuzz           81
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 52 (ABS_MT_ORIENTATION)
+    #       Value           0
+    #       Min        -16384
+    #       Max         16384
+    #       Fuzz         3276
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 53 (ABS_MT_POSITION_X)
+    #       Value           0
+    #       Min         -4620
+    #       Max          5140
+    #       Fuzz           39
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 54 (ABS_MT_POSITION_Y)
+    #       Value           0
+    #       Min          -150
+    #       Max          6600
+    #       Fuzz           27
+    #       Flat            0
+    #       Resolution      0
+    #   Event code 57 (ABS_MT_TRACKING_ID)
+    #       Value           0
+    #       Min             0
+    #       Max         65535
+    #       Fuzz            0
+    #       Flat            0
+    #       Resolution      0
     # Properties:
-    name: "Apple Inc. Apple Internal Keyboard / Trackpad"
-    id: [3, 1452, 657, 369]
+    #    Property 0 (INPUT_PROP_POINTER)
+    #    Property 2 (INPUT_PROP_BUTTONPAD)
+    name: "bcm5974"
+    id: [3, 1452, 657, 1]
     codes:
       0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
-      1: [272, 273, 274, 275, 276] # EV_KEY
-      2: [0, 1, 8] # EV_REL
-    properties: []
+      1: [272, 325, 328, 330, 333, 334, 335] # EV_KEY
+      3: [0, 1, 24, 28, 47, 48, 49, 50, 51, 52, 53, 54, 57] # EV_ABS
+    absinfo:
+      0: [-4620, 5140, 0, 0, 0]
+      1: [-150, 6600, 0, 0, 0]
+      24: [0, 256, 5, 0, 0]
+      28: [0, 16, 0, 0, 0]
+      47: [0, 15, 0, 0, 0]
+      48: [0, 2048, 81, 0, 0]
+      49: [0, 2048, 81, 0, 0]
+      50: [0, 2048, 81, 0, 0]
+      51: [0, 2048, 81, 0, 0]
+      52: [-16384, 16384, 3276, 0, 0]
+      53: [-4620, 5140, 39, 0, 0]
+      54: [-150, 6600, 27, 0, 0]
+      57: [0, 65535, 0, 0, 0]
+    properties: [0, 2]
   udev:
     properties:
     - ID_INPUT=1
-    - ID_INPUT_MOUSE=1
+    - ID_INPUT_TOUCHPAD=1
+    - ID_INPUT_TOUCHPAD_INTEGRATION=internal
   quirks:
-  - AttrKeyboardIntegration=internal
+  - ModelAppleTouchpad=1
+  - AttrSizeHint=104x75
+  - AttrTouchSizeRange=150:130
+  - AttrPalmSizeThreshold=800
   events:
ghost commented 5 years ago

Sorry, but with the hwdb update the touchpad works erratically after a cold boot; however, a reboot solves the problem. I fixed it permanently blacklisting the usbmouse module. Please notice that before the update the touchpad worked properly just sporadically, otherwise with the same erratic behavior.

Pardon for the chatter, but I hope this will be useful if someone has the same issue. My laptop is a MacBook Air 7,2.

bbonev commented 11 months ago

Can you please confirm if that is still the case with the latest release?

vicencb commented 3 months ago

Hi, i've got a .hwdb file that works on systemd (arch) but doesn't with eudev (alpine):

evdev:input:b0003v047Dp2041*
 KEYBOARD_KEY_0xff000002=btn_middle
 KEYBOARD_KEY_0xff000001=btn_left

The .hwdb file is compiled with udevadm hwdb --update and applied with udevadm trigger. Also tried regenerating the initrd and rebooting, but the trackball buttons are not remapped.

I also tested with mouse:*:name:*Trackball*:* as the match pattern as described in the man page. The command udevadm info -a -n /dev/input/event8 indeed reports that the name contains the word Trackball.

How can i debug the issue?

vicencb commented 3 months ago

I've done some research and found a bug that explains why my case does not work. I'll open a bug report for it.

@bbonev: This bug can be closed, the feedback label is awaiting for an account that has been deleted.

bbonev commented 3 months ago

Thanks! Please describe the bug or file a PR

vicencb commented 3 months ago

The bug report is #283 and the associated PR is #284.