<div dir="ltr">Hello,<br><br>I'm trying to emit keypresses from an embedded device connected over a<br>serial port, I attach it as an "AT Raw Set 2 keyboard" with inputattach<br>like this: sudo inputattach --baud 9600 --ps2serkbd /dev/ttyACM0<br><br>It usually works, but I noticed that on some laptops, some of the<br>scancodes do not work, for example on an IdeaPad Y580 the scancode for<br>KEY_DOWN does not work.<br>The scancode for KEY_DOWN on a raw set 2 keyboard is 0xe0 0x72, which<br>is encoded as 0xf2.<br>The scancode for KEY_DOWN on a translated set 2 keyboard is 0xd0, and<br>0xf2 is KEY_RESERVED.<br>I traced the problem to the following lines in hwdb.d/60-keyboard.hwdb:<br>evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:*<br>[...]<br>KEYBOARD_KEY_f1=camera<br>KEYBOARD_KEY_f2=f21<br>KEYBOARD_KEY_f3=f21<br><br>It seems that these lines are applied for both the raw and the<br>translated keyboards, and this works fine for the translated keyboard,<br>but it clashes with the scancode for KEY_DOWN on the raw keyboard and<br>I can't emit KEY_DOWN from it.<br>                                                                        <br>I was able to fix this by adding the following near the top of<br>rules.d/60-evdev.rules:<br>ATTRS{name}=="AT Raw Set 2 keyboard", GOTO="evdev_end"<br><br>But I'm a total noob when it comes to systemd/udev , so I wanted to ask:<br>1. Is this approach OK, or is it prone to break other stuff?<br>2. Would you consider including a fix for this issue in a future version?<br></div>