Comment 23 for bug 1852071

Revision history for this message
C. Hintermüller (nothere) wrote :

I do observe the exactly same on a HP elitebook 840 G6 with the phone pickup and hangup keys and other HP fancy keys i usually do not need. They either mapp to left_ctrl left_meta or left_ctrl elft_alt.

Event: time 1594376396.025858, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1594376396.025858, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1594376396.025858, -------------- SYN_REPORT ------------
Event: time 1594376396.026015, type 4 (EV_MSC), code 4 (MSC_SCAN), value 38
Event: time 1594376396.026015, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1594376396.026015, -------------- SYN_REPORT ------------
Event: time 1594376396.026120, type 4 (EV_MSC), code 4 (MSC_SCAN), value 65
Event: time 1594376396.026120, -------------- SYN_REPORT ------------

Event: time 1594376622.906330, type 4 (EV_MSC), code 4 (MSC_SCAN), value 38
Event: time 1594376622.906330, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1594376622.906330, -------------- SYN_REPORT ------------
Event: time 1594376622.906498, type 4 (EV_MSC), code 4 (MSC_SCAN), value 66
Event: time 1594376622.906498, -------------- SYN_REPORT ------------
Event: time 1594376622.906682, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1594376622.906682, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0
Event: time 1594376622.906682, -------------- SYN_REPORT ------------

Checking the scanvalue it turns out that pressing left_alt and left_ctrl produce the same individual key codes as returned for one key press of the special HP keys.

Event: time 1594376291.093583, type 4 (EV_MSC), code 4 (MSC_SCAN), value 38
Event: time 1594376291.093583, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1594376291.093583, -------------- SYN_REPORT ------------
Event: time 1594376291.240595, type 4 (EV_MSC), code 4 (MSC_SCAN), value 38
Event: time 1594376291.240595, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1594376291.240595, -------------- SYN_REPORT ------------
Event: time 1594376295.981981, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1594376295.981981, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1594376295.981981, -------------- SYN_REPORT ------------
Event: time 1594376296.095764, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1594376296.095764, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1594376296.095764, -------------- SYN_REPORT ------------

Looking at the scans it seems as if these special keys would produce three keystrokes at the same time

code 0x1d, 0x38, 0x65
code 0x38, 0x66, 0xdb

The codes 0x65 and 0x66 seem to be ignored by the kernel or udev and thus the keypress is seems to be shortened to

code 0x1d, 0x38 -> which maps to <ctrl><alt> and this is fatal in my case cause directly underneath the phone hangup button with too little space in between is the backspace button located. Yes!!! whenever i hit inbetween the two keys the X-Server thinks I requested him to zap.

Looking at the event code table printed by evtest it seems as if the code 101 = 0x65 is not used or mapped.

I tried to make an appropriate udev rule to map 0x65 and 0x66 to some key but this is not applied thus i still stuck with having to too close keys acting as ctrl alt bksp which is the good old Xorg zap combination which i do not want to disable.

But whatever i try exempt reboot yet to map missing codes to keys does not work. neither udev method nor setkeycodes in xorg works. nor reboot.

It is a bit unluckily annoying the situation, at least i know to watchout when hitting backspace key not to accidentially also hit phone hangup key.

I'm using kernel 5.3.0-40-lowlatency which is currently the latest packaged by ubuntu hwe