On Do, 03.12.20 04:22, Ardavast Dayleryan (ardavast@xxxxxxxxxxxxxxx) wrote: > Hello, > > I'm trying to emit keypresses from an embedded device connected over a > serial port, I attach it as an "AT Raw Set 2 keyboard" with inputattach > like this: sudo inputattach --baud 9600 --ps2serkbd /dev/ttyACM0 > > It usually works, but I noticed that on some laptops, some of the > scancodes do not work, for example on an IdeaPad Y580 the scancode for > KEY_DOWN does not work. > The scancode for KEY_DOWN on a raw set 2 keyboard is 0xe0 0x72, which > is encoded as 0xf2. > The scancode for KEY_DOWN on a translated set 2 keyboard is 0xd0, and > 0xf2 is KEY_RESERVED. > I traced the problem to the following lines in hwdb.d/60-keyboard.hwdb: > evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:* > [...] > KEYBOARD_KEY_f1=camera > KEYBOARD_KEY_f2=f21 > KEYBOARD_KEY_f3=f21 > > It seems that these lines are applied for both the raw and the > translated keyboards, and this works fine for the translated keyboard, > but it clashes with the scancode for KEY_DOWN on the raw keyboard and > I can't emit KEY_DOWN from it. > > I was able to fix this by adding the following near the top of > rules.d/60-evdev.rules: > ATTRS{name}=="AT Raw Set 2 keyboard", GOTO="evdev_end" > > But I'm a total noob when it comes to systemd/udev , so I wanted to ask: > 1. Is this approach OK, or is it prone to break other stuff? > 2. Would you consider including a fix for this issue in a future version? Sure, please file a PR with a patch on github, or at least an issue. I wonder if we can find a better match though than the name string, i.e. what is key is that one keyboard is connected to the AT keyboard controller, and yours is connected to a serial port, right? So the udev rules should be fixed to match against the former only. Anyway, please file a PR/issue on github about this, and continue the discussion there. Lennart -- Lennart Poettering, Berlin _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel