0

我在 Debian Buster 中弄乱了扫描码和键码,我发现了一些奇怪的东西。

使用sudo showkey -s我发现我的 USB 有线键盘的 PrintScreen/SysRq 键的扫描码是

0xe0 0x2a 0xe0 0x37 0xe0 0xaa 0xe0 0xb7,

也就是说,0xe0 0x2a 0xe0 0x37是按下它和0xe0 0xaa 0xe0 0xb7释放它的代码。

我的第一个问题是:为什么它使用两个扫描码(0xe0 0x2a0xe0 0x37)?这与其他扫描码不冲突吗?使用未使用的扫描码不是更聪明吗?

使用sudo showkey -k我发现 PrintScreen/SysRq 与内核键码相关联99,但是当我运行时sudo getkeycodes,没有 X 键码的条目107

的输出sudo getkeycodes

Códigos de varredura planos xx (hex) versus códigos de teclas (dec)
0 é um erro; para 1-88 (001-0x58) código de varredura igual a código de tecla

 0x58:   88   -   -   - 185 238   -   -
 0x60:    -   -   -   -   -   -   -   -
 0x68:    -   -   - 191   -   -   -   -
 0x70:    -   -   -   -   -   -   -   -
 0x78:    -   -   -   -   -   -   -   -

Códigos de varredura escapados e0 xx (hex)

e0 00:    -   - 212 533   -   -   -   -
e0 08:  238   -   -   -   -   -   -   -
e0 10:    -   -   -   -   -   -   -   -
e0 18:    -   -   -   -   -   -   -   -
e0 20:    -   -   -   -   -   -   -   -
e0 28:    -   -   -   -   -   -   -   -
e0 30:    -   -   -   -   -   -   -   -
e0 38:    -   -   -   -   - 212   -   -
e0 40:    -   -   -   -   -   -   -   -
e0 48:    -   -   -   - 227   -   -   -
e0 50:    -   -   -   -   -   -   -   -
e0 58:    -   -   -   -   -   -   -   -
e0 60:  148 184   -   - 171   -   -   -
e0 68:  152 431   - 534 535 536 537 538
e0 70:    -   -   - 139   - 172   1   -
e0 78:    -   -   -   -   -   -   -   -

我的第二个问题是:如果上述输出中没有条目,PrintScreen/SysRq 从扫描码到键码的映射如何工作?

如有必要,我可以提供任何其他信息。

谢谢大家。

编辑 1:我意识到这种扫描码组合与 press 冲突Shift+ (Ctrl-PrtScn),我确认Shift扫描码是0x2a 0xaa通过运行sudo showkey -s,我在本文档中(Ctrl-PrtScn)找到了代码。

我已经搜索/usr/lib/udev/hwdb.d/60-keyboard.hwdb过这张地图,但没有找到任何东西。

4

0 回答 0