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

60-evdev.hwdb Macbook5,1 match string not specific enough for MacbookPro7,1 #5079

Closed
1 of 2 tasks
varingst opened this issue Jan 13, 2017 · 2 comments
Closed
1 of 2 tasks
Labels

Comments

@varingst
Copy link

Submission type

  • Bug report
  • Request for enhancement (RFE)

systemd version / distribution

I use OpenRC on Gentoo. The package sys-apps/hwids gets its hwdb files from systemd. The version on my system is old (telling me to report to bugs.freedesktop), but the section in question is the same in master.

Unexpected behaviour you saw

dmesg errors, event9 is the builtin keyboard:

udevd[5226]: Unable to EVIOCGABS device "/dev/input/event9"
udevd[5226]: Unable to EVIOCGABS device "/dev/input/event9"
udevd[5226]: Unable to EVIOCGABS device "/dev/input/event9"
udevd[5226]: Unable to EVIOCGABS device "/dev/input/event9"

It tries to apply trackpad-specific properties to the keyboard, because the match string matches both:

In 60-evdev.hwdb:

# Macbook5,1 (unibody), aka wellspring3
evdev:input:b0003v05ACp0236*
evdev:input:b0003v05ACp0237*
evdev:input:b0003v05ACp0238*
 EVDEV_ABS_00=::92
 EVDEV_ABS_01=::90
 EVDEV_ABS_35=::92
 EVDEV_ABS_36=::90

On my MacbookPro7,1 (with a Norwegian "105"-key layout):

# keyboard
$ cat /sys$(udevadm info -q path /dev/input/event9)/../modalias
input:b0003v05ACp0237e0111-e0,.....
# trackpad
$ cat /sys$(udevadm info -q path /dev/input/event10)/../modalias
input:b0003v05ACp0237e0001-e0,.....

I fixed it to match the trackpad specifically on my own machine, but have no idea what other models this may apply to.

@poettering
Copy link
Member

@whot ?

@whot
Copy link
Contributor

whot commented Jan 17, 2017

yay, re-using USB product-IDs... couple of options, neither of them are great:

  1. silence the warning or at least reduce it to something more obvious
  2. change all the matches to include the version
  3. make the hwdb use a touchpad: match instead of the plain input modalias

number 2 will likely break things for existing users, I don't have access to all devices to do this reliably. number 3 introduces a dependency on ID_INPUT_TOUCHPAD, which given issue #5020 is not filling me with joy either. Number 1 is easy, you're still left with an error message but at least we can make it sound less bad ;)

whot added a commit to whot/systemd that referenced this issue May 18, 2017
When we first handle a device with an EV_ABS override, check if it has EV_ABS.
If not, print a warning and continue. This is required on devices where
the match string applies to multiple device nodes, not all of which may have
the absolute axes.

Fixes systemd#5079
whot added a commit to whot/systemd that referenced this issue May 18, 2017
When we first handle a device with an EV_ABS override, check if it has EV_ABS.
If not, print a warning and continue. This is required on devices where
the match string applies to multiple device nodes, not all of which may have
the absolute axes.

Fixes systemd#5079
whot added a commit to whot/systemd that referenced this issue May 18, 2017
When we first handle a device with an EV_ABS override, check if it has EV_ABS.
If not, print a warning and continue. This is required on devices where
the match string applies to multiple device nodes, not all of which may have
the absolute axes.

Fixes systemd#5079
whot added a commit to whot/systemd that referenced this issue May 18, 2017
When we first handle a device with an EVDEV_ABS override, check if it has
EV_ABS bits. If not, print a warning and continue. This is required on devices
where the match string applies to multiple device nodes, not all of which may
have absolute axes.

Fixes systemd#5079
whot added a commit to whot/systemd that referenced this issue May 18, 2017
When we first handle a device with an EVDEV_ABS override, check if it has
EV_ABS bits. If not, print a warning and continue. This is required on devices
where the match string applies to multiple device nodes, not all of which may
have absolute axes.

Fixes systemd#5079
poettering pushed a commit that referenced this issue May 19, 2017
When we first handle a device with an EVDEV_ABS override, check if it has
EV_ABS bits. If not, print a warning and continue. This is required on devices
where the match string applies to multiple device nodes, not all of which may
have absolute axes.

Fixes #5079
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants