Summary: | /lib/udev/hwdb.d/60-keyboard.hwdb documentation issues | ||
---|---|---|---|
Product: | systemd | Reporter: | Vincent Lefevre <vincent-fdt> |
Component: | general | Assignee: | systemd-bugs |
Status: | RESOLVED FIXED | QA Contact: | systemd-bugs |
Severity: | minor | ||
Priority: | medium | CC: | peter.hutterer |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Vincent Lefevre
2014-08-07 22:28:58 UTC
Description updated in http://cgit.freedesktop.org/systemd/systemd/commit/?id=fa9d4be3f1. I'll reassign this bug to evtest, let's see what they say. There isn't much I can do here in evtest, we just blindly print whatever the kernel gives us. If we don't get anything from the kernel, we don't have anything to print. (In reply to comment #2) > There isn't much I can do here in evtest, we just blindly print whatever the > kernel gives us. If we don't get anything from the kernel, we don't have > anything to print. Then this would be a kernel bug. In such a case, the only solution for the user is to output the entire keymap (not possible with evtest) and see which scan code corresponds to the obtained key. I'm punting this back to the systemd folks, Zbigniew can decide if he wants to call it fixed or leave it open. Even when there are no kernel bugs, input-kbd may still be useful under some occasions: * when the physical keyboard is remote; * when the user is interested in the complete map instead of testing keys one by one. A part of http://cgit.freedesktop.org/systemd/systemd/commit/?id=fa9d4be3f1 ("simply use /dev/input/event* to reload all input rules") is incorrect: xvii:/home/vinc17# udevadm hwdb --update xvii:/home/vinc17# ls -lu /etc/udev/hwdb.bin -r--r--r-- 1 root root 6559371 2014-11-21 16:05:27 /etc/udev/hwdb.bin xvii:/home/vinc17# udevadm trigger /dev/input/event* Extraneous argument: '/dev/input/event0' xvii:/home/vinc17# ls -lu /etc/udev/hwdb.bin -r--r--r-- 1 root root 6559371 2014-11-21 16:05:27 /etc/udev/hwdb.bin xvii:/home/vinc17# udevadm trigger xvii:/home/vinc17# ls -lu /etc/udev/hwdb.bin -r--r--r-- 1 root root 6559371 2014-11-21 16:05:51 /etc/udev/hwdb.bin As you can see, /etc/udev/hwdb.bin isn't read with: udevadm trigger /dev/input/event* However, even after "udevadm trigger" nothing changed in the keyboard mapping. Nothing changed after a reboot either. So, I'm wondering. I've checked that the generated /etc/udev/hwdb.bin file contains parts of strings from my remappings, which are: keyboard:usb:v05ACp0221* KEYBOARD_KEY_29=102nd KEYBOARD_KEY_56=grave KEYBOARD_KEY_1d0=insert I don't seem to be the only one noticing no changes via hwdb remappings. See for instance: http://unix.stackexchange.com/questions/156985/keyboard-hard-remap-keys Either there is a bug in udev, or something else is missing in the documentation. BTW, it would be nice to have information for debugging. try udevadm trigger --sysname-match="event*" also, make sure you run all this as root. also, if you use the --verbose flag you see what devices it applies to, if the list is empty then it doesn't match on anything. If it prints out a number of paths but nothing changes, the problem is elsewhere. (In reply to Vincent Lefevre from comment #6) > As you can see, /etc/udev/hwdb.bin isn't read with: > > udevadm trigger /dev/input/event* Argh, fixed in http://cgit.freedesktop.org/systemd/systemd/commit/?id=80877656a5. > However, even after "udevadm trigger" nothing changed in the keyboard > mapping. Nothing changed after a reboot either. So, I'm wondering. > > I've checked that the generated /etc/udev/hwdb.bin file contains parts of > strings from my remappings, which are: > > keyboard:usb:v05ACp0221* > KEYBOARD_KEY_29=102nd > KEYBOARD_KEY_56=grave > KEYBOARD_KEY_1d0=insert I think you have double spaces here, which doesn't work. Incidentally, Peter said he might write a patch to ignore leading whitespace, which would also fix the problem. (In reply to Zbigniew Jedrzejewski-Szmek from comment #8) > (In reply to Vincent Lefevre from comment #6) > > keyboard:usb:v05ACp0221* > > KEYBOARD_KEY_29=102nd > > KEYBOARD_KEY_56=grave > > KEYBOARD_KEY_1d0=insert > I think you have double spaces here, which doesn't work. Incidentally, > Peter said he might write a patch to ignore leading whitespace, which > would also fix the problem. Indeed tests show that one must have only one space. But this wasn't documented, and there were no errors from udevadm! So, now, with the correct scan codes (which I had tried in the first place but didn't work because of the double space, hence the confusion): keyboard:usb:v05ACp0221* KEYBOARD_KEY_70035=102nd KEYBOARD_KEY_70064=grave KEYBOARD_KEY_70068=insert works fine. http://cgit.freedesktop.org/systemd/systemd/commit/?id=36afca67b6 makes duplicate leading whitespace ignored. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.