Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphic Tablet - incorrect property in "60-input-id.hwdb" #17953

Closed
i-right-i opened this issue Dec 13, 2020 · 4 comments · Fixed by #21262
Closed

Graphic Tablet - incorrect property in "60-input-id.hwdb" #17953

i-right-i opened this issue Dec 13, 2020 · 4 comments · Fixed by #21262
Labels

Comments

@i-right-i
Copy link

i-right-i commented Dec 13, 2020

Fixed this by commenting out line "ID_INPUT_TABLET_PAD=0" in file : " /lib/udev/hwdb.d/60-input-id.hwdb"

# UC-Logic TABLET 1060N Pad
id-input:modalias:input:b0003v5543p0081*
 ID_INPUT_TABLET=1
 ID_INPUT_TABLET_PAD=0

systemd version the issue has been seen with

systemd 246 (246.6-1-manjaro)

Used distribution

Manjaro Arch

Linux kernel version used (uname -a)

5.9.11-3-MANJARO

CPU architecture issue was seen on

Xeon X5690

Expected behaviour you didn't see

Cursor Moving while I would draw on my Graphics Tablet

Unexpected behaviour you saw

Cursor Not moving while I would draw on my Graphics Tablet

Steps to reproduce the problem

~ >>> libinput list-devices

Device:           UC-LOIC TABLET 1060
Kernel:           /dev/input/event1
Group:            2
Seat:             seat0, default
Size:             255x153mm
Capabilities:     tablet-pad
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a

Device:           UC-LOIC TABLET 1060 Pad
Kernel:           /dev/input/event2
Group:            2
Seat:             seat0, default
Capabilities:     tablet-pad
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a
Pad:
	Rings:   0
	Strips:  0
	Buttons: 13
	Mode groups: 1 (1 modes)

~ >>> udevadm info -n /dev/input/event1 [130]

P: /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/0003:5543:0081.0001/input/input22/event1
N: input/event1
L: 0
S: input/by-id/usb-UC-LOIC_TABLET_1060-event-mouse
S: input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/0003:5543:0081.0001/input/input22/event1
E: DEVNAME=/dev/input/event1
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: USEC_INITIALIZED=5897708
E: ID_INPUT=1
E: ID_INPUT_TABLET=1
E: ID_INPUT_WIDTH_MM=254
E: ID_INPUT_HEIGHT_MM=152
E: ID_INPUT_TABLET_PAD=1
E: ID_VENDOR=UC-LOIC
E: ID_VENDOR_ENC=UC-LOIC
E: ID_VENDOR_ID=5543
E: ID_MODEL=TABLET_1060
E: ID_MODEL_ENC=TABLET\x201060
E: ID_MODEL_ID=0081
E: ID_REVISION=0000
E: ID_SERIAL=UC-LOIC_TABLET_1060
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1a.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_1_0
E: LIBINPUT_DEVICE_GROUP=3/5543/81:usb-0000:00:1a.0-1
E: DEVLINKS=/dev/input/by-id/usb-UC-LOIC_TABLET_1060-event-mouse /dev/input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-mouse

~ >>> udevadm info -n /dev/input/event2

P: /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/0003:5543:0081.0001/input/input23/event2
N: input/event2
L: 0
S: input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-mouse
S: input/by-id/usb-UC-LOIC_TABLET_1060-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/0003:5543:0081.0001/input/input23/event2
E: DEVNAME=/dev/input/event2
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
E: USEC_INITIALIZED=5898471
E: ID_INPUT=1
E: ID_INPUT_TABLET=1
E: ID_INPUT_TABLET_PAD=1
E: ID_VENDOR=UC-LOIC
E: ID_VENDOR_ENC=UC-LOIC
E: ID_VENDOR_ID=5543
E: ID_MODEL=TABLET_1060
E: ID_MODEL_ENC=TABLET\x201060
E: ID_MODEL_ID=0081
E: ID_REVISION=0000
E: ID_SERIAL=UC-LOIC_TABLET_1060
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1a.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_1_0
E: LIBINPUT_DEVICE_GROUP=3/5543/81:usb-0000:00:1a.0-1
E: DEVLINKS=/dev/input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-mouse /dev/input/by-id/usb-UC-LOIC_TABLET_1060-event-mouse
@yuwata
Copy link
Member

yuwata commented Dec 14, 2020

The entry was added by 0fbe78a (#7212), see also #7197.

Cc @whot.

@yuwata yuwata added the hwdb label Dec 14, 2020
@whot
Copy link
Contributor

whot commented Dec 15, 2020

Fixed this by commenting out line "ID_INPUT_TABLET_PAD=0" in file

to confirm, you replaced ID_INPUT_TABLET_PAD=1 with ID_INPUT_TABLET_PAD=0, correct? Or what else did you do?

afaict this issue here is that the tablet itself is (by default) given the PAD tag as well, so that messes up things and, tbh, I'm surprised this ever worked. looks like a few months after 0fbe78a libwacom also added this device, assigning the right ID_INPUT_ tags through its own udev rules. So on any modern-enough system that has libwacom installed (most or all) this snippet is now superfluous.

To correct it, we'd need name matching in addition to the modalias matching because it seems the tablet and the pad have the same vid/pid. I'd go with just removing it and relying on the libwacom rules instead, the case of this tablet being used on a system without libwacom is too niche to worry about.

@ondras12345
Copy link

Hi, same issue here. Ubuntu 20.04, 5.8.0-41-generic.

I fixed it by creating this file

> cat /etc/udev/hwdb.d/61-input-id-local.hwdb
# see /usr/lib/udev/hwdb.d/60-input-id.hwdb

# UC-Logic TABLET 1060N Pad
# This does not just match the pad. It matches the pen, too!
id-input:modalias:input:b0003v5543p0081*
 ID_INPUT_TABLET=1
 ID_INPUT_TABLET_PAD=0

I think the issue is that the rule in /usr/lib/udev/hwdb.d/60-input-id.hwdb assigns ID_INPUT_TABLET_PAD=1 not only to the pad, but also to the pen.
Without the fix:

> cat ~/.local/share/xorg/Xorg.0.log
...
[ 48282.461] (II) event26 - UC-LOIC TABLET 1060 Pen: is tagged by udev as: Tablet TabletPad
[ 48282.481] (II) event26 - UC-LOIC TABLET 1060 Pen: tablet 'UC-LOIC TABLET 1060 Pen' unknown to libwacom
[ 48282.489] (II) event26 - UC-LOIC TABLET 1060 Pen: device is a tablet pad
[ 48347.333] (II) event26 - UC-LOIC TABLET 1060 Pen: Unhandled EV_ABS event code 0
[ 48347.333] (II) event26 - UC-LOIC TABLET 1060 Pen: Unhandled EV_ABS event code 0x1
[ 48347.339] (II) event26 - UC-LOIC TABLET 1060 Pen: Unhandled EV_ABS event code 0x1
[ 48347.347] (II) event26 - UC-LOIC TABLET 1060 Pen: Unhandled EV_ABS event code 0x1
[ 48347.347] (II) event26 - UC-LOIC TABLET 1060 Pen: Unhandled EV_ABS event code 0x18
...

@whot
Copy link
Contributor

whot commented Feb 8, 2021

Yeah, good point. I think we should just remove this entry altogether, libwacom is more reliable to identify this correctly and on any modern system (Nov 2017 and later) this should work correctly.

The case for those tablets needing to work without libwacom being present is IMO a bit niche.

whot added a commit to whot/systemd that referenced this issue Nov 8, 2021
This entry only matches on vid/pid, so the pen event node of the device
would also get assigned the ID_INPUT_TABLET_PAD property - making it
break with libinput.

On top of that, UC-Logic's tablets re-use USB ids, so now we're breaking
multiple devices this way.

To get this device tagged correctly, use libwacom which has the
per-device hwdb entries.

Fixes systemd#17953

This reverts commit 0fbe78a
keszybz pushed a commit that referenced this issue Nov 8, 2021
This entry only matches on vid/pid, so the pen event node of the device
would also get assigned the ID_INPUT_TABLET_PAD property - making it
break with libinput.

On top of that, UC-Logic's tablets re-use USB ids, so now we're breaking
multiple devices this way.

To get this device tagged correctly, use libwacom which has the
per-device hwdb entries.

Fixes #17953

This reverts commit 0fbe78a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

4 participants